9 #ifndef stk_util_util_CSet_hpp 10 #define stk_util_util_CSet_hpp 55 template<
class T>
const T *
get()
const ;
70 template<
class T>
bool remove(
const T * );
79 typedef void (*DeleteFunction)(
void *);
81 typedef std::pair< const std::type_info * , DeleteFunction > Manager ;
83 const void * p_get(
const std::type_info & )
const ;
85 const void * p_insert(
const Manager & ,
const void * );
87 bool p_remove(
const std::type_info & ,
const void * );
89 std::vector< Manager > m_manager ;
90 std::vector< const void * > m_value ;
102 #ifndef DOXYGEN_COMPILE 108 void cset_member_delete(
void * v ) {
delete reinterpret_cast<T*
>( v ); }
114 {
return (
const T*) p_get(
typeid(T) ); }
121 m.first = &
typeid(T);
122 m.second = & cset_member_delete<T> ;
124 return (
const T *) p_insert( m , arg_value );
132 m.first = &
typeid(T);
135 return (
const T *) p_insert( m , arg_value );
141 {
return p_remove(
typeid(T) , arg_value ); }
147 #endif // stk_util_util_CSet_hpp const T * insert_no_delete(const T *)
const T * insert_with_delete(const T *)
Set of entities of arbitrary types.