Vaucanson
1.4.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
vaucanson
design_pattern
structure.hh
Go to the documentation of this file.
1
// structure.hh: this file is part of the Vaucanson project.
2
//
3
// Vaucanson, a generic library for finite state machines.
4
//
5
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 The Vaucanson Group.
6
//
7
// This program is free software; you can redistribute it and/or
8
// modify it under the terms of the GNU General Public License
9
// as published by the Free Software Foundation; either version 2
10
// of the License, or (at your option) any later version.
11
//
12
// The complete GNU General Public Licence Notice can be found as the
13
// `COPYING' file in the root directory.
14
//
15
// The Vaucanson Group consists of people listed in the `AUTHORS' file.
16
//
17
#ifndef VCSN_DESIGN_PATTERN_STRUCTURE_HH
18
# define VCSN_DESIGN_PATTERN_STRUCTURE_HH
19
27
# include <
vaucanson/misc/selectors.hh
>
28
# include <
vaucanson/design_pattern/predecls.hh
>
29
# include <
vaucanson/misc/unique.hh
>
30
31
namespace
vcsn {
32
35
/*-------------.
36
| Structure<S> |
37
`-------------*/
38
48
template
<
typename
S>
49
struct
Structure
: misc::unique::unifiable
50
{
52
template
<
typename
T>
53
bool
contains
(
const
Element<S, T>
& elt)
const
;
54
61
template
<
typename
OtherS,
typename
T>
62
bool
contains
(
const
Element<OtherS, T>
& other)
const
;
63
65
template
<
typename
T>
66
bool
contains
(
const
T& elt_value)
const
;
67
69
template
<
class
T>
70
Element<S, T>
71
choose
(
SELECTOR
(T))
const
;
72
73
75
typedef
S
self_t
;
76
78
85
self_t
&
self
();
86
const
self_t
&
self
()
const
;
88
89
protected
:
90
92
93
Structure
();
94
Structure
(
const
Structure
& other);
96
};
97
98
/*--------------------.
99
| default comparisons |
100
`--------------------*/
101
111
template
<
typename
S>
112
bool
operator != (
const
vcsn::Structure<S>
& a,
113
const
vcsn::Structure<S>
& b);
117
/*------------------------------.
118
| dynamic_traits<Structure<S> > |
119
`------------------------------*/
120
126
template
<
typename
S>
127
struct
dynamic_traits<
Structure
<S> >
128
{
129
static
const
bool
ret =
false
;
130
};
131
132
/*-----------------------------.
133
| virtual_types<Structure<S> > |
134
`-----------------------------*/
135
137
template
<
typename
S>
138
struct
virtual_types<
Structure
<S> >
139
{ };
140
143
}
// vcsn
144
145
# if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
146
# include <vaucanson/design_pattern/structure.hxx>
147
# endif // VCSN_USE_INTERFACE_ONLY
148
149
#endif // ! VCSN_DESIGN_PATTERN_STRUCTURE_HH
Generated on Sat Jul 14 2012 18:46:41 for Vaucanson by
1.8.1.1