#include <boost/type_index.hpp>
#include <boost/unordered/unordered_set.hpp>
#include <boost/core/lightweight_test.hpp>
#ifdef assert
# undef assert
#endif
#define assert(X) BOOST_TEST(X)
int main() {
boost::unordered_set<boost::typeindex::type_index> types;
types.insert(boost::typeindex::type_id<int>());
types.insert(boost::typeindex::type_id<float>());
assert(types.size() == 2);
bool is_inserted = types.insert(boost::typeindex::type_id<const int>()).second;
assert(!is_inserted);
assert(types.erase(boost::typeindex::type_id<float&>()) == 1);
assert(*types.begin() == boost::typeindex::type_id<int>());
return boost::report_errors();
}