
2006-10-09 Thierry GERAUD <theo@tegucigalpa.lrde.epita.fr> Change stc_virtual_typedef into oln_virtual_typedef. * oln/core/macros.hh (oln_virtual_typedef): New macro. It replaces stc_virtual_typedef. * oln/core/abstract/image.hh: Update. * oln/core/abstract/image/mutability/hierarchy.hh: Update. * oln/core/abstract/image/neighborhood/hierarchy.hh: Update. * oln/core/abstract/image/bbox/hierarchy.hh: Update. * oln/core/abstract/point_set.hh: Update. * oln/core/abstract/neighborhood.hh: Update. * oln/core/abstract/topology.hh: Update. Index: oln/core/macros.hh =================================================================== --- oln/core/macros.hh (revision 610) +++ oln/core/macros.hh (working copy) @@ -135,4 +135,12 @@ stc_check_direct_type_of_(oln, void, OlnType, Alias) + +/// Declare the vtype \a Typedef in an abstract class (see sample code +/// for details). Warning: this macro assumes that the exact type +/// parameter is named 'E'. +#define oln_virtual_typedef(Typedef) \ + typedef stc_check_direct_type_of(oln, void, E, Typedef) Typedef + + #endif // ! OLN_CORE_MACROS_HH Index: oln/core/abstract/image.hh =================================================================== --- oln/core/abstract/image.hh (revision 610) +++ oln/core/abstract/image.hh (working copy) @@ -63,22 +63,22 @@ struct decl { -// stc_virtual_typedef(topo); -// stc_virtual_typedef(grid); +// oln_virtual_typedef(topo); +// oln_virtual_typedef(grid); -// stc_virtual_typedef(psite); -// stc_virtual_typedef(point); +// oln_virtual_typedef(psite); +// oln_virtual_typedef(point); -// // stc_virtual_typedef(piter); -// // stc_virtual_typedef(fwd_piter); -// // stc_virtual_typedef(bkd_piter); +// // oln_virtual_typedef(piter); +// // oln_virtual_typedef(fwd_piter); +// // oln_virtual_typedef(bkd_piter); -// stc_virtual_typedef(value); -// stc_virtual_typedef(rvalue); +// oln_virtual_typedef(value); +// oln_virtual_typedef(rvalue); -// stc_virtual_typedef(concrete); +// oln_virtual_typedef(concrete); -// stc_virtual_typedef(morpher); +// oln_virtual_typedef(morpher); decl(); }; Index: oln/core/abstract/image/mutability/hierarchy.hh =================================================================== --- oln/core/abstract/image/mutability/hierarchy.hh (revision 610) +++ oln/core/abstract/image/mutability/hierarchy.hh (working copy) @@ -58,7 +58,7 @@ struct decl { - stc_virtual_typedef(lvalue); + oln_virtual_typedef(lvalue); }; /*! \brief Gives writable access to the value stored at \a p in Index: oln/core/abstract/image/neighborhood/hierarchy.hh =================================================================== --- oln/core/abstract/image/neighborhood/hierarchy.hh (revision 610) +++ oln/core/abstract/image/neighborhood/hierarchy.hh (working copy) @@ -65,9 +65,9 @@ public: struct decl { - // stc_virtual_typedef(niter); - stc_virtual_typedef(fwd_niter); - stc_virtual_typedef(bkd_niter); + // oln_virtual_typedef(niter); + oln_virtual_typedef(fwd_niter); + oln_virtual_typedef(bkd_niter); }; const neighborhood_t& neighborhood() const; Index: oln/core/abstract/image/bbox/hierarchy.hh =================================================================== --- oln/core/abstract/image/bbox/hierarchy.hh (revision 610) +++ oln/core/abstract/image/bbox/hierarchy.hh (working copy) @@ -57,7 +57,7 @@ struct decl { - stc_virtual_typedef(bbox); + oln_virtual_typedef(bbox); decl(); }; Index: oln/core/abstract/point_set.hh =================================================================== --- oln/core/abstract/point_set.hh (revision 610) +++ oln/core/abstract/point_set.hh (working copy) @@ -49,21 +49,21 @@ struct decl { - stc_virtual_typedef(point); + oln_virtual_typedef(point); - stc_virtual_typedef(piter); - stc_virtual_typedef(fwd_piter); - stc_virtual_typedef(bkd_piter); + oln_virtual_typedef(piter); + oln_virtual_typedef(fwd_piter); + oln_virtual_typedef(bkd_piter); - stc_virtual_typedef(bbox); // provides .bbox() - stc_virtual_typedef(is_random_accessible); // provides .has(p) - stc_virtual_typedef(has_known_size); // provides .npoints() - stc_virtual_typedef(is_connected); // provides, e.g., .nrows() + oln_virtual_typedef(bbox); // provides .bbox() + oln_virtual_typedef(is_random_accessible); // provides .has(p) + oln_virtual_typedef(has_known_size); // provides .npoints() + oln_virtual_typedef(is_connected); // provides, e.g., .nrows() // derived from point: - stc_virtual_typedef(coord); - stc_virtual_typedef(grid); - stc_virtual_typedef(dim); + oln_virtual_typedef(coord); + oln_virtual_typedef(grid); + oln_virtual_typedef(dim); decl(); }; Index: oln/core/abstract/neighborhood.hh =================================================================== --- oln/core/abstract/neighborhood.hh (revision 610) +++ oln/core/abstract/neighborhood.hh (working copy) @@ -49,7 +49,7 @@ struct decl { - stc_virtual_typedef(grid); + oln_virtual_typedef(grid); decl(); }; Index: oln/core/abstract/topology.hh =================================================================== --- oln/core/abstract/topology.hh (revision 610) +++ oln/core/abstract/topology.hh (working copy) @@ -48,16 +48,16 @@ struct decl { - stc_virtual_typedef(bbox); + oln_virtual_typedef(bbox); // for being bboxed; provides .bbox() - stc_virtual_typedef(is_random_accessible); + oln_virtual_typedef(is_random_accessible); // provides .has(p) and .has_large(p) - stc_virtual_typedef(point); - stc_virtual_typedef(neighborhood); + oln_virtual_typedef(point); + oln_virtual_typedef(neighborhood); - stc_virtual_typedef(morpher); + oln_virtual_typedef(morpher); decl(); };