2005-09-14 Thierry GERAUD <theo(a)lrde.epita.fr>
Add general inheritance for oln objects and new
overloading mechanism for operators.
* oln/core/abstract/any.hh: New file.
Abstract type for every oln objects.
* oln/core/gen/cst.hh: New file.
oln::cst<T> is the type for literals in oln.
* oln/ops/overload.hh: New file.
Make mlc overload mechanism relies on overload declarations
within oln.
* oln/funobj/logic.hh: Remove obsolete file.
Replace by mlc/flogic.hh.
* oln/funobj/cmp.hh: Remove obsolete file.
Replace by mlc/fcmp.hh.
* oln/makefile.src (OLN_DEP): Update.
* oln/funobj/infsup.hh (oln/funobj/logic.hh): Comment useless
include.
* oln/core/typedefs.hh (exact_type): New typedef decl.
* oln/core/abstract/image.hh: Update.
* oln/core/abstract/piter.hh (mlc/any.hh): Remove useless include.
* oln/core/abstract/grid.hh: Update inheritance.
* oln/core/abstract/point.hh: Likewise.
* oln/core/abstract/data_storage.hh: Likewise.
* oln/core/abstract/dpoint.hh: Likewise.
* oln/core/abstract/iter.hh: Likewise.
* oln/core/abstract/neighborhood.hh: Likewise.
* oln/core/abstract/window.hh: Likewise.
* oln/core/abstract/size.hh: Likewise.
* oln/core/abstract/internal/image_impl.hh: Likewise.
* oln/core/coord.hh: Likewise.
(operators): Change to regular writting.
* oln/core/2d/dpoint2d.hh: Likewise.
* oln/core/2d/point2d.hh: Likewise.
* oln/core/2d/size2d.hh (operator_eq): Remove.
* oln/core/3d/image3d.hh (mlc/traits.hh): Remove include.
* oln/core/pw/binary_op.hh: Update to conform to mlc/afun.hh.
(oln/funobj/abstract/binary.hh): Remove obsolete include.
(binary_op): New ctor with a fun as 1st arg.
(decl_overload): New overloads for mlc::abstract::meta_*_function
when args are pw::abstract::functions and abstract::images.
* oln/core/pw/unary_op.hh: Likewise.
* oln/core/pw/image.hh (image_from_pwf): Rename class as image.
(image_for_all_p): Rename as pw_image.
* oln/core/pw/check.hh: Update.
(pw_check): New facade procedure.
* oln/core/pw/abstract/function.hh: Update inheritance.
* oln/core/pw/apply.hh: Add fixme.
* oln/core/pw/macros.hh: Remove contents.
Macros are split in the three following files.
* oln/core/pw/arith.hh: Rewrite.
* oln/core/pw/logic.hh: Rewrite.
* oln/core/pw/cmp.hh: Rewrite.
* oln/utils/overload.hh: Remove contents.
Former contents has been split in
oln/ops/{overload,arith,logic,cmp}.hh.
* oln/ops/macro.hh: Likewise.
* oln/ops/arith.hh: Rewrite.
* oln/ops/logic.hh: Rewrite.
* oln/ops/cmp.hh: Rewrite.
* oln/basics.hh: Update include.
* oln/morpho/local.hh: Likewise.
* oln/level/arith.hh: Update.
Show replies by date