// Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors. // All rights reserved. // Code licensed under the BSD License. // http://www.anki3d.org/LICENSE /// @file It contains forward declarations of util classes. #pragma once #include namespace anki { class DefaultMemoryPool; template class SingletonMemoryPoolWrapper; template class BitSet; template class BitMask; template class HashMap; template class DefaultHasher; class HashMapSparseArrayConfig; template class Hierarchy; template class List; template class SparseArray; class BlockArrayDefaultConfig; template class BlockArray; class CString; template class BaseString; template class BaseStringList; class ThreadHive; class ThreadJobManager; template, PtrSize kPreallocatedStorage = ANKI_SAFE_ALIGNMENT> class Function; template class Array; template class WeakArray; template class ConstWeakArray; template class DynamicArray; class F16; template class XmlDocument; /// This macro defines typedefs for all the common containers that take a memory pool using a singleton memory pool /// memory pool. #define ANKI_DEFINE_SUBMODULE_UTIL_CONTAINERS(submoduleName, singletonMemoryPool) \ using submoduleName##MemPoolWrapper = SingletonMemoryPoolWrapper; \ using submoduleName##String = BaseString; \ template \ using submoduleName##DynamicArray = DynamicArray; \ template \ using submoduleName##DynamicArrayLarge = DynamicArray; \ template> \ using submoduleName##HashMap = HashMap; \ template \ using submoduleName##List = List; \ using submoduleName##StringList = BaseStringList; \ using submoduleName##XmlDocument = XmlDocument; \ template \ using submoduleName##Hierarchy = Hierarchy; \ template \ using submoduleName##BlockArray = BlockArray; } // end namespace anki