https://svn.lrde.epita.fr/svn/oln/trunk/static
This is currently a workaround inside Static, but it would be better
to let Metalic deal with this instead.
Index: ChangeLog
from Roland Levillain <roland(a)lrde.epita.fr>
Allow the use of Metalic values as virtual types.
* stc/properties.hh (mlc::eqv, mlc::neqv): New (workaround)
classes.
(mlc_eqv, mlc_neqv): New macros.
(rec_get_vtype, rec_get_ext_vtype): Use them, to allow the use of
Metalic values as virtual types.
* tests/properties.cc: Ensure Metalic values can be valid
virtual types.
stc/properties.hh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++----
tests/properties.cc | 18 +++++++++++++--
2 files changed, 70 insertions(+), 7 deletions(-)
Index: tests/properties.cc
--- tests/properties.cc (revision 468)
+++ tests/properties.cc (working copy)
@@ -28,6 +28,7 @@
#include <stc/properties.hh>
#include <mlc/cmp.hh>
#include <mlc/assert.hh>
+#include <mlc/int.hh>
// This test focuses on the virtual types system, so the exact type of
// classes is not propagated here (stc::any is not used).
@@ -82,8 +83,13 @@
template<>
struct vtypes<category::my_cat, my::A>
{
+ // A native type.
typedef int foo_type;
- typedef float bar_type;
+ // A Metalic value, used here is to ensure that
+ // mlc::abstract::values are accepted as virtual types, as well as
+ // any other type).
+ typedef mlc::int_<42> bar_type;
+ // An undefined type.
typedef mlc::undefined baz_type;
};
@@ -212,10 +218,16 @@
{
// Check types associated to A.
mlc::assert_<mlc_eq(my::A::foo_type, int)>::check();
- mlc::assert_<mlc_eq(my::A::bar_type, float)>::check();
+ /* FIXME: Note that we use mlc_eqv, not mlc_eq, since the latter
+ doesn't accept Metalic values. Try to get rid of this
+ limitation. */
+ mlc::assert_<mlc_eqv(my::A::bar_type, mlc::int_<42>)>::check();
// Check types associated to B.
- mlc::assert_<mlc_neq(my::B::bar_type, my::A::bar_type)>::check();
+ /* FIXME: Note that we use mlc_neqv, not mlc_neq, since the latter
+ doesn't accept Metalic values. Try to get rid of this
+ limitation. */
+ mlc::assert_<mlc_neqv(my::B::bar_type, my::A::bar_type)>::check();
mlc::assert_<mlc_eq(my::B::baz_type, char)>::check();
mlc::assert_<mlc_eq(my::B::quux_type, long)>::check();
mlc::assert_<mlc_eq(my::B::yin_type, unsigned long)>::check();
Index: stc/properties.hh
--- stc/properties.hh (revision 468)
+++ stc/properties.hh (working copy)
@@ -42,6 +42,55 @@
# include <mlc/is_a.hh>
+/*----------------------.
+| Metalic workarounds. |
+`----------------------*/
+
+/// Shortcuts.
+/// \{
+# define mlc_eqv( T1, T2) mlc::eqv_ <T1, T2>
+# define mlc_neqv(T1, T2) mlc::neqv_<T1, T2>
+/// \}
+
+namespace mlc
+{
+ /* FIXME: This really is a work around Metalic's limitations
+ regarding the operands of its logic operators than cannot be
+ subtypes of mlc::abstract::value. This limitations breaks Static
+ when a virtual type *is* a Metalic value! Hence the introduction
+ of this more laxist version of mlc_neq. */
+
+ /// Equality test between a couple of types, also accepting Metalic
+ /// values (i.e., subtypes of mlc::abstract::value).
+ /// \{
+ template <typename T1, typename T2>
+ struct eqv_ : public bexpr_<false>
+ {
+ };
+
+ template <typename T>
+ struct eqv_ <T, T> : public bexpr_<true>
+ {
+ };
+ /// \}
+
+ /// Inequality test between a couple of types, also accepting Metalic
+ /// values (i.e., subtypes of mlc::abstract::value).
+ /// \{
+ template <typename T1, typename T2>
+ struct neqv_ : public bexpr_<true>
+ {
+ };
+
+ template <typename T>
+ struct neqv_ <T, T> : public bexpr_<false>
+ {
+ };
+ /// \}
+
+}
+
+
/*------------.
| Equipment. |
`------------*/
@@ -159,7 +208,7 @@
\
typedef typename \
mlc::if_< \
- mlc::neq_< type, mlc::not_found >, \
+ mlc::neqv_< type, mlc::not_found >, \
/* then */ \
/* return it */ \
/* (the typedef has been found in the vtypes */ \
@@ -169,7 +218,7 @@
/* check if the vtype of the `super' of FROM_TYPE */ \
/* has the typedef */ \
typename \
- mlc::if_< mlc::neq_< typename rec_get_vtype< category, \
+ mlc::if_< mlc::neqv_< typename rec_get_vtype<category, \
super, \
typedef_type >::ret, \
mlc::not_found >, \
@@ -227,7 +276,7 @@
\
typedef typename \
mlc::if_< \
- mlc::neq_< type, mlc::not_found >, \
+ mlc::neqv_< type, mlc::not_found >, \
/* then */ \
/* return it */ \
/* (the typedef has been found in the vtypes */ \
@@ -237,7 +286,7 @@
/* check if the vtype of the `super' of FROM_TYPE */ \
/* has the typedef */ \
typename \
- mlc::if_< mlc::neq_< typename rec_get_ext_vtype< category, \
+ mlc::if_< mlc::neqv_< typename rec_get_ext_vtype<category, \
super, \
typedef_type >::ret, \
mlc::not_found >, \
@@ -420,6 +469,8 @@
# define stc_pseudosuper_(T) \
set_pseudosuper_type<T>::ret
+// FIXME: s/stc_typeof/stc_type_of/.
+
/// Get the property \a Typedef from \a FromType (version to be used
/// inside a template).
#define stc_typeof(Category, FromType, Typedef) \
https://svn.lrde.epita.fr/svn/oln/trunk/static
This patch is followed by another one where packed_vtypes is removed
from oln/core/abstract/image.hh, since stc/properties.hh defines it now.
Index: ChangeLog
from Roland Levillain <roland(a)lrde.epita.fr>
Add a facility for virtual types packing.
* stc/properties.hh (packed_vtypes): New packing structure, to
be specialized by the user. When properly defined, this structure
can be used to check if all the virtual types of a class are sound.
* tests/properties.cc (my_type_of): New macro.
Define a packed_vtypes structure for the top-most class (my::A) and
check these virtual types in my::A's subclasses.
stc/properties.hh | 7 +++++++
tests/properties.cc | 47 +++++++++++++++++++++++++++++++++++++++++------
2 files changed, 48 insertions, 6 deletions
Index: tests/properties.cc
--- tests/properties.cc (revision 466)
+++ tests/properties.cc (working copy)
@@ -29,13 +29,13 @@
#include <mlc/cmp.hh>
#include <mlc/assert.hh>
-// FIXME: Split this test into several smaller tests? For instance,
-// we have to test inheritance, properties/associated types,
-// ``external properties'', etc. The best approach is probably to
-// browse stc/properties.hh so as to make a list of the features to be
-// checked.
+// This test focuses on the virtual types system, so the exact type of
+// classes is not propagated here (stc::any is not used).
+
+// Helper macros.
+#define my_type_of(FromType, Typedef) \
+ typename my_type_of_(FromType, Typedef)
-// Helper macro.
#define my_type_of_(FromType, Typedef) \
stc_typeof_(my::category::my_cat, FromType, Typedef)
@@ -87,12 +87,35 @@
typedef mlc::undefined baz_type;
};
+ /// Packing of virtual types of any A class.
+ template <typename T>
+ struct packed_vtypes <category::my_cat, T>
+ {
+ typedef my_type_of(T, foo) foo_type;
+ typedef my_type_of(T, bar) bar_type;
+ typedef my_type_of(T, baz) baz_type;
+
+ static void ensure()
+ {
+ mlc::assert_< mlc_is_ok(foo_type) >::check();
+ mlc::assert_< mlc_is_ok(bar_type) >::check();
+ mlc::assert_< mlc_is_ok(baz_type) >::check();
+ }
+ };
+
struct A
{
// Aliases.
typedef my_type_of_(A, foo) foo_type;
typedef my_type_of_(A, bar) bar_type;
typedef my_type_of_(A, baz) baz_type;
+
+ ~A()
+ {
+ // packed_vtypes<category::my, A> is not checked here, since A's
+ // baz_type virtual type is undefined.
+ }
+
};
@@ -135,6 +158,12 @@
typedef my_type_of_(B, baz) baz_type;
typedef my_type_of_(B, quux) quux_type;
typedef my_type_of_(B, yin) yin_type;
+
+ // Check B's vtypes.
+ ~B()
+ {
+ packed_vtypes<category::my_cat, B>::ensure();
+ }
};
@@ -167,6 +196,12 @@
typedef my_type_of_(C, foo) foo_type;
typedef my_type_of_(C, quux) quux_type;
typedef my_type_of_(C, zorg) zorg_type;
+
+ // Check C's vtypes.
+ ~C()
+ {
+ packed_vtypes<category::my_cat, C>::ensure();
+ }
};
}
Index: stc/properties.hh
--- stc/properties.hh (revision 466)
+++ stc/properties.hh (working copy)
@@ -116,6 +116,13 @@
{ \
}; \
\
+ /** Optional packing structure, to be specialized by the user. */ \
+ /** See tests/properties.hh for an example of use. */ \
+ template <typename category, typename from_type> \
+ struct packed_vtypes \
+ { \
+ }; \
+ \
\
/* -------------------- */ \
/* Internal machinery. */ \
https://svn.lrde.epita.fr/svn/oln/trunk
Index: ChangeLog
from Roland Levillain <roland(a)lrde.epita.fr>
Add COPYING and NEWS.
* COPYING: New (imported from oln proto-1.0).
* NEWS: New (imported from oln 0.10).
NEWS | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 299 insertions(+)
Index: NEWS
--- NEWS (revision 0)
+++ NEWS (revision 0)
@@ -0,0 +1,299 @@
+Olena 1.0
+
+ * SCOOP 2 paradigm.
+
+
+Olena 0.10 April 15, 2004
+
+ * New documentation system.
+ Now any comment should use doxygen style (i.e. /*! ... */).
+ You can also write some programs inside the comments. They are
+ compiled at documentation generation time. It is useful to
+ illustrate some algorithms with concrete input and output. To
+ use this feature the program has to be between \code and \endcode
+ tags. If you produce an image, you can include it in the comments
+ with the \image command, using the same name you used to produce
+ it, but with the png extension. To make sure your image will not
+ overwrite another existing one, you should name it taking care of
+ the namespace you are using: e.g. if you comment the function
+ oln::boo::bar::fun, the image should be named oln_foo_bar_fun.ppm.
+ The macros IMG_IN and IMG_OUT correspond to the path of the images.
+
+ * Border behavior can be controlled with the behavior hierarchy.
+ If an algorithm support it, you can choose the way the image
+ border will be seen. Three behaviors are available: mirror,
+ replicate or user defined value.
+
+ * Attribute opening/closing enhancement
+ - Make the algorithm more generic.
+ - Add a lot of attributes (area, disk, square, dist,
+ rectangle, volume, height, maxvalue, minvalue).
+
+ * Change the color conversion system
+ - CIE RGB is the main color system i.e. it can be converted
+ directly into any other color system.
+ - Conversion between 2 color systems should pass by the RGB one.
+
+ * Generic and concrete morphers are now implemented in Olena.
+ - Five morphers are included in this release:
+ Color morpher
+ Sub quantifying morpher
+ Piece morpher
+ Iter morpher
+ Slicing morpher
+ - These morphers can be manipulated as if they were normal images.
+
+
+Olena 0.9 August 8, 2003
+
+ * New static hierarchy paradigm
+ - Complete rewrite of the image hierarchy.
+ - The new hierarchy benefits from multiple inheritance and
+ diamond constructs.
+ - Objects' abstract interfaces made available, leading to
+ safer and easier algorithm writing.
+ - Label images such as binary_image or vectorial_image added.
+
+ * Partial rewrite of images I/O
+ - Support for 1d, 3d images and windows.
+ - Better handling of built-in types.
+
+ * Color conversions fixed and improved.
+
+ * Cleanup and coding style conformance.
+
+ * Many bug fixes.
+ * Improved test-suite.
+
+
+Olena 0.8 April 10, 2003
+
+ IMPORTANT NOTE: This version is not compatible with older
+ versions of Olena. The project has been split into three part,
+ so many header files have moved and new namespaces have been
+ created. Please read the UPGRADING file for more informations.
+
+ * Many source code cleanups.
+ * The source code has been split into 3 parts: image
+ processing (olena/), data types (integre/) and meta-programming
+ tools (metalic/).
+ * First part of the new static hierarchy paradigm implementation.
+ * Support for combinatorial maps.
+ * Many bug fixes.
+
+
+Olena 0.7 February 10, 2003
+
+ * Manual pages for the command-line utilities.
+ * New, saner, source tree layout.
+ * Each `part' of the source tree can be excluded from the
+ build process with configuration flags.
+ * New `oln.m4' file for use by autoconf'ed user projects.
+ * Major documentation updates.
+ * New `oln-config.sh' scripts for user Makefiles.
+ * Olena now works on MacOS X, NetBSD, FreeBSD and cygwin.
+
+
+Olena 0.6 January 15, 2003
+
+ * Complete rewriting of data types.
+ * Command line utilities.
+ * Fully implementation of convolutions
+ * Fast Fourier Transform (FFT)
+ * Discrete Wavelet Transform (Daubechie's wavelet) (DWT)
+ * Many bug fixes.
+
+
+Olena 0.5 July 25, 2002
+
+ * Documentation in LaTeX (instead of Texinfo).
+ * Support reading/writing gziped images
+ (include <oln/io/gz.hh> and link with libz).
+ * Complete rewrite of the static arrays
+ (meta::array1d, meta::array2d, meta::array3d).
+ * Preliminary implementation of convolutions
+ (oln::convol::convolve)
+ * All headers should now be referenced with the `oln/' prefix,
+ as in `#include <oln/basics2d.hh>'.
+ * New conversion operator: convert::stretch.
+ * Many bug fixes.
+
+
+Olena 0.4.1 April 25, 2002
+
+ * Buglet in the 0.4 Makefiles.
+
+
+Olena 0.4 April 24, 2002
+
+ * New morpho:: operators:
+ - thinning
+ - thickening
+ * New convert:: operators:
+ - ng_to_se
+ - ng_to_cse
+ * First sketch of a test suite.
+ * Many bug fixes.
+
+
+Olena 0.3 January 14, 2002
+
+ * fast_morpho() speeded-up.
+ * Minor bug fixes.
+ * "Documentation" updates.
+
+
+Olena 0.2b December 13, 2001
+
+ * Value:
+ - Support for HSL and HSV color systems.
+ - Define internal::default_less<vec<N,T>>.
+
+ * Core:
+ - New window generator: mk_win_ellipse, mk_win_disc,
+ mk_win_ellipsoid, and mk_win_ball.
+
+ * Various #include fixes.
+
+
+Olena 0.2 November 28, 2001
+
+ * Color:
+ - nrgb_8, nrgb_16, nrgb_32: new types for NTSC RGB. The
+ conversion from and to YIQ and HSI which assumed NTSC RGB
+ has been adjusted to actually use nrgb_* (instead of rgb_*)
+ and renamed accordingly.
+ - yuv_8, yuv_16, yuv_32: New types.
+
+ The currently available conversions are
+
+ hsi yuv
+ \ /
+ rgb -- nrgb
+ \ / \
+ xyz yiq
+
+ * Various cleanups and bug fixes. Especially:
+ - border handling (mirroring, copying) simplified and fixed.
+ - ++k, --k: return a value with the same type as k.
+
+ * I/O:
+ - pnm/P1, pnm/P3, and pnm/P6 support for image_3d.
+
+
+Olena 0.1f November 22, 2001
+
+ * Core:
+ - Several bug fixes in memory handling.
+
+ * Types:
+ - New color types: HSI, YIQ; with conversions to and from RGB.
+ - `min()' and `max()' are now defined with the types (i.e.
+ not in math/macros.hh), along with the other operators.
+ Also, these procedures will two arguments of different
+ types.
+
+ * Casts:
+ - `cast::round': similar to C's round()
+ - `cast::rbound': ditto, but constrained to fit the
+ output type's range.
+
+ * I/O:
+ - Support for `image_3d<int_u<N> >' (as PNM P2 & P5).
+
+ * Processings
+ - `level::is_greater_or_equal', `level::is_greater',
+ `level::is_lower_or_equal', `level::is_lower',
+ `level::is_equal': Comparisons between images.
+ - `level::connected_component': Number connected components.
+ - `morpho::geodesic_dilation', `morpho::simple_geodesic_dilation'.
+ - `morpho::geodesic_erosion', `morpho::simple_geodesic_erosion'.
+ - `morpho::get_plus_se_only', `morpho::get_plus_se_p',
+ `morpho::get_minus_se_only', `morpho::get_minus_se_p': Split
+ a structural element in a `plus' (lexicaly before than the center)
+ and `minus' (after).
+
+ * Misc:
+ - `utils::timer': for benchmarking
+ - `level::lut', `level::hlut': Lookup tables.
+
+
+Olena 0.1d November 15, 2001
+
+ * Core:
+ - `point's, `dpoint's, and `image_size's feature a `nth()' method,
+ that returns the value of the nth coordinate.
+ - `fold': new high order operator.
+
+ * Types:
+ - `vec<N,T>' uses an array to store its elements
+ and accepts builtin types.
+ - `rgb<T>' has been replaced by `rgb_8', `rgb_16', `rgb_32'
+ - `xyz_8', `xyz_16', `xyz_32' are new types.
+ - the latter six types are instances of the `color' type.
+
+ * Processings:
+ - All basic morpholohical processings (`opening',
+ `hit_or_miss', `beucher_gradient', etc.) from namespace
+ `morpho::' have their fast equivalent in namespace
+ `morpho::fast::'.
+ - `convert::apply' is similar to `apply' but will work
+ for all types of conversions while `apply' can only work
+ on `conversion_to_type' conversions.
+
+ * Tools:
+ - `utils::fill': fill an image
+ - `utils::f_moments', `utils::f_minmax': statistical functors.
+
+ * Casts:
+ - `cast::bound': similar to `convert::bound'.
+
+ * I/O:
+ - It's possible to load and save as PPM any kind of image2d
+ whose color has 3 components on 8 bits.
+
+
+Olena 0.1b November 8, 2001
+
+ * New type: rgb<T>
+
+ * New processings:
+ - morpho::watershed_con
+ - convol::fast::gaussian
+ - convol::fast::gaussian_derivative
+ - convol::fast::gaussian_second_derivative
+
+ * Conversion are organized in the following hierarchy
+
+ conversion<Inferior>
+ ^
+ |
+ conversion_to_type<To,Inferior>
+ ^
+ |
+ conversion_from_type_to_type<From,To,Inferior>
+
+ All children of conversion_from_type_to_type are models of
+ Adaptable Unary Function. See conversion.hh for more comments.
+
+ * The only two functions that perform file i/o are `load' and
+ `save'. The other functions (`read', `write', `read_pnm',
+ `write_pnm') have been removed.
+
+ * image2d<rgb<int_u8> > can be loaded and saved as ppm.
+
+ * All iterators support a new method, cur(), that returns
+ the current point (or dpoint). It is meant to be used
+ at places where the compiler is unable to implicitly convert
+ an iterator into a point (or dpoint).
+
+ * Bug fixes:
+ - Olena now compiles successfully with -pedantic.
+ - `image2d<int_u8> lena = load("lena.pgm");' works.
+ - Multiplications and subtractions on 'vec' no longer
+ perform additions.
+
+
+Olena 0.1 November 1, 2001
+
+ * Initial public release.
https://svn.lrde.epita.fr/svn/oln/trunk
This patch is not really worth reading. :)
Index: ChangeLog
from Roland Levillain <roland(a)lrde.epita.fr>
Fix copyright notices.
* extended/xtd/res.hh,
* extended/xtd/math.hh,
* extended/xtd/cast.hh,
* extended/xtd/cfun.hh,
* extended/xtd/mexpr.hh,
* extended/xtd/math/log.hh,
* extended/xtd/math/floor.hh,
* extended/xtd/math/tan.hh,
* extended/xtd/math/log10.hh,
* extended/xtd/math/atan.hh,
* extended/xtd/math/cos.hh,
* extended/xtd/math/acos.hh,
* extended/xtd/math/sqrt.hh,
* extended/xtd/math/sin.hh,
* extended/xtd/math/tanh.hh,
* extended/xtd/math/asin.hh,
* extended/xtd/math/cosh.hh,
* extended/xtd/math/id.hh,
* extended/xtd/math/exp.hh,
* extended/xtd/math/logic.hh,
* extended/xtd/math/sinh.hh,
* extended/xtd/math/abs.hh,
* extended/xtd/math/pow.hh,
* extended/xtd/math/atan2.hh,
* extended/xtd/math/includes.hh,
* extended/xtd/math/arith.hh,
* extended/xtd/math/constraints.hh,
* extended/xtd/math/ceil.hh,
* extended/xtd/math/cmp.hh,
* extended/xtd/literal.hh,
* extended/xtd/args.hh,
* extended/xtd/mfun.hh,
* extended/xtd/abstract/nary_fun.hh,
* extended/xtd/abstract/open_nary_fun.hh,
* extended/xtd/abstract/plain_nary_fun.hh,
* extended/xtd/abstract/fun_expr.hh,
* extended/xtd/abstract/meta_nary_fun.hh,
* extended/xtd/abstract/fun.hh,
* extended/xtd/abstract/open_fun.hh,
* extended/xtd/abstract/plain_fun.hh,
* extended/xtd/abstract/meta_fun.hh,
* extended/xtd/abstract/fun_nary_expr.hh,
* extended/xtd/optraits.hh,
* extended/xtd/traits.hh,
* extended/xtd/builtin/traits.hh,
* extended/xtd/arg.hh,
* extended/xtd/bind.hh,
* extended/xtd/internal/opmacros.hh,
* extended/xtd/internal/mlc.hh,
* metalic/mlc/elt.hh,
* metalic/mlc/ret.hh,
* metalic/mlc/int.hh,
* metalic/mlc/pair.hh,
* metalic/mlc/bool.hh,
* metalic/mlc/flags.hh,
* metalic/mlc/comma.hh,
* metalic/mlc/logic.hh,
* metalic/mlc/if.hh,
* metalic/mlc/values.hh,
* metalic/mlc/typedef.hh,
* metalic/mlc/assert.hh,
* metalic/mlc/switch.hh,
* metalic/mlc/valist.hh,
* metalic/mlc/implies.hh,
* metalic/mlc/abstract/type.hh,
* metalic/mlc/abstract/bexpr.hh,
* metalic/mlc/abort.hh,
* metalic/mlc/to_string.hh,
* metalic/mlc/wrap.hh,
* metalic/mlc/is_a.hh,
* metalic/mlc/case.hh,
* metalic/mlc/value.hh,
* metalic/mlc/char.hh,
* metalic/mlc/contract.hh,
* metalic/mlc/uint.hh,
* metalic/mlc/cmp.hh,
* metalic/mlc/bexpr.hh,
* static/tests/properties.cc,
* static/tests/entry.cc,
* static/tests/any.cc: Update the FSF postal address.
* extended/tests/cfun.cc,
* extended/tests/id.cc,
* extended/tests/bind.cc,
* extended/tests/bi_traits/bool.cc,
* extended/tests/bi_traits/char.cc,
* extended/tests/bi_traits/sint.cc,
* extended/tests/bi_traits/uint.cc,
* extended/tests/bi_traits/schar.cc,
* extended/tests/bi_traits/slong.cc,
* extended/tests/bi_traits/sshort.cc,
* extended/tests/bi_traits/uchar.cc,
* extended/tests/bi_traits/ushort.cc,
* extended/tests/bi_traits/ulong.cc,
* extended/tests/bi_traits/float.cc,
* extended/tests/bi_traits/ldouble.cc,
* extended/tests/bi_traits/double.cc,
* extended/tests/cos.cc,
* extended/tests/abs.cc,
* extended/tests/optraits.cc,
* extended/tests/lit.cc,
* extended/tests/math.cc,
* extended/tests/cast.cc,
* metalic/tests/is_a.cc,
* metalic/tests/case.cc,
* metalic/tests/if.cc,
* metalic/tests/typedef.cc,
* metalic/tests/or.cc,
* metalic/tests/switch.cc,
* metalic/tests/gcase.cc,
* metalic/tests/protected.cc,
* metalic/tests/ret.cc,
* static/stc/entry.hh,
* static/stc/any.hh,
* static/stc/properties.hh: Add missing copyright notices.
* olena/oln/core/typedefs.hh,
* olena/oln/core/abstract/image.hh,
* olena/oln/core/abstract/image_entry.hh,
* olena/oln/core/abstract/macros.hh,
* olena/oln/core/abstract/image_dimension.hh,
* olena/oln/core/abstract/any.hh,
* olena/oln/core/abstract/internal/image_impl.hh: .
* olena/tests/image_entry.cc: Fix the FSF postal address.
extended/tests/abs.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/bool.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/char.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/double.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/float.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/ldouble.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/schar.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/sint.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/slong.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/sshort.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/uchar.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/uint.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/ulong.cc | 27 +++++++++++++++++++++++++
extended/tests/bi_traits/ushort.cc | 27 +++++++++++++++++++++++++
extended/tests/bind.cc | 27 +++++++++++++++++++++++++
extended/tests/cast.cc | 27 +++++++++++++++++++++++++
extended/tests/cfun.cc | 26 ++++++++++++++++++++++++
extended/tests/cos.cc | 27 +++++++++++++++++++++++++
extended/tests/id.cc | 27 +++++++++++++++++++++++++
extended/tests/lit.cc | 27 +++++++++++++++++++++++++
extended/tests/math.cc | 27 +++++++++++++++++++++++++
extended/tests/optraits.cc | 27 +++++++++++++++++++++++++
extended/xtd/abstract/fun.hh | 4 +--
extended/xtd/abstract/fun_expr.hh | 4 +--
extended/xtd/abstract/fun_nary_expr.hh | 4 +--
extended/xtd/abstract/meta_fun.hh | 4 +--
extended/xtd/abstract/meta_nary_fun.hh | 4 +--
extended/xtd/abstract/nary_fun.hh | 4 +--
extended/xtd/abstract/open_fun.hh | 4 +--
extended/xtd/abstract/open_nary_fun.hh | 4 +--
extended/xtd/abstract/plain_fun.hh | 4 +--
extended/xtd/abstract/plain_nary_fun.hh | 4 +--
extended/xtd/arg.hh | 4 +--
extended/xtd/args.hh | 4 +--
extended/xtd/bind.hh | 4 +--
extended/xtd/builtin/traits.hh | 4 +--
extended/xtd/cast.hh | 4 +--
extended/xtd/cfun.hh | 4 +--
extended/xtd/internal/mlc.hh | 4 +--
extended/xtd/internal/opmacros.hh | 4 +--
extended/xtd/literal.hh | 4 +--
extended/xtd/math.hh | 4 +--
extended/xtd/math/abs.hh | 4 +--
extended/xtd/math/acos.hh | 4 +--
extended/xtd/math/arith.hh | 4 +--
extended/xtd/math/asin.hh | 4 +--
extended/xtd/math/atan.hh | 4 +--
extended/xtd/math/atan2.hh | 4 +--
extended/xtd/math/ceil.hh | 4 +--
extended/xtd/math/cmp.hh | 4 +--
extended/xtd/math/constraints.hh | 4 +--
extended/xtd/math/cos.hh | 4 +--
extended/xtd/math/cosh.hh | 4 +--
extended/xtd/math/exp.hh | 4 +--
extended/xtd/math/floor.hh | 4 +--
extended/xtd/math/id.hh | 4 +--
extended/xtd/math/includes.hh | 4 +--
extended/xtd/math/log.hh | 4 +--
extended/xtd/math/log10.hh | 4 +--
extended/xtd/math/logic.hh | 4 +--
extended/xtd/math/pow.hh | 4 +--
extended/xtd/math/sin.hh | 4 +--
extended/xtd/math/sinh.hh | 4 +--
extended/xtd/math/sqrt.hh | 4 +--
extended/xtd/math/tan.hh | 4 +--
extended/xtd/math/tanh.hh | 4 +--
extended/xtd/mexpr.hh | 4 +--
extended/xtd/mfun.hh | 4 +--
extended/xtd/optraits.hh | 4 +--
extended/xtd/res.hh | 4 +--
extended/xtd/traits.hh | 4 +--
metalic/mlc/abort.hh | 4 +--
metalic/mlc/abstract/bexpr.hh | 4 +--
metalic/mlc/abstract/type.hh | 4 +--
metalic/mlc/assert.hh | 4 +--
metalic/mlc/bexpr.hh | 4 +--
metalic/mlc/bool.hh | 4 +--
metalic/mlc/case.hh | 4 +--
metalic/mlc/char.hh | 4 +--
metalic/mlc/cmp.hh | 4 +--
metalic/mlc/comma.hh | 4 +--
metalic/mlc/contract.hh | 4 +--
metalic/mlc/elt.hh | 4 +--
metalic/mlc/flags.hh | 4 +--
metalic/mlc/if.hh | 4 +--
metalic/mlc/implies.hh | 4 +--
metalic/mlc/int.hh | 4 +--
metalic/mlc/is_a.hh | 4 +--
metalic/mlc/logic.hh | 4 +--
metalic/mlc/pair.hh | 4 +--
metalic/mlc/ret.hh | 4 +--
metalic/mlc/switch.hh | 4 +--
metalic/mlc/to_string.hh | 4 +--
metalic/mlc/typedef.hh | 4 +--
metalic/mlc/uint.hh | 4 +--
metalic/mlc/valist.hh | 4 +--
metalic/mlc/value.hh | 4 +--
metalic/mlc/values.hh | 4 +--
metalic/mlc/wrap.hh | 4 +--
metalic/tests/case.cc | 27 +++++++++++++++++++++++++
metalic/tests/gcase.cc | 27 +++++++++++++++++++++++++
metalic/tests/if.cc | 27 +++++++++++++++++++++++++
metalic/tests/is_a.cc | 27 +++++++++++++++++++++++++
metalic/tests/or.cc | 27 +++++++++++++++++++++++++
metalic/tests/protected.cc | 27 +++++++++++++++++++++++++
metalic/tests/ret.cc | 27 +++++++++++++++++++++++++
metalic/tests/switch.cc | 27 +++++++++++++++++++++++++
metalic/tests/typedef.cc | 27 +++++++++++++++++++++++++
olena/oln/core/abstract/any.hh | 6 ++---
olena/oln/core/abstract/image.hh | 6 ++---
olena/oln/core/abstract/image_dimension.hh | 6 ++---
olena/oln/core/abstract/image_entry.hh | 6 ++---
olena/oln/core/abstract/internal/image_impl.hh | 6 ++---
olena/oln/core/abstract/macros.hh | 6 ++---
olena/oln/core/typedefs.hh | 6 ++---
olena/tests/image_entry.cc | 6 ++---
static/stc/any.hh | 4 +--
static/stc/entry.hh | 4 +--
static/stc/properties.hh | 4 +--
static/tests/any.cc | 27 +++++++++++++++++++++++++
static/tests/entry.cc | 27 +++++++++++++++++++++++++
static/tests/properties.cc | 27 +++++++++++++++++++++++++
122 files changed, 1101 insertions(+), 184 deletions(-)
Index: extended/xtd/res.hh
--- extended/xtd/res.hh (revision 464)
+++ extended/xtd/res.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math.hh
--- extended/xtd/math.hh (revision 464)
+++ extended/xtd/math.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/cast.hh
--- extended/xtd/cast.hh (revision 464)
+++ extended/xtd/cast.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/cfun.hh
--- extended/xtd/cfun.hh (revision 464)
+++ extended/xtd/cfun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/mexpr.hh
--- extended/xtd/mexpr.hh (revision 464)
+++ extended/xtd/mexpr.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/log.hh
--- extended/xtd/math/log.hh (revision 464)
+++ extended/xtd/math/log.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/floor.hh
--- extended/xtd/math/floor.hh (revision 464)
+++ extended/xtd/math/floor.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/tan.hh
--- extended/xtd/math/tan.hh (revision 464)
+++ extended/xtd/math/tan.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/log10.hh
--- extended/xtd/math/log10.hh (revision 464)
+++ extended/xtd/math/log10.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/atan.hh
--- extended/xtd/math/atan.hh (revision 464)
+++ extended/xtd/math/atan.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/cos.hh
--- extended/xtd/math/cos.hh (revision 464)
+++ extended/xtd/math/cos.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/acos.hh
--- extended/xtd/math/acos.hh (revision 464)
+++ extended/xtd/math/acos.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/sqrt.hh
--- extended/xtd/math/sqrt.hh (revision 464)
+++ extended/xtd/math/sqrt.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/sin.hh
--- extended/xtd/math/sin.hh (revision 464)
+++ extended/xtd/math/sin.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/tanh.hh
--- extended/xtd/math/tanh.hh (revision 464)
+++ extended/xtd/math/tanh.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/asin.hh
--- extended/xtd/math/asin.hh (revision 464)
+++ extended/xtd/math/asin.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/cosh.hh
--- extended/xtd/math/cosh.hh (revision 464)
+++ extended/xtd/math/cosh.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/id.hh
--- extended/xtd/math/id.hh (revision 464)
+++ extended/xtd/math/id.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/exp.hh
--- extended/xtd/math/exp.hh (revision 464)
+++ extended/xtd/math/exp.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/logic.hh
--- extended/xtd/math/logic.hh (revision 464)
+++ extended/xtd/math/logic.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/sinh.hh
--- extended/xtd/math/sinh.hh (revision 464)
+++ extended/xtd/math/sinh.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/abs.hh
--- extended/xtd/math/abs.hh (revision 464)
+++ extended/xtd/math/abs.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/pow.hh
--- extended/xtd/math/pow.hh (revision 464)
+++ extended/xtd/math/pow.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/atan2.hh
--- extended/xtd/math/atan2.hh (revision 464)
+++ extended/xtd/math/atan2.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/includes.hh
--- extended/xtd/math/includes.hh (revision 464)
+++ extended/xtd/math/includes.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/arith.hh
--- extended/xtd/math/arith.hh (revision 464)
+++ extended/xtd/math/arith.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/constraints.hh
--- extended/xtd/math/constraints.hh (revision 464)
+++ extended/xtd/math/constraints.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/ceil.hh
--- extended/xtd/math/ceil.hh (revision 464)
+++ extended/xtd/math/ceil.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/math/cmp.hh
--- extended/xtd/math/cmp.hh (revision 464)
+++ extended/xtd/math/cmp.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/literal.hh
--- extended/xtd/literal.hh (revision 464)
+++ extended/xtd/literal.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/args.hh
--- extended/xtd/args.hh (revision 464)
+++ extended/xtd/args.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/mfun.hh
--- extended/xtd/mfun.hh (revision 464)
+++ extended/xtd/mfun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/nary_fun.hh
--- extended/xtd/abstract/nary_fun.hh (revision 464)
+++ extended/xtd/abstract/nary_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/open_nary_fun.hh
--- extended/xtd/abstract/open_nary_fun.hh (revision 464)
+++ extended/xtd/abstract/open_nary_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/plain_nary_fun.hh
--- extended/xtd/abstract/plain_nary_fun.hh (revision 464)
+++ extended/xtd/abstract/plain_nary_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/fun_expr.hh
--- extended/xtd/abstract/fun_expr.hh (revision 464)
+++ extended/xtd/abstract/fun_expr.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/meta_nary_fun.hh
--- extended/xtd/abstract/meta_nary_fun.hh (revision 464)
+++ extended/xtd/abstract/meta_nary_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/fun.hh
--- extended/xtd/abstract/fun.hh (revision 464)
+++ extended/xtd/abstract/fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/open_fun.hh
--- extended/xtd/abstract/open_fun.hh (revision 464)
+++ extended/xtd/abstract/open_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/plain_fun.hh
--- extended/xtd/abstract/plain_fun.hh (revision 464)
+++ extended/xtd/abstract/plain_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/meta_fun.hh
--- extended/xtd/abstract/meta_fun.hh (revision 464)
+++ extended/xtd/abstract/meta_fun.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/abstract/fun_nary_expr.hh
--- extended/xtd/abstract/fun_nary_expr.hh (revision 464)
+++ extended/xtd/abstract/fun_nary_expr.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/optraits.hh
--- extended/xtd/optraits.hh (revision 464)
+++ extended/xtd/optraits.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/traits.hh
--- extended/xtd/traits.hh (revision 464)
+++ extended/xtd/traits.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/builtin/traits.hh
--- extended/xtd/builtin/traits.hh (revision 464)
+++ extended/xtd/builtin/traits.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/arg.hh
--- extended/xtd/arg.hh (revision 464)
+++ extended/xtd/arg.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/bind.hh
--- extended/xtd/bind.hh (revision 464)
+++ extended/xtd/bind.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/internal/opmacros.hh
--- extended/xtd/internal/opmacros.hh (revision 464)
+++ extended/xtd/internal/opmacros.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/xtd/internal/mlc.hh
--- extended/xtd/internal/mlc.hh (revision 464)
+++ extended/xtd/internal/mlc.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: extended/tests/cfun.cc
--- extended/tests/cfun.cc (revision 464)
+++ extended/tests/cfun.cc (working copy)
@@ -1,3 +1,29 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
#include <iostream>
#include <xtd/cfun.hh>
Index: extended/tests/id.cc
--- extended/tests/id.cc (revision 464)
+++ extended/tests/id.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/math/id.hh>
Index: extended/tests/bind.cc
--- extended/tests/bind.cc (revision 464)
+++ extended/tests/bind.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/math.hh>
Index: extended/tests/bi_traits/bool.cc
--- extended/tests/bi_traits/bool.cc (revision 464)
+++ extended/tests/bi_traits/bool.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/char.cc
--- extended/tests/bi_traits/char.cc (revision 464)
+++ extended/tests/bi_traits/char.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/sint.cc
--- extended/tests/bi_traits/sint.cc (revision 464)
+++ extended/tests/bi_traits/sint.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/uint.cc
--- extended/tests/bi_traits/uint.cc (revision 464)
+++ extended/tests/bi_traits/uint.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/schar.cc
--- extended/tests/bi_traits/schar.cc (revision 464)
+++ extended/tests/bi_traits/schar.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/slong.cc
--- extended/tests/bi_traits/slong.cc (revision 464)
+++ extended/tests/bi_traits/slong.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/sshort.cc
--- extended/tests/bi_traits/sshort.cc (revision 464)
+++ extended/tests/bi_traits/sshort.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/uchar.cc
--- extended/tests/bi_traits/uchar.cc (revision 464)
+++ extended/tests/bi_traits/uchar.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/ushort.cc
--- extended/tests/bi_traits/ushort.cc (revision 464)
+++ extended/tests/bi_traits/ushort.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/ulong.cc
--- extended/tests/bi_traits/ulong.cc (revision 464)
+++ extended/tests/bi_traits/ulong.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/float.cc
--- extended/tests/bi_traits/float.cc (revision 464)
+++ extended/tests/bi_traits/float.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/ldouble.cc
--- extended/tests/bi_traits/ldouble.cc (revision 464)
+++ extended/tests/bi_traits/ldouble.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/bi_traits/double.cc
--- extended/tests/bi_traits/double.cc (revision 464)
+++ extended/tests/bi_traits/double.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <typeinfo>
Index: extended/tests/cos.cc
--- extended/tests/cos.cc (revision 464)
+++ extended/tests/cos.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/math/cos.hh>
Index: extended/tests/abs.cc
--- extended/tests/abs.cc (revision 464)
+++ extended/tests/abs.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/math/abs.hh>
Index: extended/tests/optraits.cc
--- extended/tests/optraits.cc (revision 464)
+++ extended/tests/optraits.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/optraits.hh>
#include <xtd/math.hh>
Index: extended/tests/lit.cc
--- extended/tests/lit.cc (revision 464)
+++ extended/tests/lit.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/literal.hh>
Index: extended/tests/math.cc
--- extended/tests/math.cc (revision 464)
+++ extended/tests/math.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/math.hh>
Index: extended/tests/cast.cc
--- extended/tests/cast.cc (revision 464)
+++ extended/tests/cast.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <iostream>
#include <xtd/cast.hh>
#include <xtd/arg.hh>
Index: static/tests/properties.cc
--- static/tests/properties.cc (revision 464)
+++ static/tests/properties.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <stc/properties.hh>
#include <mlc/cmp.hh>
#include <mlc/assert.hh>
Index: static/tests/entry.cc
--- static/tests/entry.cc (revision 464)
+++ static/tests/entry.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
/// Test the extensible entry points in a class hierarchy.
#include <stc/entry.hh>
Index: static/tests/any.cc
--- static/tests/any.cc (revision 464)
+++ static/tests/any.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
/// Test stc::any.
#include <stc/any.hh>
Index: static/stc/entry.hh
--- static/stc/entry.hh (revision 464)
+++ static/stc/entry.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: static/stc/any.hh
--- static/stc/any.hh (revision 464)
+++ static/stc/any.hh (working copy)
@@ -13,8 +13,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: static/stc/properties.hh
--- static/stc/properties.hh (revision 464)
+++ static/stc/properties.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/tests/is_a.cc
--- metalic/tests/is_a.cc (revision 464)
+++ metalic/tests/is_a.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/is_a.hh>
#include <mlc/assert.hh>
Index: metalic/tests/case.cc
--- metalic/tests/case.cc (revision 464)
+++ metalic/tests/case.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/is_a.hh>
#include <mlc/case.hh>
Index: metalic/tests/if.cc
--- metalic/tests/if.cc (revision 464)
+++ metalic/tests/if.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/if.hh>
#include <mlc/cmp.hh>
#include <mlc/assert.hh>
Index: metalic/tests/typedef.cc
--- metalic/tests/typedef.cc (revision 464)
+++ metalic/tests/typedef.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/typedef.hh>
#include <mlc/cmp.hh>
#include <mlc/assert.hh>
Index: metalic/tests/or.cc
--- metalic/tests/or.cc (revision 464)
+++ metalic/tests/or.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/cmp.hh>
#include <mlc/logic.hh>
#include <mlc/assert.hh>
Index: metalic/tests/switch.cc
--- metalic/tests/switch.cc (revision 464)
+++ metalic/tests/switch.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/is_a.hh>
#include <mlc/case.hh>
Index: metalic/tests/gcase.cc
--- metalic/tests/gcase.cc (revision 464)
+++ metalic/tests/gcase.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/is_a.hh>
#include <mlc/case.hh>
Index: metalic/tests/protected.cc
--- metalic/tests/protected.cc (revision 464)
+++ metalic/tests/protected.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
#include <mlc/switch.hh>
#include <mlc/cmp.hh>
#include <mlc/typedef.hh>
Index: metalic/tests/ret.cc
--- metalic/tests/ret.cc (revision 464)
+++ metalic/tests/ret.cc (working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
# include <cassert>
# include <iostream>
# include <mlc/ret.hh>
Index: metalic/mlc/elt.hh
--- metalic/mlc/elt.hh (revision 464)
+++ metalic/mlc/elt.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/ret.hh
--- metalic/mlc/ret.hh (revision 464)
+++ metalic/mlc/ret.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/int.hh
--- metalic/mlc/int.hh (revision 464)
+++ metalic/mlc/int.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/pair.hh
--- metalic/mlc/pair.hh (revision 464)
+++ metalic/mlc/pair.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/bool.hh
--- metalic/mlc/bool.hh (revision 464)
+++ metalic/mlc/bool.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/flags.hh
--- metalic/mlc/flags.hh (revision 464)
+++ metalic/mlc/flags.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/comma.hh
--- metalic/mlc/comma.hh (revision 464)
+++ metalic/mlc/comma.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/logic.hh
--- metalic/mlc/logic.hh (revision 464)
+++ metalic/mlc/logic.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/if.hh
--- metalic/mlc/if.hh (revision 464)
+++ metalic/mlc/if.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/values.hh
--- metalic/mlc/values.hh (revision 464)
+++ metalic/mlc/values.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/typedef.hh
--- metalic/mlc/typedef.hh (revision 464)
+++ metalic/mlc/typedef.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/assert.hh
--- metalic/mlc/assert.hh (revision 464)
+++ metalic/mlc/assert.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/switch.hh
--- metalic/mlc/switch.hh (revision 464)
+++ metalic/mlc/switch.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/valist.hh
--- metalic/mlc/valist.hh (revision 464)
+++ metalic/mlc/valist.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/implies.hh
--- metalic/mlc/implies.hh (revision 464)
+++ metalic/mlc/implies.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/abstract/type.hh
--- metalic/mlc/abstract/type.hh (revision 464)
+++ metalic/mlc/abstract/type.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/abstract/bexpr.hh
--- metalic/mlc/abstract/bexpr.hh (revision 464)
+++ metalic/mlc/abstract/bexpr.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/abort.hh
--- metalic/mlc/abort.hh (revision 464)
+++ metalic/mlc/abort.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/to_string.hh
--- metalic/mlc/to_string.hh (revision 464)
+++ metalic/mlc/to_string.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/wrap.hh
--- metalic/mlc/wrap.hh (revision 464)
+++ metalic/mlc/wrap.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/is_a.hh
--- metalic/mlc/is_a.hh (revision 464)
+++ metalic/mlc/is_a.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/case.hh
--- metalic/mlc/case.hh (revision 464)
+++ metalic/mlc/case.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/value.hh
--- metalic/mlc/value.hh (revision 464)
+++ metalic/mlc/value.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/char.hh
--- metalic/mlc/char.hh (revision 464)
+++ metalic/mlc/char.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/contract.hh
--- metalic/mlc/contract.hh (revision 464)
+++ metalic/mlc/contract.hh (working copy)
@@ -13,8 +13,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/uint.hh
--- metalic/mlc/uint.hh (revision 464)
+++ metalic/mlc/uint.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/cmp.hh
--- metalic/mlc/cmp.hh (revision 464)
+++ metalic/mlc/cmp.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: metalic/mlc/bexpr.hh
--- metalic/mlc/bexpr.hh (revision 464)
+++ metalic/mlc/bexpr.hh (working copy)
@@ -12,8 +12,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/tests/image_entry.cc
--- olena/tests/image_entry.cc (revision 464)
+++ olena/tests/image_entry.cc (working copy)
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/typedefs.hh
--- olena/oln/core/typedefs.hh (revision 464)
+++ olena/oln/core/typedefs.hh (working copy)
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/abstract/image.hh
--- olena/oln/core/abstract/image.hh (revision 464)
+++ olena/oln/core/abstract/image.hh (working copy)
@@ -12,9 +12,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/abstract/image_entry.hh
--- olena/oln/core/abstract/image_entry.hh (revision 464)
+++ olena/oln/core/abstract/image_entry.hh (working copy)
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/abstract/macros.hh
--- olena/oln/core/abstract/macros.hh (revision 464)
+++ olena/oln/core/abstract/macros.hh (working copy)
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/abstract/image_dimension.hh
--- olena/oln/core/abstract/image_dimension.hh (revision 464)
+++ olena/oln/core/abstract/image_dimension.hh (working copy)
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/abstract/any.hh
--- olena/oln/core/abstract/any.hh (revision 464)
+++ olena/oln/core/abstract/any.hh (working copy)
@@ -12,9 +12,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
Index: olena/oln/core/abstract/internal/image_impl.hh
--- olena/oln/core/abstract/internal/image_impl.hh (revision 464)
+++ olena/oln/core/abstract/internal/image_impl.hh (working copy)
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
https://svn.lrde.epita.fr/svn/oln/trunk/olena
There is a lot of commented code in these newly imported files; this
is on purpose, since disabled features are to be re-enabled as one goes
along; this way, we'll let current code pass the tests.
I only checked in a single abstraction hierarchy (image dimension) into
the project; feel free to take part to the population of
olena::abstract! You can have a look at Christophe's work on Olena's
Trac Wiki :
http://olena.lrde.org/trac.cgi/wiki/ImageTaxonomy
The best way to re-import existing code (presumably from the
prototypes/proto-1.0 source tree) is to use `svn copy', e.g.:
svn copy https://svn.lrde.epita.fr/svn/oln/prototypes/proto-1.0/myfile \
path-to-my-working-copy/my-file
This way, the history of the file is preserved.
P.S.: A lot of copyright headers of Olena use the old postal address
of the FSF. Of course, we'll run an update script later, but I think
we should take the good habit of using their new address in every
newly added file.
Index: ChangeLog
from Roland Levillain <roland(a)lrde.epita.fr>
Lay the foundation stone of abstract::image.
* oln/core/abstract/any.hh, oln/core/typedefs.hh,
* oln/core/abstract/image.hh,
* oln/core/abstract/internal/image_impl.hh
* oln/core/abstract/image_entry.hh
* oln/core/abstract/image_dimension.hh: New files (imported from
Olena proto-1.0, and modified).
* oln/core/abstract/macros.hh: New file.
* tests/image_entry.cc: New test.
* Makefile.am, oln/Makefile.am, tests/Makefile.am: New files.
Makefile.am | 3
oln/Makefile.am | 13
oln/core/abstract/any.hh | 19 -
oln/core/abstract/image.hh | 571 +++++++++++++++++--------------
oln/core/abstract/image_dimension.hh | 22 -
oln/core/abstract/image_entry.hh | 66 +--
oln/core/abstract/internal/image_impl.hh | 95 ++++-
oln/core/abstract/macros.hh | 46 ++
oln/core/typedefs.hh | 178 +++++----
tests/Makefile.am | 17
tests/image_entry.cc | 73 +++
11 files changed, 716 insertions(+), 387 deletions(-)
Index: tests/image_entry.cc
--- tests/image_entry.cc (revision 0)
+++ tests/image_entry.cc (revision 0)
@@ -0,0 +1,73 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// Test oln::abstract::image_entry.
+
+#include <oln/core/abstract/image_entry.hh>
+#include <oln/core/abstract/image_dimension.hh>
+
+namespace my
+{
+ // Fwd decl.
+ class image;
+}
+
+namespace oln
+{
+ // Warning, this sugar might be removed in the future.
+ stc_set_super(my::image, abstract::image_entry<my::image>);
+
+ /// Virtual types associated to my::A.
+ template<>
+ struct vtypes<category::image, my::image>
+ {
+ // FIXME: Don't use the abstraction as a property, but the
+ // corresponding grid instead. The switch for image_dimension
+ // (above image_entry) should plug the inheritance relationship to
+ // the right image_dimension class using the sole grid information
+ // (the grid can be seen here as a ``tag'').
+ typedef stc::is_a<abstract::image1d> image_dimension_type;
+ };
+}
+
+namespace my
+{
+ // A very simple 1D image.
+ class image : public oln::set_super_type<image>::ret
+ {
+ typedef image self_type;
+ typedef oln_type_of_(self_type, image_dimension) image_dimension_type;
+ };
+}
+
+int
+main()
+{
+ // Instantiate it, and check its dimension.
+ my::image i;
+ mlc::assert_< mlc_is_a_(my::image::image, oln::abstract::image1d) >::check();
+}
Index: tests/Makefile.am
--- tests/Makefile.am (revision 0)
+++ tests/Makefile.am (revision 0)
@@ -0,0 +1,17 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/olena -I$(top_srcdir)/static \
+ -I$(top_srcdir)/metalic
+# FIXME: Add
+#
+# AM_CXXFLAGS = $(CXXFLAGS_STRICT) $(CXXFLAGS_OPTIMIZE) -ggdb
+#
+# when oln.m4 is available in the distribution.
+
+check_PROGRAMS = \
+ image_entry
+
+image_entry_SOURCES = image_entry.cc
+
+TESTS = $(check_PROGRAMS)
Index: oln/core/typedefs.hh
--- oln/core/typedefs.hh (revision 0)
+++ oln/core/typedefs.hh (working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
@@ -31,11 +31,10 @@
# include <iostream>
# include <mlc/contract.hh>
-# include <mlc/types.hh>
+# include <mlc/flags.hh>
# include <mlc/cmp.hh>
# include <mlc/typedef.hh>
-# include <mlc/properties.hh>
-# include <mlc/to_string.hh>
+# include <stc/properties.hh>
# define oln_super_of_(Type) \
@@ -56,79 +55,114 @@
namespace oln
{
+ // Namespace equipment.
+ stc_equip_namespace_with_properties();
- mlc_equip_namespace_with_properties();
+ // Misc.
-
- // misc
-
- mlc_decl_typedef(exact_type);
-
- // general
-
- mlc_decl_typedef(grid_type);
-
- // iterators
-
- mlc_decl_typedef(iter_type);
- mlc_decl_typedef(fwd_iter_type);
- mlc_decl_typedef(bkd_iter_type);
-
- mlc_decl_typedef(piter_type);
- mlc_decl_typedef(fwd_piter_type);
- mlc_decl_typedef(bkd_piter_type);
-
- mlc_decl_typedef(qiter_type);
- mlc_decl_typedef(fwd_qiter_type);
- mlc_decl_typedef(bkd_qiter_type);
-
- mlc_decl_typedef(niter_type);
- mlc_decl_typedef(fwd_niter_type);
- mlc_decl_typedef(bkd_niter_type);
-
- // category::image
-
- mlc_decl_typedef(data_type);
- mlc_decl_typedef(value_type);
- mlc_decl_typedef(neighb_type);
- mlc_decl_typedef(value_storage_type);
- mlc_decl_typedef(storage_type);
- mlc_decl_typedef(point_type);
- mlc_decl_typedef(dpoint_type);
- mlc_decl_typedef(image_type);
- mlc_decl_typedef(concrete_type);
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(exact_type);
+// --------------------------------------------------------------------
+
+ // General.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(grid_type);
+// --------------------------------------------------------------------
+
+ // Iterators.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(iter_type);
+// mlc_decl_typedef(fwd_iter_type);
+// mlc_decl_typedef(bkd_iter_type);
+
+// mlc_decl_typedef(piter_type);
+// mlc_decl_typedef(fwd_piter_type);
+// mlc_decl_typedef(bkd_piter_type);
+
+// mlc_decl_typedef(qiter_type);
+// mlc_decl_typedef(fwd_qiter_type);
+// mlc_decl_typedef(bkd_qiter_type);
+
+// mlc_decl_typedef(niter_type);
+// mlc_decl_typedef(fwd_niter_type);
+// mlc_decl_typedef(bkd_niter_type);
+// --------------------------------------------------------------------
+
+ // category::image.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(data_type);
+// mlc_decl_typedef(value_type);
+// mlc_decl_typedef(neighb_type);
+// mlc_decl_typedef(value_storage_type);
+// mlc_decl_typedef(storage_type);
+// mlc_decl_typedef(point_type);
+// mlc_decl_typedef(dpoint_type);
+// mlc_decl_typedef(image_type);
+// mlc_decl_typedef(concrete_type);
+// --------------------------------------------------------------------
mlc_decl_typedef(delegated_type);
- mlc_decl_typedef(size_type);
- mlc_decl_typedef(window_type);
-
- mlc_decl_typedef(image_neighbness_type);
- mlc_decl_typedef(image_constness_type);
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(size_type);
+// mlc_decl_typedef(window_type);
+
+// mlc_decl_typedef(image_neighbness_type);
+// mlc_decl_typedef(image_constness_type);
+// --------------------------------------------------------------------
mlc_decl_typedef(image_dimension_type);
- mlc_decl_typedef(image_typeness_type);
- mlc_decl_typedef(image_valuedness_type);
- mlc_decl_typedef(image_rawness_type);
-
- // extension in image_operators
- mlc_decl_typedef(output_type);
- mlc_decl_typedef(input_type);
- mlc_decl_typedef(input1_type);
- mlc_decl_typedef(input2_type);
-
-
-
- // category::grid
-
- mlc_decl_typedef(dimvalue_type);
- mlc_decl_typedef(coord_type);
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(image_typeness_type);
+// mlc_decl_typedef(image_valuedness_type);
+// mlc_decl_typedef(image_rawness_type);
+// --------------------------------------------------------------------
+
+ // Extension in image_operators.
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(output_type);
+// mlc_decl_typedef(input_type);
+// mlc_decl_typedef(input1_type);
+// mlc_decl_typedef(input2_type);
+// --------------------------------------------------------------------
- // category::fun1 and 2
- mlc_decl_typedef(res_type);
- mlc_decl_typedef(arg_type);
- mlc_decl_typedef(left_type);
- mlc_decl_typedef(right_type);
+ // category::grid.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(dimvalue_type);
+// mlc_decl_typedef(coord_type);
+// --------------------------------------------------------------------
+
+
+ // category::fun1 and category::fun2.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc_decl_typedef(res_type);
+// mlc_decl_typedef(arg_type);
+// mlc_decl_typedef(left_type);
+// mlc_decl_typedef(right_type);
+// --------------------------------------------------------------------
} // end of namespace oln
Index: oln/core/abstract/image.hh
--- oln/core/abstract/image.hh (revision 0)
+++ oln/core/abstract/image.hh (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2001, 2003, 2004, 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2001, 2003, 2004, 2005, 2006 EPITA Research and
+// Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -11,9 +12,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
@@ -28,15 +29,9 @@
#ifndef OLENA_CORE_ABSTRACT_IMAGE_HH
# define OLENA_CORE_ABSTRACT_IMAGE_HH
-# include <oln/core/typedefs.hh>
-
-# define oln_type_of_(ImageType, Alias) \
-mlc_type_of_(oln, oln::category::image, ImageType, Alias)
-
-# define oln_type_of(ImageType, Alias) \
-mlc_type_of(oln, oln::category::image, ImageType, Alias)
-
-
+# include <mlc/cmp.hh>
+# include <mlc/to_string.hh>
+# include <oln/core/abstract/internal/image_impl.hh>
namespace oln {
@@ -48,145 +43,174 @@
// fwd decls
namespace abstract
{
- template <typename P> class point;
template <typename I> class image;
- template <typename I> class image_without_nbh;
- template <typename I> class readonly_image;
- template <typename I> class raw_image;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// template <typename I> class image_without_nbh;
+// template <typename I> class readonly_image;
+// template <typename I> class raw_image;
+// template <typename P> class point;
+// --------------------------------------------------------------------
}
- namespace category
- {
- struct image;
- }
-
-
- /// Default properties of any image type.
+ // Declare virtual types.
+ mlc_decl_typedef(grid_type);
- template <>
- struct set_default_props < category::image >
+ /// Virtual types associated to oln::abstract::image.
+ template <typename I>
+ struct vtypes< category::image, abstract::image<I> >
{
- typedef mlc::undefined_type grid_type;
-
- typedef mlc::undefined_type concrete_type;
- typedef mlc::undefined_type value_type;
- typedef mlc::undefined_type point_type;
- typedef mlc::undefined_type size_type;
-
- typedef mlc::undefined_type piter_type;
- typedef mlc::undefined_type fwd_piter_type;
- typedef mlc::undefined_type bkd_piter_type;
-
- typedef mlc::no_type value_storage_type;
- typedef mlc::no_type storage_type;
- typedef mlc::no_type delegated_type;
- typedef mlc::no_type neighb_type;
-
-
- typedef is_a<abstract::image_without_nbh> image_neighbness_type;
- typedef is_a<abstract::readonly_image> image_constness_type;
- typedef mlc::undefined_type image_rawness_type;
- typedef mlc::undefined_type image_dimension_type;
-
- //...
+ typedef I exact_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// typedef mlc::undefined grid_type;
+// typedef mlc::undefined concrete_type;
+// typedef mlc::undefined value_type;
+// typedef mlc::undefined point_type;
+// typedef mlc::undefined size_type;
+
+// typedef mlc::undefined piter_type;
+// typedef mlc::undefined fwd_piter_type;
+// typedef mlc::undefined bkd_piter_type;
+
+// typedef mlc::none value_storage_type;
+// typedef mlc::none storage_type;
+// --------------------------------------------------------------------
+ typedef mlc::none delegated_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// typedef mlc::none neighb_type;
+
+// typedef is_a<abstract::image_without_nbh> image_neighbness_type;
+// typedef is_a<abstract::readonly_image> image_constness_type;
+// typedef mlc::undefined image_rawness_type;
+// --------------------------------------------------------------------
+ typedef mlc::undefined image_dimension_type;
};
+ // FIXME: This should be placed into stc/properties.hh.
+ template <typename Category, typename T>
+ struct packed_vtypes
+ {
+ // Empty.
+ };
/// Retrieval of any image type properties (FIXME: say 'packing').
-
template <typename I>
- struct get_props < category::image, I >
+ struct packed_vtypes < category::image, I >
{
- typedef oln_type_of(I, grid) grid_type;
-
- typedef oln_type_of(I, concrete) concrete_type;
- typedef oln_type_of(I, value) value_type;
- typedef oln_type_of(I, point) point_type;
- typedef oln_type_of(I, size) size_type;
-
- typedef oln_type_of(I, piter) piter_type;
- typedef oln_type_of(I, fwd_piter) fwd_piter_type;
- typedef oln_type_of(I, bkd_piter) bkd_piter_type;
-
- typedef oln_type_of(I, value_storage) value_storage_type;
- typedef oln_type_of(I, storage) storage_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// typedef oln_type_of(I, grid) grid_type;
+
+// typedef oln_type_of(I, concrete) concrete_type;
+// typedef oln_type_of(I, value) value_type;
+// typedef oln_type_of(I, point) point_type;
+// typedef oln_type_of(I, size) size_type;
+
+// typedef oln_type_of(I, piter) piter_type;
+// typedef oln_type_of(I, fwd_piter) fwd_piter_type;
+// typedef oln_type_of(I, bkd_piter) bkd_piter_type;
+
+// typedef oln_type_of(I, value_storage) value_storage_type;
+// typedef oln_type_of(I, storage) storage_type;
+// --------------------------------------------------------------------
typedef oln_type_of(I, delegated) delegated_type;
- typedef oln_type_of(I, neighb) neighb_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// typedef oln_type_of(I, neighb) neighb_type;
- typedef oln_type_of(I, image_neighbness) image_neighbness_type;
- typedef oln_type_of(I, image_constness) image_constness_type;
- typedef oln_type_of(I, image_rawness) image_rawness_type;
+// typedef oln_type_of(I, image_neighbness) image_neighbness_type;
+// typedef oln_type_of(I, image_constness) image_constness_type;
+// typedef oln_type_of(I, image_rawness) image_rawness_type;
+// --------------------------------------------------------------------
typedef oln_type_of(I, image_dimension) image_dimension_type;
//...
static void echo(std::ostream& ostr)
{
- ostr << "props_of( oln::category::image, " << mlc_to_string(I) << " ) =" << std::endl
+ ostr
+ << "props_of( oln::category::image, " << mlc_to_string(I) << " ) ="
+ << std::endl
<< "{" << std::endl
-
- << "\t grid_type = " << mlc_to_string(grid_type) << std::endl
-
- << "\t concrete_type = " << mlc_to_string(concrete_type) << std::endl
- << "\t value_type = " << mlc_to_string(value_type) << std::endl
- << "\t point_type = " << mlc_to_string(point_type) << std::endl
- << "\t size_type = " << mlc_to_string(size_type) << std::endl
-
- << "\t piter_type = " << mlc_to_string(piter_type) << std::endl
- << "\t fwd_piter_type = " << mlc_to_string(fwd_piter_type) << std::endl
- << "\t bkd_piter_type = " << mlc_to_string(bkd_piter_type) << std::endl
-
- << "\t value_storage_type = " << mlc_to_string(value_storage_type) << std::endl
- << "\t storage_type = " << mlc_to_string(storage_type) << std::endl
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// << "\t grid_type = " << mlc_to_string(grid_type) << std::endl
+
+// << "\t concrete_type = " << mlc_to_string(concrete_type) << std::endl
+// << "\t value_type = " << mlc_to_string(value_type) << std::endl
+// << "\t point_type = " << mlc_to_string(point_type) << std::endl
+// << "\t size_type = " << mlc_to_string(size_type) << std::endl
+
+// << "\t piter_type = " << mlc_to_string(piter_type) << std::endl
+// << "\t fwd_piter_type = " << mlc_to_string(fwd_piter_type) << std::endl
+// << "\t bkd_piter_type = " << mlc_to_string(bkd_piter_type) << std::endl
+
+// << "\t value_storage_type = " << mlc_to_string(value_storage_type) << std::endl
+// << "\t storage_type = " << mlc_to_string(storage_type) << std::endl
+// ---------------------------------------------------------------------
<< "\t delegated_type = " << mlc_to_string(delegated_type) << std::endl
- << "\t neighb_type = " << mlc_to_string(neighb_type) << std::endl
-
- << "\t image_neighbness_type = " << mlc_to_string(image_neighbness_type) << std::endl
- << "\t image_constness_type = " << mlc_to_string(image_constness_type) << std::endl
- << "\t image_rawness_type = " << mlc_to_string(image_rawness_type) << std::endl
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// << "\t neighb_type = " << mlc_to_string(neighb_type) << std::endl
+
+// << "\t image_neighbness_type = " << mlc_to_string(image_neighbness_type) << std::endl
+// << "\t image_constness_type = " << mlc_to_string(image_constness_type) << std::endl
+// << "\t image_rawness_type = " << mlc_to_string(image_rawness_type) << std::endl
+// --------------------------------------------------------------------
<< "\t image_dimension_type = " << mlc_to_string(image_dimension_type) << std::endl
-
<< "}" << std::endl;
}
static void ensure()
{
- mlc::is_ok< grid_type >::ensure();
- mlc::is_ok< concrete_type >::ensure();
- mlc::is_ok< value_type >::ensure();
- mlc::is_ok< point_type >::ensure();
- mlc::is_ok< size_type >::ensure();
- mlc::is_ok< piter_type >::ensure();
- mlc::is_ok< fwd_piter_type >::ensure();
- mlc::is_ok< bkd_piter_type >::ensure();
-
- mlc::is_ok< value_storage_type >::ensure();
- mlc::is_ok< storage_type >::ensure();
- mlc::is_ok< delegated_type >::ensure();
- mlc::is_ok< neighb_type >::ensure();
-
- mlc::is_ok< image_neighbness_type >::ensure();
- mlc::is_ok< image_constness_type >::ensure();
- mlc::is_ok< image_rawness_type >::ensure();
- mlc::is_ok< image_dimension_type >::ensure();
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc::is_ok_< grid_type >::ensure();
+// mlc::is_ok_< concrete_type >::ensure();
+// mlc::is_ok_< value_type >::ensure();
+// mlc::is_ok_< point_type >::ensure();
+// mlc::is_ok_< size_type >::ensure();
+// mlc::is_ok_< piter_type >::ensure();
+// mlc::is_ok_< fwd_piter_type >::ensure();
+// mlc::is_ok_< bkd_piter_type >::ensure();
+
+// mlc::is_ok_< value_storage_type >::ensure();
+// mlc::is_ok_< storage_type >::ensure();x
+// --------------------------------------------------------------------
+ mlc::is_ok_< delegated_type >::ensure();
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// mlc::is_ok_< neighb_type >::ensure();
+
+// mlc::is_ok_< image_neighbness_type >::ensure();
+// mlc::is_ok_< image_constness_type >::ensure();
+// mlc::is_ok_< image_rawness_type >::ensure();
+// --------------------------------------------------------------------
+ mlc::is_ok_< image_dimension_type >::ensure();
}
};
-
- template <typename I>
- struct set_props < category::image, abstract::image<I> >
- {
- typedef I exact_type;
- };
-
-
} // end of namespace oln
-# include <oln/core/abstract/internal/image_impl.hh>
-# include <oln/core/gen/internal/value_box.hh>
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// # include <oln/core/gen/internal/value_box.hh>
+// --------------------------------------------------------------------
namespace oln
@@ -211,11 +235,14 @@
template <typename E>
struct image : public internal::get_image_impl < image<E>, E >
{
-
- /// typedefs
- typedef oln_type_of(E, size) size_type;
- typedef oln_type_of(E, value) value_type;
- typedef oln_type_of(E, point) point_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// /// typedefs
+// typedef oln_type_of(E, size) size_type;
+// typedef oln_type_of(E, value) value_type;
+// typedef oln_type_of(E, point) point_type;
+// --------------------------------------------------------------------
/*------------------*
@@ -231,10 +258,14 @@
** size2d.
*/
- const size_type& size() const
- {
- return this->exact().impl_size();
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// const size_type& size() const
+// {
+// return this->exact().impl_size();
+// }
+// --------------------------------------------------------------------
/*! \brief Return the number of points of the current image.
@@ -247,10 +278,14 @@
** not yet defined; ex: image2d<int> ima; cout << ima.npoints();
*/
- unsigned long npoints() const
- {
- return this->exact().impl_npoints();
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// unsigned long npoints() const
+// {
+// return this->exact().impl_npoints();
+// }
+// --------------------------------------------------------------------
/*! \brief Test if the point \a p belongs to the current image.
@@ -263,7 +298,11 @@
** \see hold_large
*/
- bool hold(const point_type& p) const; // impl is in box.hh
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// bool hold(const point_type& p) const; // impl is in box.hh
+// --------------------------------------------------------------------
/*! \brief Test if \a p is a proper point to access a value of
@@ -280,11 +319,15 @@
** \see hold
*/
- bool hold_large(const point_type& p) const
- {
- precondition(this->npoints() != 0);
- return this->exact().impl_hold_large(p);
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// bool hold_large(const point_type& p) const
+// {
+// precondition(this->npoints() != 0);
+// return this->exact().impl_hold_large(p);
+// }
+// --------------------------------------------------------------------
/*! \brief Default implementation for hold_large. If not
@@ -297,12 +340,16 @@
** \see hold_large
*/
- bool impl_hold_large(const point_type& p) const
- {
- // it relies on 'impl_hold' to avoid counting one call to
- // 'hold' when the effective call is 'hold_large'
- return this->exact().impl_hold(p);
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// bool impl_hold_large(const point_type& p) const
+// {
+// // it relies on 'impl_hold' to avoid counting one call to
+// // 'hold' when the effective call is 'hold_large'
+// return this->exact().impl_hold(p);
+// }
+// --------------------------------------------------------------------
@@ -310,11 +357,15 @@
! concrete methods !
*------------------*/
- template <typename P>
- void operator()(const oln::abstract::point<P>&) const
- {
- // FIXME: provide an explicit err msg, e.g., "(p) should not be used on an ima"
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// template <typename P>
+// void operator()(const oln::abstract::point<P>&) const
+// {
+// // FIXME: provide an explicit err msg, e.g., "(p) should not be used on an ima"
+// }
+// --------------------------------------------------------------------
/*! \brief Give access to the value stored at \a p in the
** current image. Precisely it returns a box that encloses this
@@ -325,13 +376,17 @@
** \see value_box
*/
- value_box<const E> operator[](const point_type& p) const
- {
- precondition(this->npoints() != 0);
- precondition(this->hold_large(p));
- value_box<const E> tmp(this->exact(), p);
- return tmp;
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// value_box<const E> operator[](const point_type& p) const
+// {
+// precondition(this->npoints() != 0);
+// precondition(this->hold_large(p));
+// value_box<const E> tmp(this->exact(), p);
+// return tmp;
+// }
+// --------------------------------------------------------------------
/*! \brief Gives access to the value stored at \a p in the
@@ -343,13 +398,17 @@
** \see value_box
*/
- value_box<E> operator[](const point_type& p)
- {
- precondition(this->npoints() != 0);
- precondition(this->hold_large(p));
- value_box<E> tmp(this->exact(), p);
- return tmp;
- }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// value_box<E> operator[](const point_type& p)
+// {
+// precondition(this->npoints() != 0);
+// precondition(this->hold_large(p));
+// value_box<E> tmp(this->exact(), p);
+// return tmp;
+// }
+// --------------------------------------------------------------------
/*! \brief Destructor.
@@ -357,7 +416,6 @@
virtual ~image()
{
- get_props<category::image, E>::ensure();
// FIXME: static check fails because "pointer to member conversion via virtual base"...
// mlc_check_method_impl(E, const size_type&, size, , const);
// mlc_check_method_impl(E, unsigned long, npoints, , const);
@@ -390,14 +448,22 @@
** \see value_box, abstract::image<I>::operator[](point)
*/
- const value_type get(const point_type& p) const; // impl is in box.hh
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// const value_type get(const point_type& p) const; // impl is in box.hh
+// --------------------------------------------------------------------
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
// FIXME: patch!
-
- void resize_border(size_t new_border, bool copy_border = false) const
- {
- this->exact().impl_resize_border(new_border, copy_border);
- }
+// void resize_border(size_t new_border, bool copy_border = false) const
+// {
+// this->exact().impl_resize_border(new_border, copy_border);
+// }
+// --------------------------------------------------------------------
protected:
@@ -412,100 +478,107 @@
/*! \brief Op= (protected, empty).
*/
void operator=(const image&) {}
-
};
- /*! \namespace oln::abstract::internal
- ** \brief oln::abstract::internal namespace.
- */
- namespace internal {
-
- template <typename E>
- struct set_image_impl < image<E>, E > : public virtual image_impl<E>
- {
-
- /// typedefs
-
- typedef typename image_impl<E>::D D;
-
- typedef oln_type_of(D, size) size_type;
- typedef oln_type_of(D, point) point_type;
- typedef oln_type_of(D, value) value_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// /*! \namespace oln::abstract::internal
+// ** \brief oln::abstract::internal namespace.
+// */
+// namespace internal {
+
+// template <typename E>
+// struct set_image_impl < image<E>, E > : public virtual image_impl<E>
+// {
+
+// /// typedefs
+
+// typedef typename image_impl<E>::D D;
+
+// typedef oln_type_of(D, size) size_type;
+// typedef oln_type_of(D, point) point_type;
+// typedef oln_type_of(D, value) value_type;
+
+// // delegations are "template methods" (Cf. the GOF's book)
+
+// const size_type& impl_size() const
+// {
+// const size_type& s = this->delegate().size();
+// this->exact().impl_size_extra(s);
+// return s;
+// }
+
+// unsigned long impl_npoints() const
+// {
+// unsigned long n = this->delegate().npoints();
+// this->exact().impl_npoints_extra(n);
+// return n;
+// }
+
+// bool impl_hold(const point_type& p) const
+// {
+// this->exact().impl_hold_extra(p);
+// return this->delegate().hold(p);
+// }
+
+// bool impl_hold_large(const point_type& p) const
+// {
+// this->exact().impl_hold_large_extra(p);
+// return this->delegate().hold_large(p);
+// }
+
+// value_box<const D> operator[](const point_type& p) const
+// {
+// precondition(this->hold_large(p));
+// return this->delegate().operator[](p);
+// }
+
+// value_box<D> operator[](const point_type& p)
+// {
+// precondition(this->hold_large(p));
+// return this->delegate().operator[](p);
+// }
+
+// const value_type impl_get(const point_type& p) const
+// {
+// this->exact().impl_get_extra(p);
+// return this->delegate().get(p);
+// }
+
+// // FIXME: patch
+
+// void impl_resize_border(size_t new_border, bool copy_border) const
+// {
+// this->delegate().impl_resize_border(new_border, copy_border);
+// }
+
+// // extra code; default is "do nothing"
+
+// void impl_size_extra(const size_type& s) const {}
+// void impl_npoints_extra(unsigned long n) const {}
- // delegations are "template methods" (Cf. the GOF's book)
-
- const size_type& impl_size() const
- {
- const size_type& s = this->delegate().size();
- this->exact().impl_size_extra(s);
- return s;
- }
+// void impl_hold_extra(const point_type& p) const {}
+// void impl_hold_large_extra(const point_type& p) const {}
- unsigned long impl_npoints() const
- {
- unsigned long n = this->delegate().npoints();
- this->exact().impl_npoints_extra(n);
- return n;
- }
-
- bool impl_hold(const point_type& p) const
- {
- this->exact().impl_hold_extra(p);
- return this->delegate().hold(p);
- }
-
- bool impl_hold_large(const point_type& p) const
- {
- this->exact().impl_hold_large_extra(p);
- return this->delegate().hold_large(p);
- }
-
- value_box<const D> operator[](const point_type& p) const
- {
- precondition(this->hold_large(p));
- return this->delegate().operator[](p);
- }
-
- value_box<D> operator[](const point_type& p)
- {
- precondition(this->hold_large(p));
- return this->delegate().operator[](p);
- }
-
- const value_type impl_get(const point_type& p) const
- {
- this->exact().impl_get_extra(p);
- return this->delegate().get(p);
- }
-
- // FIXME: patch
-
- void impl_resize_border(size_t new_border, bool copy_border) const
- {
- this->delegate().impl_resize_border(new_border, copy_border);
- }
-
- // extra code; default is "do nothing"
-
- void impl_size_extra(const size_type& s) const {}
- void impl_npoints_extra(unsigned long n) const {}
-
- void impl_hold_extra(const point_type& p) const {}
- void impl_hold_large_extra(const point_type& p) const {}
-
- void impl_get_extra(const point_type&) const {}
- };
+// void impl_get_extra(const point_type&) const {}
+// };
- } // end of namespace oln::abstract::internal
+// } // end of namespace oln::abstract::internal
+// --------------------------------------------------------------------
} // end of namespace oln::abstract
} // end of namespace oln
-# include <oln/core/abstract/piter.hh>
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// # include <oln/core/abstract/piter.hh>
+// --------------------------------------------------------------------
// this allows for browsing points in file
// where oln/core/abstract/image.hh is included
Index: oln/core/abstract/image_entry.hh
--- oln/core/abstract/image_entry.hh (revision 0)
+++ oln/core/abstract/image_entry.hh (working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
@@ -28,47 +28,49 @@
#ifndef OLENA_CORE_ABSTRACT_IMAGE_ENTRY_HH
# define OLENA_CORE_ABSTRACT_IMAGE_ENTRY_HH
-# include <oln/core/abstract/image_constness.hh>
-# include <oln/core/abstract/image_dimension.hh>
-# include <oln/core/abstract/image_neighbness.hh>
-# include <oln/core/abstract/image_typeness.hh>
-# include <oln/core/abstract/image_valuedness.hh>
-# include <oln/core/abstract/image_rawness.hh>
+# include <oln/core/abstract/image.hh>
+# include <stc/entry.hh>
-
-
-
-namespace oln {
-
- // fwd decl
- namespace abstract {
+namespace oln
+{
+ namespace abstract
+ {
+ // Forward declaration.
template <typename E> struct image_entry;
}
- // entry => no super type but a category
-
+ /// \brief Uplink.
+ ///
+ /// oln::abstract::image<E> is not the direct super type of
+ /// oln::abstract::image_entry<E>, however, it is declared as such
+ /// using set_super_type, to make the virtual type retrieval system
+ /// work.
template <typename E>
- struct set_category < abstract::image_entry<E> > { typedef category::image ret; };
-
+ struct set_super_type< abstract::image_entry<E> >
+ {
+ typedef abstract::image<E> ret;
+ };
- namespace abstract {
+ namespace abstract
+ {
template <typename E>
- struct image_entry :
- // intrusive:
- public oln_type_of_(E, image_constness) ::template instantiated_with<E>::ret,
- public oln_type_of_(E, image_dimension) ::template instantiated_with<E>::ret,
- public oln_type_of_(E, image_neighbness) ::template instantiated_with<E>::ret,
- public oln_type_of_(E, image_rawness) ::template instantiated_with<E>::ret,
- // ...
- public typeness::inheritance_switch<E>,
- public valuedness::inheritance_switch<E>
+ struct image_entry : public stc::entry<E>
{
protected:
image_entry() {}
};
- }
+ /// \brief Tags for abstractions.
+ /// Use them instead of hard-coded numbers.
+ enum abstraction_tags
+ {
+ dimension_tag = 1,
+ constness_tag
+ // ...
+ };
+
+ } // end of namespace oln::abstract
} // end of namespace oln
Index: oln/core/abstract/macros.hh
--- oln/core/abstract/macros.hh (revision 0)
+++ oln/core/abstract/macros.hh (revision 0)
@@ -0,0 +1,46 @@
+// Copyright (C) 2006 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef OLENA_CORE_ABSTRACT_MACROS_HH
+# define OLENA_CORE_ABSTRACT_MACROS_HH
+
+// FIXME: Perhaps only ``external'' versions are really useful (since
+// they are more precise), and we could get rid of other versions.
+// Likewise, we could drop the stc_typeof without namespace
+// information.
+
+/// \def Shortcuts for virtual types associated to images (version to
+// be used inside a template).
+# define oln_type_of(ImageType, Alias) \
+stc_typeof_in_namespace(oln, oln::category::image, ImageType, Alias)
+
+/// \def Shortcuts for virtual types associated to images (version to
+// be used outside a template).
+# define oln_type_of_(ImageType, Alias) \
+stc_typeof_in_namespace_(oln, oln::category::image, ImageType, Alias)
+
+#endif // ! OLENA_CORE_ABSTRACT_MACROS_HH
Index: oln/core/abstract/image_dimension.hh
--- oln/core/abstract/image_dimension.hh (revision 0)
+++ oln/core/abstract/image_dimension.hh (working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
@@ -88,4 +88,18 @@
} // end of namespace oln
+// Register the dimension switch for oln::abstract::image_entry.
+namespace stc
+{
+ template <typename E>
+ struct set_entry_node<E, oln::abstract::dimension_tag> :
+ // FIXME: Don't use the abstraction as a property, but the
+ // corresponding grid instead.
+ public oln_type_of_(E, image_dimension)
+ ::template instantiated_with<E>::ret
+ {
+ };
+}
+
+
#endif // ! OLENA_CORE_ABSTRACT_IMAGE_DIMENSION_HH
Index: oln/core/abstract/any.hh
--- oln/core/abstract/any.hh (revision 0)
+++ oln/core/abstract/any.hh (working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 EPITA Research and
+// Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -11,9 +12,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
@@ -39,9 +40,7 @@
template <typename E>
- struct any
- :
- public mlc::any<E, mlc::dispatch_policy::simple>
+ struct any : public mlc::any<E, mlc::dispatch_policy::simple>
{
protected:
typedef mlc::any<E, mlc::dispatch_policy::simple> super;
@@ -51,8 +50,7 @@
template <typename E>
- struct any_best_speed
- :
+ struct any_best_speed :
public mlc::any<E, mlc::dispatch_policy::best_speed>
{
protected:
@@ -66,7 +64,8 @@
} // end of namespace oln
-# define oln_is_any(Type) mlc::or_< mlc_is_a(Type, oln::abstract::any), \
+# define oln_is_any(Type) \
+ mlc::or_< mlc_is_a(Type, oln::abstract::any), \
mlc_is_a(Type, oln::abstract::any_best_speed) >
Index: oln/core/abstract/internal/image_impl.hh
--- oln/core/abstract/internal/image_impl.hh (revision 0)
+++ oln/core/abstract/internal/image_impl.hh (working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 EPITA Research and Development Laboratory
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -11,9 +11,9 @@
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
//
// As a special exception, you may use this file as part of a free
// software library without restriction. Specifically, if other files
@@ -28,47 +28,102 @@
#ifndef OLENA_CORE_ABSTRACT_INTERNAL_IMAGE_IMPL_HH
# define OLENA_CORE_ABSTRACT_INTERNAL_IMAGE_IMPL_HH
-# include <mlc/types.hh>
+# include <mlc/flags.hh>
+# include <oln/core/typedefs.hh>
# include <oln/core/abstract/any.hh>
+# include <oln/core/abstract/macros.hh>
+// FIXME: To be rewtitten using Metalic's switch/case?
-namespace oln {
+namespace oln
+{
+
+ /// Image category.
+ namespace category
+ {
+ struct image;
+ }
+
+ namespace abstract
+ {
+
+ namespace internal
+ {
- namespace abstract {
+ /* A summary of the implementation retrieval mechanism.
- namespace internal {
- // FIXME: doc!
+ any_best_speed<E> any_best_speed<E>
+ ^ ^
+ | |
+ |(*) |
+ | |
+ set_image_impl<A, E> |
+ ^ |
+ | |
+ get_image_impl_helper<A, D, E> get_image_impl_helper<A, mlc::no_type, E>
+ | |
+ `--------------. ,-----------------'
+ | |
+ o o
+ o
+ |
+ get_image_impl<E>
+ ^
+ |
+ image<E>
+ ^
+ |
+ ...
+ ^
+ |
+ E
+ (client)
+
+
+ The D parameter is the delegated type. If there is no
+ delegated type (i.e. D = mlc::none), get_image_impl inherits
+ from oln::any_best_speed (trough get_image_impl_helper);
+ otherwise, get_image_impl is plugged to set_image_impl, a
+ class than can specialized by the user.
+
+ (*) This relation is not mandatory (set_image_impl is to be
+ defined by the user), but it every specialization of
+ set_image_impl *should* inherit from oln::any_best_speed. */
template <typename A, typename D, typename E>
struct get_image_impl_helper;
- // entry point:
+ // Entry point.
template <typename A, typename E>
- struct get_image_impl : public get_image_impl_helper <A, oln_type_of(E, delegated), E>
+ struct get_image_impl :
+ public get_image_impl_helper <A, oln_type_of(E, delegated), E>
{
};
template <typename A, typename E>
- struct get_image_impl_helper <A, mlc::no_type, E>
- :
+ struct get_image_impl_helper <A, mlc::none, E> :
public virtual oln::abstract::any_best_speed<E>
{
- // no impl
+ // No implementation.
};
+ // To be specialized.
template <typename A, typename E>
- struct set_image_impl; // to be specialized...
+ struct set_image_impl;
template <typename A, typename D, typename E>
struct get_image_impl_helper : public set_image_impl <A, E>
{
- // impl comes from internal::set_image_impl <A, E>
+ // Implementation comes from internal::set_image_impl<A, E>.
};
+ /// \brief Abstraction factorization for the delegation mechanism.
+ ///
+ /// set_image_impl specializations should inherit from this
+ /// class (as a public virtual derivation).
template <typename E>
- struct image_impl
- :
+ struct image_impl :
public virtual oln::abstract::any_best_speed<E>
{
typedef oln_type_of(E, delegated) D;
@@ -76,9 +131,9 @@
const D& delegate() const { return this->exact().impl_delegate(); }
};
- } // end of namespace internal
+ } // end of namespace oln::abstract::internal
- } // end of namespace abstract
+ } // end of namespace oln::abstract
} // end of namespace oln
Index: oln/Makefile.am
--- oln/Makefile.am (revision 0)
+++ oln/Makefile.am (revision 0)
@@ -0,0 +1,13 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+olndir = $(includedir)/oln
+nobase_oln_HEADERS = \
+ core/typedefs.hh \
+ \
+ core/abstract/any.hh \
+ core/abstract/image.hh \
+ core/abstract/image_entry.hh \
+ core/abstract/image_dimension.hh \
+ core/abstract/macros.hh \
+ \
+ core/abstract/internal/image_impl.hh
Index: Makefile.am
--- Makefile.am (revision 0)
+++ Makefile.am (revision 0)
@@ -0,0 +1,3 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+SUBDIRS = oln tests
https://svn.lrde.epita.fr/svn/oln/trunk/static
Index: ChangeLog
from Roland Levillain <roland(a)lrde.epita.fr>
Add an abstraction manipulator.
* stc/properties.hh (std::is_a): New helper.
(stc_super, stc_pseudosuper, stc_typeof): Simplify the definitions
of these macros, using their ``underscored'' version.
(stc_typeof_in_namespace, stc_typeof_in_namespace_): New macro.
* tests/properties.cc: Typos in comments.
stc/properties.hh | 54 +++++++++++++++++++++++++++++++++++++++++++---------
tests/properties.cc | 4 +--
2 files changed, 47 insertions(+), 11 deletions(-)
Index: tests/properties.cc
--- tests/properties.cc (revision 460)
+++ tests/properties.cc (working copy)
@@ -76,7 +76,7 @@
// Forward declaration.
struct B;
- // Warning, this sugar might me remove from properties.hh.
+ // Warning, this sugar might be removed in the future.
stc_set_super(B, A);
/// Types associated to my::B.
@@ -122,7 +122,7 @@
// from B's vtypes (see the specialization
// types<category::my_cat, C>).
- // Warning, this sugar might me remove from properties.hh.
+ // Warning, this sugar might be removed in the future.
/// Link to B (``pseudo'' inheritance).
stc_set_pseudosuper(C, B);
Index: stc/properties.hh
--- stc/properties.hh (revision 460)
+++ stc/properties.hh (working copy)
@@ -345,6 +345,26 @@
struct e_n_d__w_i_t_h__s_e_m_i_c_o_l_o_n
+/*---------------------.
+| Abstraction helper. |
+`---------------------*/
+
+namespace stc
+{
+ /// Allow the manipulation of an abstraction (i.e., a template type)
+ /// as a plain type.
+ template <template <typename> class abstraction>
+ struct is_a
+ {
+ template <typename E>
+ struct instantiated_with
+ {
+ typedef abstraction<E> ret;
+ };
+ };
+}
+
+
/*---------.
| Macros. |
`---------*/
@@ -373,29 +393,45 @@
typedef PseudoSuper ret; \
}
-/// \def Get the immediate base class of T (version with typename).
+/// \def Get the immediate base class of T (version to be used inside
+/// a template).
# define stc_super(T) \
- typename set_super_type<T>::ret
+ typename stc_super_(T)
-/// \def Get the immediate base class of T (version without typename).
+/// \def Get the immediate base class of T (version to be used outside
+/// a template).
# define stc_super_(T) \
set_super_type<T>::ret
-/// \def Get the pseudosuper class of T (version with typename).
+/// \def Get the pseudosuper class of T (version to be used inside a
+/// template).
# define stc_pseudosuper(T) \
- typename set_pseudosuper_type<T>::ret
+ typename stc_pseudosuper_(T)
-/// \def Get the pseudosuper class of T (version without typename).
+/// \def Get the pseudosuper class of T (version to be used outside a
+/// template).
# define stc_pseudosuper_(T) \
set_pseudosuper_type<T>::ret
-/// Get the property \a Typedef from \a FromType (version with typename).
+/// Get the property \a Typedef from \a FromType (version to be used
+/// inside a template).
#define stc_typeof(Category, FromType, Typedef) \
- typename typeof_<Category, FromType, typedef_:: Typedef##_type >::ret
+ typename stc_typeof_(Category, FromType, Typedef)
-/// Get the property \a Typedef from \a FromType (version without typename).
+/// Get the property \a Typedef from \a FromType (version to be used
+/// outside a template).
#define stc_typeof_(Category, FromType, Typedef) \
typeof_<Category, FromType, typedef_:: Typedef##_type >::ret
+/// Get the property \a Typedef, declared in \a Namespace, from \a
+/// FromType (version to be used inside a template).
+#define stc_typeof_in_namespace(Namespace, Category, FromType, Typedef) \
+ typename stc_typeof_in_namespace_(Namespace, Category, FromType, Typedef)
+
+/// Get the property \a Typedef, declared in \a Namespace, from \a
+/// FromType (version to be used outside a template).
+#define stc_typeof_in_namespace_(Namespace, Category, FromType, Typedef) \
+ Namespace::typeof_<Category, FromType, \
+ Namespace::typedef_:: Typedef##_type >::ret
#endif // ! STATIC_PROPERTIES_HH