bool operator()(const std::type_info& x, const std::type_info& y) { return x.before(y) != 0; }
inline bool type_detail::operator<(type_detail const& rhs) const { return base_type_->before(*rhs.base_type_)!=0; }
inline bool TypeInfo::before(const TypeInfo& rhs) const { assert(pInfo_); // type_info::before return type is int in some VC libraries return pInfo_->before(*rhs.pInfo_) != 0; }
inline bool TypeInfo::before(const TypeInfo& rhs) const{ return pInfo_->before(*rhs.pInfo_); }
static bool apply(const std::type_info& lhs, const std::type_info& rhs) { return lhs.before(rhs) != 0; }
bool operator<( typeinfo const & b ) const { return 0!=(type->before(*b.type)); }
inline bool TypeIndex::operator <(const TypeIndex& typeIndex) const { return m_typeInfo->before(*typeIndex.m_typeInfo); }