PixelLightAPI
.
|
00001 /*********************************************************\ 00002 * File: Type.h * 00003 * 00004 * Copyright (C) 2002-2012 The PixelLight Team (http://www.pixellight.org/) 00005 * 00006 * This file is part of PixelLight. 00007 * 00008 * PixelLight is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as published by 00010 * the Free Software Foundation, either version 3 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * PixelLight is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public License 00019 * along with PixelLight. If not, see <http://www.gnu.org/licenses/>. 00020 \*********************************************************/ 00021 00022 00023 #ifndef __PLCORE_TYPE_H__ 00024 #define __PLCORE_TYPE_H__ 00025 #pragma once 00026 00027 00028 //[-------------------------------------------------------] 00029 //[ Includes ] 00030 //[-------------------------------------------------------] 00031 #include "PLCore/PLCoreDefinitions.h" 00032 #include "PLCore/String/Tokenizer.h" 00033 #include "PLCore/Base/Tools/TypeTraits.h" 00034 #include "PLCore/Base/Var/DynVar.h" 00035 #include "PLCore/Base/Type/EnumType.h" 00036 #include "PLCore/Base/TypeInfo/TypeInfo.h" 00037 00038 00039 //[-------------------------------------------------------] 00040 //[ Namespace ] 00041 //[-------------------------------------------------------] 00042 namespace PLCore { 00043 00044 00045 //[-------------------------------------------------------] 00046 //[ Classes ] 00047 //[-------------------------------------------------------] 00048 /** 00049 * @brief 00050 * Generic type wrapper 00051 */ 00052 template <typename T> 00053 class Type : public Type< typename CheckType<T>::Type > { 00054 }; 00055 00056 00057 //[-------------------------------------------------------] 00058 //[ Include type implementations ] 00059 //[-------------------------------------------------------] 00060 #include "TypeInvalid.inl" 00061 #include "TypeNull.inl" 00062 #include "TypeVoid.inl" 00063 #include "TypeBool.inl" 00064 //#include "TypeInt.inl" // Should be the same as int32 00065 #include "TypeInt8.inl" 00066 #include "TypeInt16.inl" 00067 #include "TypeInt32.inl" 00068 #include "TypeInt64.inl" 00069 #include "TypeUInt8.inl" 00070 #include "TypeUInt16.inl" 00071 #include "TypeUInt32.inl" 00072 #include "TypeUInt64.inl" 00073 #include "TypeFloat.inl" 00074 #include "TypeDouble.inl" 00075 #include "TypeString.inl" 00076 #include "TypeEnumPlain.inl" 00077 #include "TypeEnum.inl" 00078 #include "TypeFlag.inl" 00079 #include "TypePtr.inl" 00080 #include "TypeRef.inl" 00081 #include "TypeObjectPtr.inl" 00082 00083 00084 //[-------------------------------------------------------] 00085 //[ Namespace ] 00086 //[-------------------------------------------------------] 00087 } // PLCore 00088 00089 00090 #endif // __PLCORE_TYPE_H__
|