$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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/