Subject: [boost] Conversion/Enums/Opaque request for interest
From: Vicente BOTET (vicente.botet_at_[hidden])
Date: 2011-04-16 07:43:02
Lastly I've been working on 3 Boost libraries proposals.
* Boost.Conversion (https://svn.boost.org/svn/boost/sandbox/conversion/libs/conversion_ext/doc/html/index.html),
* Boost.Enums (https://svn.boost.org/svn/boost/sandbox/enums/libs/enums/doc/html/index.html)
* Boost.Opaque (https://svn.boost.org/svn/boost/sandbox/opaque/libs/opaque/doc/html/index.html)
Boost.Conversion manages with generic explicit conversion between unrelated types. The template function convert_to allows to convert a source type to a target type, using argument dependent lookup (ADL) to select a specialized convert_to function if available. If no specialized convert_to function is available, boost::conversion::convert_to is used.
Boost.Enums intends to provide a partial solution to the scoped enums problem ensuring a portable solution compatible with compilers supporting natively scoped enums or not. In addition provides a framework to view enumerations as ordinal types so we can define some specific and efficient enum containers. Boost.Enums is composed of the following parts:
* Scoped enums
* Ordinal enums
* Enum containers
* MPL enums
* String <-> Enum conversions
Boost.Opaque intends to provide a library partial solution to "opaque typedefs". Boost.Opaque provides:
* a generic mixin class hierarchy which can be specialized by the user to make new opaque classes.
* a generic class hierarchy which can be instantiated by the user to make new opaque typedefs.
* a meta-mixin concept that allows to compose in a easy way several aspects of a class in an orthogonal way.
* a considerable number of meta-mixins that helps defining new types from an underlying type
* Some helper macros that can reduce the declaration of a new opaque type to a single line, emulating the language-based approach.
Boost.Opaque and Boost.Enums depend in some degree on Boost.Conversion.
These are quite basic libraries that any of you could find useful (or not) and that are not associated to a complex domain, so any of you could have an opinion without spending too much time.
Please follow the above links to have a better idea of the motivation of these libraries.
Before continuing completing the design, docs and tests of these libraries I would like to know if there is an interest on these libraries and if you have any suggestion on how to improve them, you see something missing or that should be removed. This will help me a lot to concentrate my efforts on the library that reveals more interest.
Any comment will really be appreciated.