refactor: refactor project
- rename LIBCMO_DISABLE_COPY_MOVE -> YYCC_DEL_CLS_COPY_MOVE and LIBCMO_DEFAULT_COPY_MOVE -> YYCC_DEF_CLS_COPY_MOVE. - fix Vector declaration generator. throw exception when operator[] face invalid index, instead of do fallback. - rename VTAll.hpp -> VTInternal.hpp and VYUserAll -> VTAll.hpp for easy to understand. - fix project name error in Doxygen template. - replace all LIBCMO_OS_WIN32 to YYCC_OS == YYCC_OS_WINDOWS. - fix some compile error (involving utf8 encoding) but not the final result. - use correct way to include std-image library (use <> instead of "") - finish documentation for VTUtils.hpp and VTEncoding.hpp.
This commit is contained in:
		
							
								
								
									
										59
									
								
								LibCmo/VTInternal.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								LibCmo/VTInternal.hpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,59 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \file
 | 
			
		||||
 * The top header file for LibCom self development.
 | 
			
		||||
 * Every C++ header or source file located in this project should include this first 
 | 
			
		||||
 * except the headers including this file.
 | 
			
		||||
 * The header files included by this header should be carefully managed,
 | 
			
		||||
 * to make sure there are no include loop and each header files can works correctly.
 | 
			
		||||
 * 
 | 
			
		||||
 * This header should only be used as internal header file.
 | 
			
		||||
 * It only contains all necessary stuff used by this project self.
 | 
			
		||||
 * Any other program linked to this library should not include this header file directly.
 | 
			
		||||
 * The best way to include this library is include VTAll.hpp which include this header file at the first position.
 | 
			
		||||
 * 
 | 
			
		||||
 * All \c VT started files are not a part of Virtools SDK. They just assist Virtools SDK. 
 | 
			
		||||
 * So they will use native type, not CK type for declaration and implementation.
 | 
			
		||||
 * Take VTEncoding.hpp for example, All string used in it is \c std::u8string, not LibCmo::XContainer::XString.
 | 
			
		||||
 * The file starts with \c CK, \c Vx, and \c X is a part of Virtools SDK.
 | 
			
		||||
 * They should use Virtools type anywhere, except that Virtools type can not fulfill their requirement.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// The base header of LibCmo.
 | 
			
		||||
// It provides various convenient stuff, for example:
 | 
			
		||||
// - General LibCmo specific custom exception.
 | 
			
		||||
// - Enum Helper for convenient C++ enum class type logic operations.
 | 
			
		||||
#include "VTUtils.hpp"
 | 
			
		||||
// Platform independent encoding system.
 | 
			
		||||
// Use native Win32 functions in Windows,
 | 
			
		||||
// or Iconv in non-Windows to provide encoding convertion services.
 | 
			
		||||
#include "VTEncoding.hpp"
 | 
			
		||||
 | 
			
		||||
// Include CK2 types first.
 | 
			
		||||
// Because it also include some types or structs used by other module.
 | 
			
		||||
#include "CK2/CKTypes.hpp"
 | 
			
		||||
// Then include all XContainer types.
 | 
			
		||||
#include "XContainer/XTypes.hpp"
 | 
			
		||||
// Then include all VxMath types.
 | 
			
		||||
#include "VxMath/VxTypes.hpp"
 | 
			
		||||
// Now all basic types are included.
 | 
			
		||||
 | 
			
		||||
// Include CKGlobals which including various essential functions
 | 
			
		||||
#include "CK2/CKGlobals.hpp"
 | 
			
		||||
// Then load VxMath functions
 | 
			
		||||
#include "VxMath/VxMath.hpp"
 | 
			
		||||
// OK, all essential functions loaded.
 | 
			
		||||
 | 
			
		||||
// Load various enums, constant values
 | 
			
		||||
// Load CK2 Enums and CKStateChunk Identifier.
 | 
			
		||||
#include "CK2/CKEnums.hpp"
 | 
			
		||||
#include "CK2/CKIdentifiers.hpp"
 | 
			
		||||
// Load VxMath Enums
 | 
			
		||||
#include "VxMath/VxEnums.hpp"
 | 
			
		||||
 | 
			
		||||
// Last, load some custom struct used in program.
 | 
			
		||||
#include "CK2/CKDefines.hpp"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user