News

Version 2015-04-02 available

Added by Bruno BACHELET over 5 years ago

Download full source code

Major changes:
- An observer is now mandatory to call function gnx_matches.
- Macro gnx_freeze_obs is added to avoid a "partial specialization after instantiation" error.

Version 2015-02-27 available

Added by Bruno BACHELET over 5 years ago

Download full source code

This version uses some new features of C++11, but is still operational in C++03.

Major changes:
- Macro gnx_cpp11 is added to detect C++11.
- Macro gnx_remove_ref is added to remove the reference aspect of a type.
- Macro gnx_remove_const is added to remove the constant aspect of a type.
- Macro gnx_base_type is added to get the "base" of a type (i.e. without reference and constant aspects).
- Function gnx_forward is added to allow "perfect forwarding" (C++11 only).
- Helper functions are added to get rid of the "typename" syntax: gnx_base_type_t, gnx_enable_if_t, gnx_if_t, gnx_remove_const_t, gnx_remove_ref_t (C++11 only).
- Macro gnx_index_concept is variadic when C++11 is detected, which allows getting rid of the "comma" problem.
- Macros gnx_declare_[or|and|not]_concept are renamed gnx_index_[or|and|not]_concept.
- Macro gnx_best_concept is modified to consider the "base" of a type instead of the type directly.
- Helper function gnx_best_concept_t is added, which makes macro gnx_best_concept obsolete (C++11 only).
- Function gnx_matches is added to ease the test whether a type (or a concept) matches a concept or is the same as another type (C++11 only).
- Function gnx_add_models is added to ease the declaration of a modeling (or refinement) relationship between a type (or a concept) and a concept (C++11 only).
- Function gnx_add_uses is added to ease the association of a concept with a context (C++11 only).

Version 2014-03-14 available

Added by Bruno BACHELET over 6 years ago

Download full source code

Major changes:
- Macro gnx_index_concept is modified to correct a "partial specialization after instantiation" warning.

Version 2012-04-16 available

Added by Bruno BACHELET over 8 years ago

Download full source code

Major changes:
- Support for logical operations on concepts.
- An example is added to illustrate the new possibilities.

Version 2012-04-11 available

Added by Bruno BACHELET over 8 years ago

Download full source code

Major changes:
- Macro gnx_index_concept is added to enable indexing an existing type as a concept.
- Useless declarations are removed from the optimized version.

Version 2012-02-27 available

Added by Bruno BACHELET over 8 years ago

Download full source code

Major changes:
- Now the library has a name: C4TS++.
- The file structure is reorganized.
- For performance analysis, a generator of random instances is added.

Version 2011-08-25 available

Added by Bruno BACHELET about 9 years ago

Download full source code

Major changes:
- Macro gnx_declare_ns_concept is added to easily declare a concept inside a namespace.
- Macro gnx_best_concept is corrected.
- Metafunction gnx_enable_if is added to allow SFINAE (equivalent to enable_if in Boost).

Version 2010-12-07 available

Added by Bruno BACHELET almost 10 years ago

(1-8/8)

Also available in: Atom