
2012/5/31 Daniel Larimer <dlarimer@gmail.com>:
Yes there is interest. I would like to disable RTTI but cannot because of boost::any and boost::function.
Yeep. Thats why I started that.
This almost gets into some basic level of reflection. The ability to query 'parts' of the name may be useful... such as get_template_info<std::string>().namespace() => "std"
Interesting feature, but I won`t implement it right now.
Given the basic functionality you describe, it would probably only involve some extra 'one-time init' name parsing if there isn't a simpler method.
For raw_name() it has no extra 'one-time init' name parsing. For demangled name it require std::string construction. For comparisons it require std::strcmp on PART of the BOOST_CURRENT_FUNCTION name. hash_value() is counted on a PART of the BOOST_CURRENT_FUNCTION.
A key requirement would be that the same strings be generated on all compilers such that types can be compared for RPC purposes.
This looks currently impossible: MSVC will produce 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' GCC will produce 'std::basic_string<char>'
Even without my suggested additions, I think this would be a worthy move.
Dan
Thanks. I`ll clean up the code, add documentation and tests and commit it at this or next week to sandbox or github. -- Best regards, Antony Polukhin