|
Boost : |
Subject: [boost] [TypeIndex] Peer review period for library acceptance begins, ending Thurs 21st Nov
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2013-11-12 14:34:27
Boost community feedback is requested for the formal peer review of
the TypeIndex library by Antony Polukhin. Feedback requested
includes:
1. Should this library be accepted into Boost?
2. Any conditions which should be attached to acceptance into Boost
e.g. fixes, additional testing, changes to documentation. Please be
as specific as possible here (bullet points are good!)
Peer review ends on Thursday 21st Nov, ten days from today. Based on
your feedback, at that point I will decide if I recommend TypeIndex
for inclusion in my report to the review wizards. Comments can be
posted to boost_at_[hidden] if you expect others to comment on
your post, or to me privately if you wish your comment to not be made
public.
What is Boost.TypeIndex?
TypeIndex performs three main functions:
1. It provides a consistent, well defined, portable boost::typeid()
implementation with a consistent, well defined, portable
boost::type_info class implementation which mirrors std::type_info.
Implementation-specific weirdnesses (e.g. std::type_info::raw_name(),
the fact the hash_code is often terrible and collides frequently) are
abstracted out into a single, portable API.
2. It provides the ability to convert a type into a uniquely
identifiable, container indexable, boost::type_info instance (e.g.
&typeid(T) or C++11 class std::type_index) with RTTI disabled,
thereby removing the need for requiring RTTI enabled for many
type_info use cases. Any features which require RTTI are very clearly
denominated in the API's name.
3. It allows the following Boost libraries to eliminate their
dependency on RTTI which is a big win for embedded systems use, and
it supplies patches for these libraries replacing RTTI std::type_info
with boost::type_info. Feedback from the maintainers and users of
these Boost libraries is *particularly* welcomed:
Any, Graph, Property Map, Property Tree, Test, Variant, Xpressive
I believe that TypeIndex meets the Boost library requirements at
http://www.boost.org/development/requirements.html, and I have
personally verified that it builds and passes all unit tests on GCC
4.6, clang 3.0 and MSVCs 10-12 [1]. I should add that Antony has
already done three rounds of changes according to my feedback, and my
thanks to him for being so dilligent and responsive.
NOTE: Please read the TypeIndex documentation (linked to below)
before asking any questions e.g. about potential code bloat etc.
You'll probably find the answer already there.
Source code: https://github.com/apolukhin/type_index/zipball/master
Github: https://github.com/apolukhin/type_index
Documentation: http://apolukhin.github.com/type_index/index.html
Any questions about topics not in the documentation? Please do ask.
[1]: A single unit test currently always is reported as failing to
link correctly on MSVC. Antony believes this to be a bug in Windows
bjam, as the Jamfile marks the link as expected to fail using
link-fail but bjam does not respect this on Windows in this one use
case scenario (yet weirdly the other expected link failures work
fine!).
Niall
-- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk