Пример #1
0
    TypeInfo CreateTypeInfo(char const* typeName)
    {
        TypeInfo newInfo = TypeManager::GetInst().CreateTypeInfo();

        newInfo.SetSize(sizeof(T));
        newInfo.SetName(typeName);

        newInfo.SetReferenceType( !boost::is_pointer<T>::value ?
                                  newInfo.GetId()	:
                                  StaticTypeInfo< typename boost::remove_pointer<
                                  typename boost::remove_pointer<T>::type>::type >::GetTypeId() );

        for_each_type< BaseTypes >( AddBase<T> (newInfo) );

        newInfo.SetCreationFunctions(&Alloc::create, &Alloc::clone, &Alloc::destruct, &Alloc::destroy );

        newInfo.SetVariables( MemberVariableList<T>::GetVariablePtrs() );

        return newInfo;
    }