mirror of
https://github.com/ETLCPP/etl.git
synced 2026-11-09 14:49:53 +08:00
Merge remote-tracking branch 'origin/feature/variant_pool_generator' into development
This commit is contained in:
commit
3c0c7abaae
@ -295,11 +295,11 @@ namespace etl
|
||||
char(&array_size(T(&array)[ARRAY_SIZE]))[ARRAY_SIZE];
|
||||
}
|
||||
|
||||
//#if ETL_CPP11_SUPPORTED
|
||||
// #define ETL_ARRAY_SIZE(a) (etl::size(a))
|
||||
//#else
|
||||
#if ETL_CPP11_SUPPORTED
|
||||
#define ETL_ARRAY_SIZE(a) (etl::size(a))
|
||||
#else
|
||||
#define ETL_ARRAY_SIZE(a) sizeof(etl::array_size(a))
|
||||
//#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
1
src/generate_variant_pool.bat
Normal file
1
src/generate_variant_pool.bat
Normal file
@ -0,0 +1 @@
|
||||
python -m cogapp -d -e -ovariant_pool.h -DNTypes=16 variant_pool_generator.h
|
||||
@ -26,6 +26,28 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#if 0
|
||||
#error THIS HEADER IS A GENERATOR. DO NOT INCLUDE.
|
||||
#endif
|
||||
|
||||
//***************************************************************************
|
||||
// This file has been auto generated. Do not edit this file.
|
||||
//***************************************************************************
|
||||
|
||||
//***************************************************************************
|
||||
// To generate to header file, run this at the command line.
|
||||
// Note: You will need Python and COG installed.
|
||||
//
|
||||
// python -m cogapp -d -e -ovariant_pool.h -DNTypes=<n> variant_pool_generator.h
|
||||
// Where <n> is the number of types to support.
|
||||
//
|
||||
// e.g.
|
||||
// To generate handlers for up to 16 types...
|
||||
// python -m cogapp -d -e -ovariant_pool.h -DNTypes=16 variant_pool_generator.h
|
||||
//
|
||||
// See generate.bat
|
||||
//***************************************************************************
|
||||
|
||||
#ifndef __ETL_VARIANT_POOL__
|
||||
#define __ETL_VARIANT_POOL__
|
||||
|
||||
@ -82,21 +104,21 @@ namespace etl
|
||||
|
||||
//***************************************************************************
|
||||
template <const size_t MAX_SIZE_,
|
||||
typename T1,
|
||||
typename T2 = void,
|
||||
typename T3 = void,
|
||||
typename T4 = void,
|
||||
typename T5 = void,
|
||||
typename T6 = void,
|
||||
typename T7 = void,
|
||||
typename T8 = void,
|
||||
typename T9 = void,
|
||||
typename T10 = void,
|
||||
typename T11 = void,
|
||||
typename T12 = void,
|
||||
typename T13 = void,
|
||||
typename T14 = void,
|
||||
typename T15 = void,
|
||||
typename T1,
|
||||
typename T2 = void,
|
||||
typename T3 = void,
|
||||
typename T4 = void,
|
||||
typename T5 = void,
|
||||
typename T6 = void,
|
||||
typename T7 = void,
|
||||
typename T8 = void,
|
||||
typename T9 = void,
|
||||
typename T10 = void,
|
||||
typename T11 = void,
|
||||
typename T12 = void,
|
||||
typename T13 = void,
|
||||
typename T14 = void,
|
||||
typename T15 = void,
|
||||
typename T16 = void>
|
||||
class variant_pool
|
||||
{
|
||||
@ -282,15 +304,15 @@ namespace etl
|
||||
bool destroy(const T* const p)
|
||||
{
|
||||
STATIC_ASSERT((etl::is_one_of<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::value ||
|
||||
etl::is_base_of<T, T1>::value ||
|
||||
etl::is_base_of<T, T2>::value ||
|
||||
etl::is_base_of<T, T3>::value ||
|
||||
etl::is_base_of<T, T4>::value ||
|
||||
etl::is_base_of<T, T5>::value ||
|
||||
etl::is_base_of<T, T6>::value ||
|
||||
etl::is_base_of<T, T7>::value ||
|
||||
etl::is_base_of<T, T8>::value ||
|
||||
etl::is_base_of<T, T9>::value ||
|
||||
etl::is_base_of<T, T1>::value ||
|
||||
etl::is_base_of<T, T2>::value ||
|
||||
etl::is_base_of<T, T3>::value ||
|
||||
etl::is_base_of<T, T4>::value ||
|
||||
etl::is_base_of<T, T5>::value ||
|
||||
etl::is_base_of<T, T6>::value ||
|
||||
etl::is_base_of<T, T7>::value ||
|
||||
etl::is_base_of<T, T8>::value ||
|
||||
etl::is_base_of<T, T9>::value ||
|
||||
etl::is_base_of<T, T10>::value ||
|
||||
etl::is_base_of<T, T11>::value ||
|
||||
etl::is_base_of<T, T12>::value ||
|
||||
|
||||
479
src/variant_pool_generator.h
Normal file
479
src/variant_pool_generator.h
Normal file
@ -0,0 +1,479 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
https://www.etlcpp.com
|
||||
|
||||
Copyright(c) 2017 jwellbelove
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files(the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions :
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.outl("#if 0")
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
#error THIS HEADER IS A GENERATOR. DO NOT INCLUDE.
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.outl("#endif")
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.outl("//***************************************************************************")
|
||||
cog.outl("// This file has been auto generated. Do not edit this file.")
|
||||
cog.outl("//***************************************************************************")
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
//***************************************************************************
|
||||
// To generate to header file, run this at the command line.
|
||||
// Note: You will need Python and COG installed.
|
||||
//
|
||||
// python -m cogapp -d -e -ovariant_pool.h -DNTypes=<n> variant_pool_generator.h
|
||||
// Where <n> is the number of types to support.
|
||||
//
|
||||
// e.g.
|
||||
// To generate handlers for up to 16 types...
|
||||
// python -m cogapp -d -e -ovariant_pool.h -DNTypes=16 variant_pool_generator.h
|
||||
//
|
||||
// See generate.bat
|
||||
//***************************************************************************
|
||||
|
||||
#ifndef __ETL_VARIANT_POOL__
|
||||
#define __ETL_VARIANT_POOL__
|
||||
|
||||
#include <stdint.h>
|
||||
#include <utility>
|
||||
|
||||
#include "platform.h"
|
||||
#include "error_handler.h"
|
||||
#include "exception.h"
|
||||
#include "largest.h"
|
||||
#include "type_traits.h"
|
||||
#include "alignment.h"
|
||||
#include "static_assert.h"
|
||||
#include "type_lookup.h"
|
||||
#include <pool.h>
|
||||
|
||||
#undef ETL_FILE
|
||||
#define ETL_FILE "40"
|
||||
|
||||
namespace etl
|
||||
{
|
||||
//***************************************************************************
|
||||
class variant_pool_exception : public etl::exception
|
||||
{
|
||||
public:
|
||||
|
||||
variant_pool_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
|
||||
: exception(reason_, file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
class variant_pool_cannot_create : public etl::variant_pool_exception
|
||||
{
|
||||
public:
|
||||
|
||||
variant_pool_cannot_create(string_type file_name_, numeric_type line_number_)
|
||||
: variant_pool_exception(ETL_ERROR_TEXT("variant_pool:cannot create", ETL_FILE"A"), file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
class variant_pool_did_not_create : public etl::variant_pool_exception
|
||||
{
|
||||
public:
|
||||
|
||||
variant_pool_did_not_create(string_type file_name_, numeric_type line_number_)
|
||||
: variant_pool_exception(ETL_ERROR_TEXT("variant_pool:did not create", ETL_FILE"B"), file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.outl("template <const size_t MAX_SIZE_,")
|
||||
cog.outl(" typename T1, ")
|
||||
for n in range(2, int(NTypes)):
|
||||
cog.outl(" typename T%s = void, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl(" typename T%s = void>" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
class variant_pool
|
||||
{
|
||||
public:
|
||||
|
||||
static const size_t MAX_SIZE = MAX_SIZE_;
|
||||
|
||||
//*************************************************************************
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
variant_pool()
|
||||
{
|
||||
}
|
||||
|
||||
#if !ETL_CPP11_SUPPORTED
|
||||
//*************************************************************************
|
||||
/// Creates the object. Default constructor.
|
||||
//*************************************************************************
|
||||
template <typename T>
|
||||
T* create()
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value), \"Unsupported type\");" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = nullptr;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != nullptr)
|
||||
{
|
||||
new (p) T();
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Creates the object. One parameter constructor.
|
||||
//*************************************************************************
|
||||
template <typename T, typename TP1>
|
||||
T* create(const TP1& p1)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value), \"Unsupported type\");" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = nullptr;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != nullptr)
|
||||
{
|
||||
new (p) T(p1);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Creates the object. Two parameter constructor.
|
||||
//*************************************************************************
|
||||
template <typename T, typename TP1, typename TP2>
|
||||
T* create(const TP1& p1, const TP2& p2)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value), \"Unsupported type\");" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = nullptr;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != nullptr)
|
||||
{
|
||||
new (p) T(p1, p2);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Creates the object. Three parameter constructor.
|
||||
//*************************************************************************
|
||||
template <typename T, typename TP1, typename TP2, typename TP3>
|
||||
T* create(const TP1& p1, const TP2& p2, const TP3& p3)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value), \"Unsupported type\");" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = nullptr;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != nullptr)
|
||||
{
|
||||
new (p) T(p1, p2, p3);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Creates the object. Four parameter constructor.
|
||||
//*************************************************************************
|
||||
template <typename T, typename TP1, typename TP2, typename TP3, typename TP4>
|
||||
T* create(const TP1& p1, const TP2& p2, const TP3& p3, const TP4& p4)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value), \"Unsupported type\");" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = nullptr;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != nullptr)
|
||||
{
|
||||
new (p) T(p1, p2, p3, p4);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
#else
|
||||
//*************************************************************************
|
||||
/// Creates the object from a type. Variadic parameter constructor.
|
||||
//*************************************************************************
|
||||
template <typename T, typename... Args>
|
||||
T* create(Args&&... args)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value), \"Unsupported type\");" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = nullptr;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != nullptr)
|
||||
{
|
||||
new (p) T(std::forward<Args>(args)...);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
/// Destroys the object.
|
||||
//*************************************************************************
|
||||
template <typename T>
|
||||
bool destroy(const T* const p)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("STATIC_ASSERT((etl::is_one_of<T, ")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::value ||" % int(NTypes))
|
||||
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.outl(" etl::is_base_of<T, T%s>::value ||" % n)
|
||||
cog.outl(" etl::is_base_of<T, T%s>::value), \"Invalid type\");" % int(NTypes))
|
||||
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
p->~T();
|
||||
|
||||
void* vp = reinterpret_cast<char*>(const_cast<T*>(p));
|
||||
|
||||
if (pool.is_in_pool(vp))
|
||||
{
|
||||
pool.release(vp);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(variant_pool_did_not_create));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Returns the maximum number of items in the variant_pool.
|
||||
//*************************************************************************
|
||||
size_t max_size() const
|
||||
{
|
||||
return MAX_SIZE;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Returns the number of free items in the variant_pool.
|
||||
//*************************************************************************
|
||||
size_t available() const
|
||||
{
|
||||
return pool.available();
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Returns the number of allocated items in the variant_pool.
|
||||
//*************************************************************************
|
||||
size_t size() const
|
||||
{
|
||||
return pool.size();
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Checks to see if there are no allocated items in the variant_pool.
|
||||
/// \return <b>true</b> if there are none allocated.
|
||||
//*************************************************************************
|
||||
bool empty() const
|
||||
{
|
||||
return pool.empty();
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Checks to see if there are no free items in the variant_pool.
|
||||
/// \return <b>true</b> if there are none free.
|
||||
//*************************************************************************
|
||||
bool full() const
|
||||
{
|
||||
return pool.full();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
variant_pool(const variant_pool&);
|
||||
variant_pool& operator =(const variant_pool&);
|
||||
|
||||
// The pool.
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("etl::generic_pool<etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::size," % int(NTypes))
|
||||
|
||||
cog.out(" etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
if n % 16 == 0:
|
||||
cog.outl("")
|
||||
cog.out(" ")
|
||||
cog.outl("T%s>::alignment," % int(NTypes))
|
||||
cog.outl(" MAX_SIZE> pool;")
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
};
|
||||
}
|
||||
|
||||
#undef ETL_FILE
|
||||
|
||||
#endif
|
||||
1
test/codeblocks/.gitignore
vendored
1
test/codeblocks/.gitignore
vendored
@ -2,3 +2,4 @@ random_*.csv
|
||||
/ETL.depend
|
||||
/ETL.layout
|
||||
*.depend
|
||||
*.layout
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -171,6 +171,7 @@
|
||||
<ClInclude Include="..\..\src\type_lookup_generator.h" />
|
||||
<ClInclude Include="..\..\src\type_traits_generator.h" />
|
||||
<ClInclude Include="..\..\src\variant_pool.h" />
|
||||
<ClInclude Include="..\..\src\variant_pool_generator.h" />
|
||||
<ClInclude Include="..\..\unittest-cpp\UnitTest++\AssertException.h" />
|
||||
<ClInclude Include="..\..\unittest-cpp\UnitTest++\CheckMacros.h" />
|
||||
<ClInclude Include="..\..\unittest-cpp\UnitTest++\Checks.h" />
|
||||
@ -478,6 +479,7 @@
|
||||
<None Include="..\..\src\generate_smallest.bat" />
|
||||
<None Include="..\..\src\generate_type_lookup.bat" />
|
||||
<None Include="..\..\src\generate_type_traits.bat" />
|
||||
<None Include="..\..\src\generate_variant_pool.bat" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\src\file_error_numbers.txt" />
|
||||
|
||||
@ -58,6 +58,9 @@
|
||||
<Filter Include="ECL">
|
||||
<UniqueIdentifier>{4ac80fd1-3eca-4775-8695-eb1ea39c93f1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ETL\Containers\Generators">
|
||||
<UniqueIdentifier>{e4a699ae-e7f3-418e-bf9f-211c21f7f4b2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\doxygen.h">
|
||||
@ -570,6 +573,9 @@
|
||||
<ClInclude Include="..\..\src\array_wrapper.h">
|
||||
<Filter>ETL\Containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\variant_pool_generator.h">
|
||||
<Filter>ETL\Containers\Generators</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\main.cpp">
|
||||
@ -985,6 +991,9 @@
|
||||
<None Include="..\..\src\generate_type_lookup.bat">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\generate_variant_pool.bat">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\src\file_error_numbers.txt">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user