Concepts

- Main Page
- Modules
- Classes
- Namespaces
- Files
- Related Pages

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Classes | Modules | Files
Concepts

## Detailed Description

This group contains the data/algorithm skeletons and concept checking classes implemented in LEMON.

The purpose of the classes in this group is fourfold.

- These classes contain the documentations of the concepts. In order to avoid document multiplications, an implementation of a concept simply refers to the corresponding concept class.
- These classes declare every functions, `typedef`s etc. an implementation of the concepts should provide, however completely without implementations and real data structures behind the interface. On the other hand they should provide nothing else. All the algorithms working on a data structure meeting a certain concept should compile with these classes. (Though it will not run properly, of course.) In this way it is easily to check if an algorithm doesn't use any extra feature of a certain implementation.
- The concept descriptor classes also provide a checker class that makes it possible to check whether a certain implementation of a concept indeed provides all the required features.
- Finally, They can serve as a skeleton of a new implementation of a concept.

## Classes
class | Heap< PR, IM, CMP >
| The heap concept. More...
class | Path< GR >
| A skeleton structure for representing directed paths in a digraph. More...
class | PathDumper< GR >
| A skeleton structure for path dumpers. More...

## Modules
| Graph Structure Concepts
| Skeleton and concept checking classes for graph structures.
| Map Concepts
| Skeleton and concept checking classes for maps.

## Files
file | heap.h
| The concept of heaps.
file | path.h
| The concept of paths.