mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
Merge branch 'development'
# Conflicts: # .gitignore
This commit is contained in:
commit
c8a3f0705f
8
.gitignore
vendored
8
.gitignore
vendored
@ -362,6 +362,14 @@ test/build-etl_initializer_list-GCC-Debug
|
||||
test/etl_initializer_list/etl_initializer_list.vcxproj.filters
|
||||
test/etl_initializer_list/build-make
|
||||
test/vs-build
|
||||
test/etl_error_handler/build-log_errors-GCC-Debug
|
||||
test/etl_error_handler/build-exceptions_and_log_errors-GCC-Debug
|
||||
test/etl_error_handler/build-exceptions-GCC-Debug
|
||||
test/etl_error_handler/exceptions_and_log_errors/.vs
|
||||
test/etl_error_handler/exceptions/build-make
|
||||
test/etl_error_handler/log_errors/build-make
|
||||
test/etl_error_handler/log_errors_and_exceptions/build-make
|
||||
test/etl_error_handler/log_errors_and_exceptions/.vs
|
||||
test/etl_error_handler/exceptions/build-make
|
||||
test/etl_error_handler/log_errors/build-make
|
||||
test/etl_error_handler/log_errors_and_exceptions/.vs
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Embedded Template Library - Arduino",
|
||||
"version": "20.31.2",
|
||||
"version": "20.31.3",
|
||||
"authors": {
|
||||
"name": "John Wellbelove",
|
||||
"email": "john.wellbelove@etlcpp.com"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
name=Embedded Template Library - Arduino
|
||||
version=20.31.2
|
||||
version=20.31.3
|
||||
author= John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
license=MIT
|
||||
|
||||
@ -83,7 +83,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
size_type size() const
|
||||
{
|
||||
return (in >= out) ? in - out : BUFFER_SIZE - (out - in);
|
||||
return (in >= out) ? in - out : buffer_size - (out - in);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -98,7 +98,7 @@ namespace etl
|
||||
size_t i = in;
|
||||
|
||||
++i;
|
||||
if (i == BUFFER_SIZE) ETL_UNLIKELY
|
||||
if (i == buffer_size) ETL_UNLIKELY
|
||||
{
|
||||
i = 0U;
|
||||
}
|
||||
@ -115,20 +115,20 @@ namespace etl
|
||||
//*************************************************************************
|
||||
size_type max_size() const
|
||||
{
|
||||
return BUFFER_SIZE - 1U;
|
||||
return buffer_size - 1U;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
size_type capacity() const
|
||||
{
|
||||
return BUFFER_SIZE - 1U;
|
||||
return buffer_size - 1U;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
//*************************************************************************
|
||||
circular_buffer_base(size_type BUFFER_SIZE_)
|
||||
: BUFFER_SIZE(BUFFER_SIZE_)
|
||||
circular_buffer_base(size_type buffer_size_)
|
||||
: buffer_size(buffer_size_)
|
||||
, in(0U)
|
||||
, out(0U)
|
||||
{
|
||||
@ -138,7 +138,7 @@ namespace etl
|
||||
void increment_in()
|
||||
{
|
||||
++in;
|
||||
if (in == BUFFER_SIZE) ETL_UNLIKELY
|
||||
if (in == buffer_size) ETL_UNLIKELY
|
||||
{
|
||||
in = 0U;
|
||||
}
|
||||
@ -148,13 +148,13 @@ namespace etl
|
||||
void increment_out()
|
||||
{
|
||||
++out;
|
||||
if (out == BUFFER_SIZE) ETL_UNLIKELY
|
||||
if (out == buffer_size) ETL_UNLIKELY
|
||||
{
|
||||
out = 0U;
|
||||
}
|
||||
}
|
||||
|
||||
const size_type BUFFER_SIZE;
|
||||
size_type buffer_size;
|
||||
size_type in; ///< Index to the next write.
|
||||
size_type out; ///< Index to the next read.
|
||||
ETL_DECLARE_DEBUG_COUNT; ///< Internal debugging.
|
||||
@ -230,7 +230,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
pointer operator ->() const
|
||||
{
|
||||
return picb->pbuffer[current];
|
||||
return &picb->pbuffer[current];
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -241,7 +241,7 @@ namespace etl
|
||||
++current;
|
||||
|
||||
// Did we reach the end of the buffer?
|
||||
if (current == picb->BUFFER_SIZE)
|
||||
if (current == picb->buffer_size)
|
||||
{
|
||||
current = 0U;
|
||||
}
|
||||
@ -269,7 +269,7 @@ namespace etl
|
||||
// Are we at the end of the buffer?
|
||||
if (current == 0U)
|
||||
{
|
||||
current = picb->BUFFER_SIZE - 1;
|
||||
current = picb->buffer_size - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -296,8 +296,8 @@ namespace etl
|
||||
//*************************************************************************
|
||||
iterator& operator +=(int n)
|
||||
{
|
||||
current += size_type(picb->BUFFER_SIZE + n);
|
||||
current %= picb->BUFFER_SIZE;
|
||||
current += size_type(picb->buffer_size + n);
|
||||
current %= picb->buffer_size;
|
||||
|
||||
return (*this);
|
||||
}
|
||||
@ -407,7 +407,7 @@ namespace etl
|
||||
{
|
||||
if (index < firstIndex)
|
||||
{
|
||||
return picb->BUFFER_SIZE + current - firstIndex;
|
||||
return picb->buffer_size + current - firstIndex;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -501,7 +501,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
const_pointer operator ->() const
|
||||
{
|
||||
return picb->pbuffer[current];
|
||||
return &(picb->pbuffer[current]);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -512,7 +512,7 @@ namespace etl
|
||||
++current;
|
||||
|
||||
// Did we reach the end of the buffer?
|
||||
if (current == picb->BUFFER_SIZE)
|
||||
if (current == picb->buffer_size)
|
||||
{
|
||||
current = 0U;
|
||||
}
|
||||
@ -540,7 +540,7 @@ namespace etl
|
||||
// Are we at the end of the buffer?
|
||||
if (current == 0U)
|
||||
{
|
||||
current = picb->BUFFER_SIZE - 1;
|
||||
current = picb->buffer_size - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -567,8 +567,8 @@ namespace etl
|
||||
//*************************************************************************
|
||||
const_iterator& operator +=(int n)
|
||||
{
|
||||
current += size_type(picb->BUFFER_SIZE + n);
|
||||
current %= picb->BUFFER_SIZE;
|
||||
current += size_type(picb->buffer_size + n);
|
||||
current %= picb->buffer_size;
|
||||
|
||||
return (*this);
|
||||
}
|
||||
@ -820,7 +820,7 @@ namespace etl
|
||||
{
|
||||
ETL_ASSERT(!empty(), ETL_ERROR(circular_buffer_empty));
|
||||
|
||||
return pbuffer[in == 0U ? BUFFER_SIZE - 1 : in - 1U];
|
||||
return pbuffer[in == 0U ? buffer_size - 1 : in - 1U];
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -831,7 +831,7 @@ namespace etl
|
||||
{
|
||||
ETL_ASSERT(!empty(), ETL_ERROR(circular_buffer_empty));
|
||||
|
||||
return pbuffer[in == 0U ? BUFFER_SIZE - 1 : in - 1U];
|
||||
return pbuffer[in == 0U ? buffer_size - 1 : in - 1U];
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -839,7 +839,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
reference operator [](size_t index)
|
||||
{
|
||||
return pbuffer[(out + index) % BUFFER_SIZE];
|
||||
return pbuffer[(out + index) % buffer_size];
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -848,7 +848,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
const_reference operator [](size_t index) const
|
||||
{
|
||||
return pbuffer[(out + index) % BUFFER_SIZE];
|
||||
return pbuffer[(out + index) % buffer_size];
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -1025,7 +1025,7 @@ namespace etl
|
||||
{
|
||||
const difference_type index = other.get_index();
|
||||
const difference_type reference_index = other.container().out;
|
||||
const size_t buffer_size = other.container().BUFFER_SIZE;
|
||||
const size_t buffer_size = other.container().buffer_size;
|
||||
|
||||
if (index < reference_index)
|
||||
{
|
||||
@ -1294,13 +1294,18 @@ namespace etl
|
||||
//*************************************************************************
|
||||
/// Swap with another circular buffer
|
||||
//*************************************************************************
|
||||
void swap(circular_buffer_ext& other)
|
||||
void swap(circular_buffer_ext& other) ETL_NOEXCEPT
|
||||
{
|
||||
using ETL_OR_STD::swap; // Allow ADL
|
||||
|
||||
swap(this->in, other.in);
|
||||
swap(this->out, other.out);
|
||||
swap(this->pbuffer, other.pbuffer);
|
||||
swap(this->buffer_size, other.buffer_size);
|
||||
|
||||
#if defined(ETL_DEBUG_COUNT)
|
||||
this->etl_debug_count.swap(other.etl_debug_count);
|
||||
#endif
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
|
||||
@ -31,24 +31,27 @@ SOFTWARE.
|
||||
#ifndef ETL_DEBUG_COUNT_INCLUDED
|
||||
#define ETL_DEBUG_COUNT_INCLUDED
|
||||
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "platform.h"
|
||||
#include "atomic.h"
|
||||
#include "platform.h"
|
||||
|
||||
///\defgroup debug_count debug count
|
||||
///\ingroup utilities
|
||||
|
||||
#if defined(ETL_DEBUG_COUNT)
|
||||
|
||||
#define ETL_DECLARE_DEBUG_COUNT etl::debug_count etl_debug_count;
|
||||
#define ETL_INCREMENT_DEBUG_COUNT ++etl_debug_count;
|
||||
#define ETL_DECREMENT_DEBUG_COUNT --etl_debug_count;
|
||||
#define ETL_ADD_DEBUG_COUNT(n) etl_debug_count += (n);
|
||||
#define ETL_SUBTRACT_DEBUG_COUNT(n) etl_debug_count -= (n);
|
||||
#define ETL_RESET_DEBUG_COUNT etl_debug_count.clear();
|
||||
#define ETL_OBJECT_RESET_DEBUG_COUNT(object) object.etl_debug_count.clear();
|
||||
#define ETL_DECLARE_DEBUG_COUNT etl::debug_count etl_debug_count;
|
||||
#define ETL_SET_DEBUG_COUNT(n) etl_debug_count.set(n)
|
||||
#define ETL_GET_DEBUG_COUNT etl_debug_count.get()
|
||||
#define ETL_INCREMENT_DEBUG_COUNT ++etl_debug_count;
|
||||
#define ETL_DECREMENT_DEBUG_COUNT --etl_debug_count;
|
||||
#define ETL_ADD_DEBUG_COUNT(n) etl_debug_count += (n);
|
||||
#define ETL_SUBTRACT_DEBUG_COUNT(n) etl_debug_count -= (n);
|
||||
#define ETL_RESET_DEBUG_COUNT etl_debug_count.clear();
|
||||
#define ETL_OBJECT_RESET_DEBUG_COUNT(object) object.etl_debug_count.clear();
|
||||
#define ETL_OBJECT_GET_DEBUG_COUNT(object) object.etl_debug_count.get()
|
||||
|
||||
namespace etl
|
||||
{
|
||||
@ -59,10 +62,11 @@ namespace etl
|
||||
/// Does nothing in a non-debug build.
|
||||
///\ingroup reference
|
||||
//***************************************************************************
|
||||
|
||||
|
||||
class debug_count
|
||||
{
|
||||
public:
|
||||
|
||||
debug_count()
|
||||
: count(0)
|
||||
{
|
||||
@ -73,13 +77,13 @@ namespace etl
|
||||
assert(count == 0);
|
||||
}
|
||||
|
||||
debug_count& operator ++()
|
||||
debug_count& operator++()
|
||||
{
|
||||
++count;
|
||||
return *this;
|
||||
}
|
||||
|
||||
debug_count& operator --()
|
||||
debug_count& operator--()
|
||||
{
|
||||
--count;
|
||||
assert(count >= 0);
|
||||
@ -87,48 +91,86 @@ namespace etl
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
debug_count& operator +=(T n)
|
||||
debug_count& operator+=(T n)
|
||||
{
|
||||
count += int32_t(n);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
debug_count& operator -=(T n)
|
||||
debug_count& operator-=(T n)
|
||||
{
|
||||
count -= int32_t(n);
|
||||
return *this;
|
||||
}
|
||||
|
||||
operator int32_t()
|
||||
debug_count& operator=(const debug_count& other)
|
||||
{
|
||||
count.store(other.count.load());
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
#if ETL_HAS_ATOMIC
|
||||
void swap(debug_count& other) ETL_NOEXCEPT // NOT ATOMIC
|
||||
{
|
||||
int32_t temp = other.count.load();
|
||||
other.count.store(count.load());
|
||||
count.store(temp);
|
||||
}
|
||||
#else
|
||||
void swap(debug_count& other) ETL_NOEXCEPT
|
||||
{
|
||||
swap(count, other.count);
|
||||
}
|
||||
#endif
|
||||
|
||||
operator int32_t() const
|
||||
{
|
||||
return count;
|
||||
}
|
||||
|
||||
int32_t get() const
|
||||
{
|
||||
return int32_t(count);
|
||||
}
|
||||
|
||||
void set(int32_t n)
|
||||
{
|
||||
count = n;
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
count = 0;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
#if ETL_HAS_ATOMIC
|
||||
#if ETL_HAS_ATOMIC
|
||||
etl::atomic_int32_t count;
|
||||
#else
|
||||
#else
|
||||
int32_t count;
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
} // namespace etl
|
||||
|
||||
|
||||
static void swap(etl::debug_count& lhs, etl::debug_count& rhs)
|
||||
{
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
#else
|
||||
#define ETL_DECLARE_DEBUG_COUNT
|
||||
#define ETL_SET_DEBUG_COUNT(n)
|
||||
#define ETL_GET_DEBUG_COUNT
|
||||
#define ETL_INCREMENT_DEBUG_COUNT
|
||||
#define ETL_DECREMENT_DEBUG_COUNT
|
||||
#define ETL_ADD_DEBUG_COUNT(n)
|
||||
#define ETL_SUBTRACT_DEBUG_COUNT(n)
|
||||
#define ETL_RESET_DEBUG_COUNT
|
||||
#define ETL_OBJECT_RESET_DEBUG_COUNT(object)
|
||||
#endif // ETL_DEBUG_COUNT
|
||||
#define ETL_OBJECT_GET_DEBUG_COUNT(object)
|
||||
#endif // ETL_DEBUG_COUNT
|
||||
|
||||
#endif
|
||||
|
||||
@ -283,7 +283,7 @@ namespace etl
|
||||
|
||||
#define ETL_ASSERT_FAIL(e) {etl::error_handler::error((e)); throw((e));} // Calls the error handler then throws an exception.
|
||||
#define ETL_ASSERT_FAIL_AND_RETURN(e) {etl::error_handler::error((e)); throw((e)); return;} // Calls the error handler then throws an exception.
|
||||
#define ETL_ASSERT_FAIL_AND_RETURN_VALUE(e) {etl::error_handler::error((e)); throw((e)); return(v);} // Calls the error handler then throws an exception.
|
||||
#define ETL_ASSERT_FAIL_AND_RETURN_VALUE(e, v) {etl::error_handler::error((e)); throw((e)); return(v);} // Calls the error handler then throws an exception.
|
||||
#else
|
||||
#define ETL_ASSERT(b, e) {if (!(b)) {throw((e));}} // If the condition fails, throws an exception.
|
||||
#define ETL_ASSERT_AND_RETURN(b, e) {if (!(b)) {throw((e)); return;}} // If the condition fails, throws an exception.
|
||||
|
||||
@ -963,7 +963,7 @@ namespace etl
|
||||
#if ETL_USING_CPP11
|
||||
//*************************************************************************
|
||||
/// Move a flat_map.
|
||||
/// Assumes the rhs is initialised and empty.
|
||||
/// Assumes the flat_map is initialised and empty.
|
||||
//*************************************************************************
|
||||
void move_container(iflat_map&& rhs)
|
||||
{
|
||||
|
||||
@ -848,7 +848,7 @@ namespace etl
|
||||
#if ETL_USING_CPP11
|
||||
//*************************************************************************
|
||||
/// Move a flat_multimap.
|
||||
/// Assumes the rhs is initialised and empty.
|
||||
/// Assumes the flat_multimap is initialised and empty.
|
||||
//*************************************************************************
|
||||
void move_container(iflat_multimap&& rhs)
|
||||
{
|
||||
|
||||
@ -801,7 +801,7 @@ namespace etl
|
||||
#if ETL_USING_CPP11
|
||||
//*************************************************************************
|
||||
/// Move a flat_multimap.
|
||||
/// Assumes the rhs is initialised and empty.
|
||||
/// Assumes the flat_multimap is initialised and empty.
|
||||
//*************************************************************************
|
||||
void move_container(iflat_multiset&& rhs)
|
||||
{
|
||||
|
||||
@ -888,7 +888,7 @@ namespace etl
|
||||
#if ETL_USING_CPP11
|
||||
//*************************************************************************
|
||||
/// Move a flat_set.
|
||||
/// Assumes the rhs is initialised and empty.
|
||||
/// Assumes the flat_set is initialised and empty.
|
||||
//*************************************************************************
|
||||
void move_container(iflat_set&& rhs)
|
||||
{
|
||||
|
||||
@ -1485,34 +1485,25 @@ namespace etl
|
||||
|
||||
if (!rhs.empty())
|
||||
{
|
||||
node_t* p_last_node = &this->start_node;
|
||||
node_t* p_rhs_node = rhs.start_node.next;
|
||||
|
||||
// Are we using the same pool?
|
||||
if (this->get_node_pool() == rhs.get_node_pool())
|
||||
{
|
||||
// Just link the nodes to the new forward_list.
|
||||
do
|
||||
{
|
||||
node_t* p_node = p_rhs_node;
|
||||
p_rhs_node = p_rhs_node->next;
|
||||
// Just link the nodes to this list.
|
||||
this->start_node.next = rhs.start_node.next;
|
||||
|
||||
insert_node_after(*p_last_node, *p_node);
|
||||
|
||||
p_last_node = p_node;
|
||||
|
||||
ETL_INCREMENT_DEBUG_COUNT;
|
||||
|
||||
} while (p_rhs_node != ETL_NULLPTR);
|
||||
ETL_SET_DEBUG_COUNT(ETL_OBJECT_GET_DEBUG_COUNT(rhs));
|
||||
|
||||
ETL_OBJECT_RESET_DEBUG_COUNT(rhs);
|
||||
rhs.start_node.next = ETL_NULLPTR;
|
||||
}
|
||||
else
|
||||
{
|
||||
node_t* p_last_node = &this->start_node;
|
||||
node_t* p_rhs_node = rhs.start_node.next;
|
||||
|
||||
// Add all of the elements.
|
||||
etl::iforward_list<T>::iterator first = rhs.begin();
|
||||
etl::iforward_list<T>::iterator last = rhs.end();
|
||||
etl::iforward_list<T>::iterator last = rhs.end();
|
||||
|
||||
while (first != last)
|
||||
{
|
||||
|
||||
@ -5,4 +5,5 @@ python -m cogapp -d -e -o../smallest.h -DNTypes=16 smallest_generator.h
|
||||
python -m cogapp -d -e -o../type_traits.h -DIsOneOf=16 type_traits_generator.h
|
||||
python -m cogapp -d -e -o../type_lookup.h -DNTypes=16 type_lookup_generator.h
|
||||
python -m cogapp -d -e -o../type_select.h -DNTypes=16 type_select_generator.h
|
||||
python -m cogapp -d -e -o../message_packet.h -DHandlers=16 message_packet_generator.h
|
||||
python -m cogapp -d -e -o../message_packet.h -DHandlers=16 message_packet_generator.h
|
||||
python -m cogapp -d -e -o../variant_pool.h -DNTypes=16 variant_pool_generator.h
|
||||
@ -66,69 +66,52 @@ cog.outl("//********************************************************************
|
||||
#include <stdint.h>
|
||||
|
||||
#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"
|
||||
|
||||
#include "utility.h"
|
||||
#include "type_traits.h"
|
||||
#include "static_assert.h"
|
||||
#include "largest.h"
|
||||
|
||||
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_VARIANT_POOL_FILE_ID"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_VARIANT_POOL_FILE_ID"B"), file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.outl("template <const size_t MAX_SIZE_,")
|
||||
cog.outl(" typename T1, ")
|
||||
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," % n)
|
||||
cog.outl(" typename T%s = void>" % int(NTypes))
|
||||
cog.outl("class variant_pool")
|
||||
cog.out(" : public etl::generic_pool<")
|
||||
cog.out("etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::size," % int(NTypes))
|
||||
cog.out(" etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::alignment," % int(NTypes))
|
||||
cog.outl(" MAX_SIZE_>")
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
class variant_pool
|
||||
{
|
||||
public:
|
||||
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("typedef etl::generic_pool<")
|
||||
cog.out("etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::size," % int(NTypes))
|
||||
cog.out(" etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::alignment," % int(NTypes))
|
||||
cog.outl(" MAX_SIZE_> base_t;")
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
static const size_t MAX_SIZE = MAX_SIZE_;
|
||||
|
||||
//*************************************************************************
|
||||
@ -157,23 +140,7 @@ namespace etl
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = ETL_NULLPTR;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != ETL_NULLPTR)
|
||||
{
|
||||
new (p) T();
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
return base_t::template create<T>();
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -194,23 +161,7 @@ namespace etl
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = ETL_NULLPTR;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != ETL_NULLPTR)
|
||||
{
|
||||
new (p) T(p1);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
return base_t::template create<T>(p1);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -231,23 +182,7 @@ namespace etl
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = ETL_NULLPTR;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != ETL_NULLPTR)
|
||||
{
|
||||
new (p) T(p1, p2);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
return base_t::template create<T>(p1, p2);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -268,23 +203,7 @@ namespace etl
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = ETL_NULLPTR;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != ETL_NULLPTR)
|
||||
{
|
||||
new (p) T(p1, p2, p3);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
return base_t::template create<T>(p1, p2, p3);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -305,23 +224,7 @@ namespace etl
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = ETL_NULLPTR;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != ETL_NULLPTR)
|
||||
{
|
||||
new (p) T(p1, p2, p3, p4);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
return base_t::template create<T>(p1, p2, p3, p4);
|
||||
}
|
||||
#else
|
||||
//*************************************************************************
|
||||
@ -342,23 +245,7 @@ namespace etl
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
T* p = ETL_NULLPTR;
|
||||
|
||||
if (pool.full())
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(etl::variant_pool_cannot_create));
|
||||
}
|
||||
else
|
||||
{
|
||||
p = pool.template allocate<T>();
|
||||
|
||||
if (p != ETL_NULLPTR)
|
||||
{
|
||||
new (p) T(ETL_OR_STD::forward<Args>(args)...);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
return base_t::template create<T>(args...);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -379,24 +266,13 @@ namespace etl
|
||||
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))
|
||||
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);
|
||||
}
|
||||
else
|
||||
{
|
||||
ETL_ASSERT(false, ETL_ERROR(variant_pool_did_not_create));
|
||||
}
|
||||
base_t::destroy(p);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -407,66 +283,222 @@ namespace etl
|
||||
return MAX_SIZE;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
variant_pool(const variant_pool&) ETL_DELETE;
|
||||
variant_pool& operator =(const variant_pool&) ETL_DELETE;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.outl("template <typename T1,")
|
||||
for n in range(2, int(NTypes)):
|
||||
cog.outl(" typename T%s = void," % n)
|
||||
cog.outl(" typename T%s = void>" % int(NTypes))
|
||||
cog.outl("class variant_pool_ext")
|
||||
cog.out(" : public etl::generic_pool_ext<")
|
||||
cog.out("etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::size," % int(NTypes))
|
||||
cog.out(" etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::alignment>" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
{
|
||||
public:
|
||||
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("typedef etl::generic_pool_ext<")
|
||||
cog.out("etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::size," % int(NTypes))
|
||||
cog.out(" etl::largest<")
|
||||
for n in range(1, int(NTypes)):
|
||||
cog.out("T%s, " % n)
|
||||
cog.outl("T%s>::alignment> base_t;" % int(NTypes))
|
||||
]]]*/
|
||||
/*[[[end]]]*/
|
||||
|
||||
//*************************************************************************
|
||||
/// Returns the number of free items in the variant_pool.
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
size_t available() const
|
||||
variant_pool_ext(typename base_t::element* buffer, size_t size)
|
||||
: base_t(buffer, size)
|
||||
{
|
||||
return pool.available();
|
||||
}
|
||||
|
||||
#if ETL_CPP11_NOT_SUPPORTED || ETL_USING_STLPORT
|
||||
//*************************************************************************
|
||||
/// Creates the object. Default constructor.
|
||||
//*************************************************************************
|
||||
template <typename T>
|
||||
T* create()
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("ETL_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]]]*/
|
||||
|
||||
return base_t::template create<T>();
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Returns the number of allocated items in the variant_pool.
|
||||
/// Creates the object. One parameter constructor.
|
||||
//*************************************************************************
|
||||
size_t size() const
|
||||
template <typename T, typename TP1>
|
||||
T* create(const TP1& p1)
|
||||
{
|
||||
return pool.size();
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("ETL_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]]]*/
|
||||
|
||||
return base_t::template create<T>(p1);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Checks to see if there are no allocated items in the variant_pool.
|
||||
/// \return <b>true</b> if there are none allocated.
|
||||
/// Creates the object. Two parameter constructor.
|
||||
//*************************************************************************
|
||||
bool empty() const
|
||||
template <typename T, typename TP1, typename TP2>
|
||||
T* create(const TP1& p1, const TP2& p2)
|
||||
{
|
||||
return pool.empty();
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("ETL_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]]]*/
|
||||
|
||||
return base_t::template create<T>(p1, p2);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Checks to see if there are no free items in the variant_pool.
|
||||
/// \return <b>true</b> if there are none free.
|
||||
/// Creates the object. Three parameter constructor.
|
||||
//*************************************************************************
|
||||
bool full() const
|
||||
template <typename T, typename TP1, typename TP2, typename TP3>
|
||||
T* create(const TP1& p1, const TP2& p2, const TP3& p3)
|
||||
{
|
||||
return pool.full();
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("ETL_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]]]*/
|
||||
|
||||
return base_t::template create<T>(p1, p2, p3);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// 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("ETL_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]]]*/
|
||||
|
||||
return base_t::template create<T>(p1, p2, p3, p4);
|
||||
}
|
||||
#else
|
||||
//*************************************************************************
|
||||
/// Creates the object from a type. Variadic parameter constructor.
|
||||
//*************************************************************************
|
||||
template <typename T, typename... Args>
|
||||
T* create(Args&&... args)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("ETL_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]]]*/
|
||||
|
||||
return base_t::template create<T>(args...);
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
/// Destroys the object.
|
||||
//*************************************************************************
|
||||
template <typename T>
|
||||
void destroy(const T* const p)
|
||||
{
|
||||
/*[[[cog
|
||||
import cog
|
||||
cog.out("ETL_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]]]*/
|
||||
|
||||
base_t::destroy(p);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Returns the maximum number of items in the variant_pool.
|
||||
//*************************************************************************
|
||||
size_t max_size() const
|
||||
{
|
||||
return base_t::max_size();
|
||||
}
|
||||
|
||||
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]]]*/
|
||||
variant_pool_ext(const variant_pool_ext&) ETL_DELETE;
|
||||
variant_pool_ext& operator =(const variant_pool_ext&) ETL_DELETE;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -1824,7 +1824,7 @@ namespace etl
|
||||
|
||||
#if ETL_USING_CPP11
|
||||
//*************************************************************************
|
||||
/// Move a forward list
|
||||
/// Move a list
|
||||
//*************************************************************************
|
||||
void move_container(ilist&& rhs)
|
||||
{
|
||||
@ -1837,21 +1837,13 @@ namespace etl
|
||||
// Are we using the same pool?
|
||||
if (this->get_node_pool() == rhs.get_node_pool())
|
||||
{
|
||||
node_t* p_rhs_node = &rhs.get_head();
|
||||
// Just link the nodes to this list.
|
||||
join(terminal_node, rhs.get_head());
|
||||
join(rhs.get_tail(), terminal_node);
|
||||
|
||||
// Just link the nodes to the new forward_list.
|
||||
do
|
||||
{
|
||||
ETL_ASSERT(!full(), ETL_ERROR(list_full));
|
||||
|
||||
node_t* p_node = p_rhs_node;
|
||||
p_rhs_node = p_rhs_node->next;
|
||||
insert_node(terminal_node, *p_node);
|
||||
|
||||
ETL_INCREMENT_DEBUG_COUNT;
|
||||
|
||||
} while (p_rhs_node != &rhs.terminal_node);
|
||||
ETL_SET_DEBUG_COUNT(ETL_OBJECT_GET_DEBUG_COUNT(rhs));
|
||||
|
||||
// Clear the rhs.
|
||||
ETL_OBJECT_RESET_DEBUG_COUNT(rhs);
|
||||
rhs.join(rhs.terminal_node, rhs.terminal_node);
|
||||
}
|
||||
|
||||
@ -79,9 +79,10 @@ namespace etl
|
||||
typename T14 = void,
|
||||
typename T15 = void,
|
||||
typename T16 = void>
|
||||
class variant_pool : public etl::generic_pool<etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::size,
|
||||
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment,
|
||||
MAX_SIZE_>
|
||||
class variant_pool
|
||||
: public etl::generic_pool<etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::size,
|
||||
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment,
|
||||
MAX_SIZE_>
|
||||
{
|
||||
public:
|
||||
|
||||
@ -226,16 +227,20 @@ namespace etl
|
||||
typename T16 = void>
|
||||
class variant_pool_ext
|
||||
: public etl::generic_pool_ext<etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::size,
|
||||
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment> {
|
||||
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment>
|
||||
{
|
||||
public:
|
||||
|
||||
typedef etl::generic_pool_ext<etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::size,
|
||||
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment>
|
||||
base_t;
|
||||
etl::largest<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::alignment> base_t;
|
||||
|
||||
//*************************************************************************
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
variant_pool_ext(typename base_t::element* buffer, size_t size) : base_t(buffer, size) {}
|
||||
variant_pool_ext(typename base_t::element* buffer, size_t size)
|
||||
: base_t(buffer, size)
|
||||
{
|
||||
}
|
||||
|
||||
#if ETL_CPP11_NOT_SUPPORTED || ETL_USING_STLPORT
|
||||
//*************************************************************************
|
||||
@ -311,13 +316,23 @@ namespace etl
|
||||
template <typename T>
|
||||
void destroy(const T* const p)
|
||||
{
|
||||
ETL_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, T10>::value || etl::is_base_of<T, T11>::value || etl::is_base_of<T, T12>::value || etl::is_base_of<T, T13>::value ||
|
||||
etl::is_base_of<T, T14>::value || etl::is_base_of<T, T15>::value || etl::is_base_of<T, T16>::value),
|
||||
"Invalid type");
|
||||
ETL_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, T10>::value ||
|
||||
etl::is_base_of<T, T11>::value ||
|
||||
etl::is_base_of<T, T12>::value ||
|
||||
etl::is_base_of<T, T13>::value ||
|
||||
etl::is_base_of<T, T14>::value ||
|
||||
etl::is_base_of<T, T15>::value ||
|
||||
etl::is_base_of<T, T16>::value), "Invalid type");
|
||||
|
||||
base_t::destroy(p);
|
||||
}
|
||||
@ -325,12 +340,15 @@ namespace etl
|
||||
//*************************************************************************
|
||||
/// Returns the maximum number of items in the variant_pool.
|
||||
//*************************************************************************
|
||||
// redundant also declared in ipool::max_size()
|
||||
size_t max_size() const { return base_t::max_size(); }
|
||||
size_t max_size() const
|
||||
{
|
||||
return base_t::max_size();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
variant_pool_ext(const variant_pool_ext&) ETL_DELETE;
|
||||
variant_pool_ext& operator=(const variant_pool_ext&) ETL_DELETE;
|
||||
variant_pool_ext& operator =(const variant_pool_ext&) ETL_DELETE;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ SOFTWARE.
|
||||
|
||||
#define ETL_VERSION_MAJOR 20
|
||||
#define ETL_VERSION_MINOR 31
|
||||
#define ETL_VERSION_PATCH 2
|
||||
#define ETL_VERSION_PATCH 3
|
||||
|
||||
#define ETL_VERSION ETL_STRING(ETL_VERSION_MAJOR) "." ETL_STRING(ETL_VERSION_MINOR) "." ETL_STRING(ETL_VERSION_PATCH)
|
||||
#define ETL_VERSION_W ETL_WIDE_STRING(ETL_VERSION_MAJOR) L"." ETL_WIDE_STRING(ETL_VERSION_MINOR) L"." ETL_WIDE_STRING(ETL_VERSION_PATCH)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Embedded Template Library",
|
||||
"version": "20.31.2",
|
||||
"version": "20.31.3",
|
||||
"authors": {
|
||||
"name": "John Wellbelove",
|
||||
"email": "john.wellbelove@etlcpp.com"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
name=Embedded Template Library
|
||||
version=20.31.2
|
||||
version=20.31.3
|
||||
author= John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
license=MIT
|
||||
|
||||
42
scripts/generator_test.py
Normal file
42
scripts/generator_test.py
Normal file
@ -0,0 +1,42 @@
|
||||
import subprocess
|
||||
from os.path import abspath
|
||||
from pathlib import Path
|
||||
import filecmp
|
||||
|
||||
root_path = Path(abspath(__file__)).parent.parent
|
||||
generator_folder = root_path/"include" / "etl" / "generators"
|
||||
|
||||
# Create folder where generator outputs can go for purpose of comparison
|
||||
test_folder = root_path / "build" / "generator_tmp"
|
||||
test_folder.mkdir(parents=True, exist_ok= True)
|
||||
|
||||
all_ok = True
|
||||
for generator in generator_folder.iterdir():
|
||||
if generator.suffix != ".h":
|
||||
continue
|
||||
generator_path = str(generator_folder / generator)
|
||||
output_name = generator.name[:-12] + ".h"
|
||||
output_path = str(test_folder / output_name)
|
||||
|
||||
cog_cmd = [
|
||||
"cog",
|
||||
"-d",
|
||||
"-e",
|
||||
f"-o{output_path}",
|
||||
"-DHandlers=16",
|
||||
"-DNTypes=16",
|
||||
"-DIsOneOf=16",
|
||||
generator_path
|
||||
]
|
||||
|
||||
subprocess.run(cog_cmd)
|
||||
|
||||
# Compare generator output against actual file output
|
||||
actual_path = str(generator_folder.parent / output_name)
|
||||
if not filecmp.cmp(actual_path, output_path):
|
||||
print(f"Generator for {output_name} does not match file contents")
|
||||
all_ok = False
|
||||
|
||||
if not all_ok:
|
||||
exit(1)
|
||||
exit(0)
|
||||
@ -1,3 +1,11 @@
|
||||
===============================================================================
|
||||
20.31.3
|
||||
#569 Fixed swap function for circular_buffer_ext
|
||||
#568 Fixed circular_buffer iterator -> operators
|
||||
Optimised container move for external buffers
|
||||
Added functions and macros to etl::debug_count
|
||||
Added tests for error handler macros
|
||||
|
||||
===============================================================================
|
||||
20.31.2
|
||||
#567 error-handler: only return when the condition is false
|
||||
|
||||
33
test/etl_error_handler/exceptions/CMakeLists.txt
Normal file
33
test/etl_error_handler/exceptions/CMakeLists.txt
Normal file
@ -0,0 +1,33 @@
|
||||
cmake_minimum_required(VERSION 3.5.0)
|
||||
project(etl_error_handler_unit_tests)
|
||||
|
||||
add_definitions(-DETL_DEBUG)
|
||||
add_definitions(-DETL_THROW_EXCEPTIONS)
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/../../../include)
|
||||
|
||||
set(TEST_SOURCE_FILES
|
||||
test_error_handler.cpp
|
||||
)
|
||||
|
||||
add_executable(etl_tests
|
||||
${TEST_SOURCE_FILES}
|
||||
)
|
||||
|
||||
target_include_directories(etl_tests
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR}
|
||||
)
|
||||
|
||||
# Enable the 'make test' CMake target using the executable defined above
|
||||
add_test(etl_error_handler_unit_tests etl_tests)
|
||||
|
||||
# Since ctest will only show you the results of the single executable
|
||||
# define a target that will output all of the failing or passing tests
|
||||
# as they appear from UnitTest++
|
||||
add_custom_target(test_verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
|
||||
|
||||
|
||||
#RSG
|
||||
set_property(TARGET etl_tests PROPERTY CXX_STANDARD 17)
|
||||
|
||||
0
test/etl_error_handler/exceptions/etl_profile.h
Normal file
0
test/etl_error_handler/exceptions/etl_profile.h
Normal file
223
test/etl_error_handler/exceptions/test_error_handler.cpp
Normal file
223
test/etl_error_handler/exceptions/test_error_handler.cpp
Normal file
@ -0,0 +1,223 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/std
|
||||
https://www.etlcpp.com
|
||||
|
||||
Copyright(c) 2022 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.
|
||||
******************************************************************************/
|
||||
|
||||
#include "etl/error_handler.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
|
||||
//*****************************************************************************
|
||||
int exception_count = 0;
|
||||
int return_count = 0;
|
||||
|
||||
//*****************************************************************************
|
||||
class test_exception : public etl::exception
|
||||
{
|
||||
public:
|
||||
|
||||
test_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
|
||||
: exception(reason_, file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
class test_exception_1 : public test_exception
|
||||
{
|
||||
public:
|
||||
|
||||
test_exception_1(string_type file_name_, numeric_type line_number_)
|
||||
: test_exception(ETL_ERROR_TEXT("Test Exception 1", "1A"), file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
void Assert(bool state)
|
||||
{
|
||||
ETL_ASSERT(state, ETL_ERROR(test_exception_1));
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertFail()
|
||||
{
|
||||
ETL_ASSERT_FAIL(ETL_ERROR(test_exception_1));
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertAndReturn(bool state)
|
||||
{
|
||||
ETL_ASSERT_AND_RETURN(state, ETL_ERROR(test_exception_1));
|
||||
|
||||
++return_count;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertFailAndReturn()
|
||||
{
|
||||
ETL_ASSERT_FAIL_AND_RETURN(ETL_ERROR(test_exception_1));
|
||||
|
||||
++return_count;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
bool AssertAndReturnValue(bool state)
|
||||
{
|
||||
ETL_ASSERT_AND_RETURN_VALUE(state, ETL_ERROR(test_exception_1), true);
|
||||
|
||||
++return_count;
|
||||
return false;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
bool AssertFailAndReturnValue()
|
||||
{
|
||||
ETL_ASSERT_FAIL_AND_RETURN_VALUE(ETL_ERROR(test_exception_1), true);
|
||||
|
||||
++return_count;
|
||||
return false;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
int main()
|
||||
{
|
||||
try
|
||||
{
|
||||
Assert(false);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Assert(true);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertFail();
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertAndReturn(false);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertAndReturn(true);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertFailAndReturn();
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (AssertAndReturnValue(false))
|
||||
{
|
||||
++return_count;
|
||||
}
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (AssertAndReturnValue(true))
|
||||
{
|
||||
++return_count;
|
||||
}
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (AssertFailAndReturnValue())
|
||||
{
|
||||
++return_count;
|
||||
}
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
bool exception_count_passed = (exception_count == 6);
|
||||
|
||||
if (exception_count_passed)
|
||||
{
|
||||
std::cout << "Exception Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Exception Count Failed\n";
|
||||
}
|
||||
|
||||
bool return_count_passed = (return_count == 2);
|
||||
|
||||
if (return_count_passed)
|
||||
{
|
||||
std::cout << "Return Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Return Count Failed\n";
|
||||
}
|
||||
|
||||
return (exception_count_passed && return_count_passed) ? 0 : 1;
|
||||
}
|
||||
|
||||
33
test/etl_error_handler/log_errors/CMakeLists.txt
Normal file
33
test/etl_error_handler/log_errors/CMakeLists.txt
Normal file
@ -0,0 +1,33 @@
|
||||
cmake_minimum_required(VERSION 3.5.0)
|
||||
project(etl_error_handler_unit_tests)
|
||||
|
||||
add_definitions(-DETL_DEBUG)
|
||||
add_definitions(-DETL_LOG_ERRORS)
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/../../../include)
|
||||
|
||||
set(TEST_SOURCE_FILES
|
||||
test_error_handler.cpp
|
||||
)
|
||||
|
||||
add_executable(etl_tests
|
||||
${TEST_SOURCE_FILES}
|
||||
)
|
||||
|
||||
target_include_directories(etl_tests
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR}
|
||||
)
|
||||
|
||||
# Enable the 'make test' CMake target using the executable defined above
|
||||
add_test(etl_error_handler_unit_tests etl_tests)
|
||||
|
||||
# Since ctest will only show you the results of the single executable
|
||||
# define a target that will output all of the failing or passing tests
|
||||
# as they appear from UnitTest++
|
||||
add_custom_target(test_verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
|
||||
|
||||
|
||||
#RSG
|
||||
set_property(TARGET etl_tests PROPERTY CXX_STANDARD 17)
|
||||
|
||||
0
test/etl_error_handler/log_errors/etl_profile.h
Normal file
0
test/etl_error_handler/log_errors/etl_profile.h
Normal file
176
test/etl_error_handler/log_errors/test_error_handler.cpp
Normal file
176
test/etl_error_handler/log_errors/test_error_handler.cpp
Normal file
@ -0,0 +1,176 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/std
|
||||
https://www.etlcpp.com
|
||||
|
||||
Copyright(c) 2022 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.
|
||||
******************************************************************************/
|
||||
|
||||
#include "etl/error_handler.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
|
||||
etl::error_handler eh;
|
||||
|
||||
//*****************************************************************************
|
||||
struct ErrorLog
|
||||
{
|
||||
ErrorLog()
|
||||
: log_count(0)
|
||||
{
|
||||
}
|
||||
|
||||
void Log(const etl::exception& e)
|
||||
{
|
||||
++log_count;
|
||||
}
|
||||
|
||||
int log_count;
|
||||
};
|
||||
|
||||
int assert_return_count = 0;
|
||||
|
||||
//*****************************************************************************
|
||||
class test_exception : public etl::exception
|
||||
{
|
||||
public:
|
||||
|
||||
test_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
|
||||
: exception(reason_, file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
class test_exception_1 : public test_exception
|
||||
{
|
||||
public:
|
||||
|
||||
test_exception_1(string_type file_name_, numeric_type line_number_)
|
||||
: test_exception(ETL_ERROR_TEXT("Test Exception 1", "1A"), file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
void Assert(bool state)
|
||||
{
|
||||
ETL_ASSERT(state, ETL_ERROR(test_exception_1));
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertFail()
|
||||
{
|
||||
ETL_ASSERT_FAIL(ETL_ERROR(test_exception_1));
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertAndReturn(bool state)
|
||||
{
|
||||
ETL_ASSERT_AND_RETURN(state, ETL_ERROR(test_exception_1));
|
||||
|
||||
++assert_return_count;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertFailAndReturn()
|
||||
{
|
||||
ETL_ASSERT_FAIL_AND_RETURN(ETL_ERROR(test_exception_1));
|
||||
|
||||
++assert_return_count;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
bool AssertAndReturnValue(bool state)
|
||||
{
|
||||
ETL_ASSERT_AND_RETURN_VALUE(state, ETL_ERROR(test_exception_1), true);
|
||||
|
||||
++assert_return_count;
|
||||
return false;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
bool AssertFailAndReturnValue()
|
||||
{
|
||||
ETL_ASSERT_FAIL_AND_RETURN_VALUE(ETL_ERROR(test_exception_1), true);
|
||||
|
||||
++assert_return_count;
|
||||
return false;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
int main()
|
||||
{
|
||||
static ErrorLog error_log;
|
||||
|
||||
etl::error_handler::set_callback<ErrorLog, &ErrorLog::Log>(error_log);
|
||||
|
||||
Assert(false);
|
||||
Assert(true);
|
||||
AssertFail();
|
||||
|
||||
AssertAndReturn(false);
|
||||
AssertAndReturn(true);
|
||||
AssertFailAndReturn();
|
||||
|
||||
if (AssertAndReturnValue(false))
|
||||
{
|
||||
++assert_return_count;
|
||||
}
|
||||
|
||||
if (AssertAndReturnValue(true))
|
||||
{
|
||||
++assert_return_count;
|
||||
}
|
||||
|
||||
if (AssertFailAndReturnValue())
|
||||
{
|
||||
++assert_return_count;
|
||||
}
|
||||
|
||||
bool log_count_passed = (error_log.log_count == 6);
|
||||
|
||||
if (log_count_passed)
|
||||
{
|
||||
std::cout << "Log Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Log Count Failed\n";
|
||||
}
|
||||
|
||||
bool return_count_passed = (assert_return_count == 4);
|
||||
|
||||
if (return_count_passed)
|
||||
{
|
||||
std::cout << "Return Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Return Count Failed\n";
|
||||
}
|
||||
|
||||
return (log_count_passed && return_count_passed) ? 0 : 1;
|
||||
}
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
cmake_minimum_required(VERSION 3.5.0)
|
||||
project(etl_error_handler_unit_tests)
|
||||
|
||||
add_definitions(-DETL_DEBUG)
|
||||
add_definitions(-DETL_THROW_EXCEPTIONS)
|
||||
add_definitions(-DETL_LOG_ERRORS)
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/../../../include)
|
||||
|
||||
set(TEST_SOURCE_FILES
|
||||
test_error_handler.cpp
|
||||
)
|
||||
|
||||
add_executable(etl_tests
|
||||
${TEST_SOURCE_FILES}
|
||||
)
|
||||
|
||||
target_include_directories(etl_tests
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR}
|
||||
)
|
||||
|
||||
# Enable the 'make test' CMake target using the executable defined above
|
||||
add_test(etl_error_handler_unit_tests etl_tests)
|
||||
|
||||
# Since ctest will only show you the results of the single executable
|
||||
# define a target that will output all of the failing or passing tests
|
||||
# as they appear from UnitTest++
|
||||
add_custom_target(test_verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
|
||||
|
||||
|
||||
#RSG
|
||||
set_property(TARGET etl_tests PROPERTY CXX_STANDARD 17)
|
||||
|
||||
@ -0,0 +1,246 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/std
|
||||
https://www.etlcpp.com
|
||||
|
||||
Copyright(c) 2022 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.
|
||||
******************************************************************************/
|
||||
|
||||
#include "etl/error_handler.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
|
||||
etl::error_handler eh;
|
||||
|
||||
//*****************************************************************************
|
||||
struct ErrorLog
|
||||
{
|
||||
ErrorLog()
|
||||
: log_count(0)
|
||||
{
|
||||
}
|
||||
|
||||
void Log(const etl::exception& e)
|
||||
{
|
||||
++log_count;
|
||||
}
|
||||
|
||||
int log_count;
|
||||
};
|
||||
|
||||
int exception_count = 0;
|
||||
int return_count = 0;
|
||||
|
||||
//*****************************************************************************
|
||||
class test_exception : public etl::exception
|
||||
{
|
||||
public:
|
||||
|
||||
test_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
|
||||
: exception(reason_, file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
class test_exception_1 : public test_exception
|
||||
{
|
||||
public:
|
||||
|
||||
test_exception_1(string_type file_name_, numeric_type line_number_)
|
||||
: test_exception(ETL_ERROR_TEXT("Test Exception 1", "1A"), file_name_, line_number_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
void Assert(bool state)
|
||||
{
|
||||
ETL_ASSERT(state, ETL_ERROR(test_exception_1));
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertFail()
|
||||
{
|
||||
ETL_ASSERT_FAIL(ETL_ERROR(test_exception_1));
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertAndReturn(bool state)
|
||||
{
|
||||
ETL_ASSERT_AND_RETURN(state, ETL_ERROR(test_exception_1));
|
||||
|
||||
++return_count;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
void AssertFailAndReturn()
|
||||
{
|
||||
ETL_ASSERT_FAIL_AND_RETURN(ETL_ERROR(test_exception_1));
|
||||
|
||||
++return_count;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
bool AssertAndReturnValue(bool state)
|
||||
{
|
||||
ETL_ASSERT_AND_RETURN_VALUE(state, ETL_ERROR(test_exception_1), true);
|
||||
|
||||
++return_count;
|
||||
return false;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
bool AssertFailAndReturnValue()
|
||||
{
|
||||
ETL_ASSERT_FAIL_AND_RETURN_VALUE(ETL_ERROR(test_exception_1), true);
|
||||
|
||||
++return_count;
|
||||
return false;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
int main()
|
||||
{
|
||||
ErrorLog error_log;
|
||||
|
||||
etl::error_handler::set_callback<ErrorLog, &ErrorLog::Log>(error_log);
|
||||
|
||||
try
|
||||
{
|
||||
Assert(false);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Assert(true);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertFail();
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertAndReturn(false);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertAndReturn(true);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertFailAndReturn();
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertAndReturnValue(false);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertAndReturnValue(true);
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
AssertFailAndReturnValue();
|
||||
}
|
||||
catch (test_exception_1 e)
|
||||
{
|
||||
++exception_count;
|
||||
}
|
||||
|
||||
bool log_count_passed = (error_log.log_count == 6);
|
||||
|
||||
if (log_count_passed)
|
||||
{
|
||||
std::cout << "Log Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Log Count Failed\n";
|
||||
}
|
||||
|
||||
bool return_count_passed = (return_count == 2);
|
||||
|
||||
if (return_count_passed)
|
||||
{
|
||||
std::cout << "Return Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Return Count Failed\n";
|
||||
}
|
||||
|
||||
bool exception_count_passed = (exception_count == 6);
|
||||
|
||||
if (exception_count_passed)
|
||||
{
|
||||
std::cout << "Exception Count Passed\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Exception Count Failed\n";
|
||||
}
|
||||
|
||||
return (log_count_passed && return_count_passed && exception_count_passed) ? 0 : 1;
|
||||
}
|
||||
|
||||
145
test/runtests.sh
145
test/runtests.sh
@ -218,6 +218,151 @@ else
|
||||
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
echo " GCC - Error macros 'log_errors' test" | tee -a log.txt
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
cd ../../etl_error_handler/log_errors
|
||||
mkdir -p build-make || exit 1
|
||||
cd build-make || exit 1
|
||||
gcc --version | grep gcc | tee -a log.txt
|
||||
cmake --cmake-clean-cache -DCMAKE_CXX_COMPILER="g++" -DCMAKE_C_COMPILER="gcc" ..
|
||||
make -j8
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Error macros 'log_errors' Compilation >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
./etl_tests
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Tests >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
echo " GCC - Error macros 'exceptions' test" | tee -a log.txt
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
cd ../../../etl_error_handler/exceptions
|
||||
mkdir -p build-make || exit 1
|
||||
cd build-make || exit 1
|
||||
gcc --version | grep gcc | tee -a log.txt
|
||||
cmake --cmake-clean-cache -DCMAKE_CXX_COMPILER="g++" -DCMAKE_C_COMPILER="gcc" ..
|
||||
make -j8
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Error macros 'exceptions' Compilation >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
./etl_tests
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Tests >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
echo " GCC - Error macros 'log_errors and exceptions' test" | tee -a log.txt
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
cd ../../../etl_error_handler/log_errors_and_exceptions
|
||||
mkdir -p build-make || exit 1
|
||||
cd build-make || exit 1
|
||||
gcc --version | grep gcc | tee -a log.txt
|
||||
cmake --cmake-clean-cache -DCMAKE_CXX_COMPILER="g++" -DCMAKE_C_COMPILER="gcc" ..
|
||||
make -j8
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Error macros 'log_errors and exceptions' Compilation >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors and exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
./etl_tests
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Tests >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors and exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
echo " Clang - Error macros 'log_errors' test" | tee -a log.txt
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
cd ../../../etl_error_handler/log_errors
|
||||
mkdir -p build-make || exit 1
|
||||
cd build-make || exit 1
|
||||
clang --version | grep clang | tee -a log.txt
|
||||
cmake --cmake-clean-cache -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_C_COMPILER="clang" ..
|
||||
make -j8
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Error macros 'log_errors' Compilation >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
./etl_tests
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Tests >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
echo " Clang - Error macros 'exceptions' test" | tee -a log.txt
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
cd ../../../etl_error_handler/exceptions
|
||||
mkdir -p build-make || exit 1
|
||||
cd build-make || exit 1
|
||||
clang --version | grep clang | tee -a log.txt
|
||||
cmake --cmake-clean-cache -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_C_COMPILER="clang" ..
|
||||
make -j8
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Error macros 'exceptions' Compilation >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
./etl_tests
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Tests >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
echo " Clang - Error macros 'log_errors and exceptions' test" | tee -a log.txt
|
||||
echo "-----------------------------------------------" | tee -a log.txt
|
||||
cd ../../../etl_error_handler/log_errors_and_exceptions
|
||||
mkdir -p build-make || exit 1
|
||||
cd build-make || exit 1
|
||||
clang --version | grep clang | tee -a log.txt
|
||||
cmake --cmake-clean-cache -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_C_COMPILER="clang" ..
|
||||
make -j8
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Error macros 'log_errors and exceptions' Compilation >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors and exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
./etl_tests
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "<<<< Passed Tests >>>>"
|
||||
else
|
||||
echo "****************\n**** Failed Error macros 'log_errors and exceptions' ****\n****************" | tee -a ../log.txt
|
||||
exit $?
|
||||
fi
|
||||
|
||||
cd ../..
|
||||
|
||||
echo ""
|
||||
|
||||
@ -74,7 +74,6 @@ namespace
|
||||
Data data = { Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9") };
|
||||
Compare compare = { Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9") };
|
||||
|
||||
|
||||
CHECK(data.begin() != data.end());
|
||||
CHECK(data.cbegin() != data.cend());
|
||||
CHECK_EQUAL(compare.size(), data.size());
|
||||
@ -188,6 +187,48 @@ namespace
|
||||
CHECK(isEqual);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_iterator_to_pointer_operator)
|
||||
{
|
||||
Compare test{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9") };
|
||||
Data data;
|
||||
data.push(test.begin(), test.end());
|
||||
|
||||
Data::iterator itr = data.begin();
|
||||
|
||||
CHECK_EQUAL(test[0].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[1].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[2].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[3].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[4].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[5].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[6].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[7].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[8].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[9].value, (itr++)->value);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_const_iterator_to_pointer_operator)
|
||||
{
|
||||
Compare test{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9") };
|
||||
Data data;
|
||||
data.push(test.begin(), test.end());
|
||||
|
||||
Data::const_iterator itr = data.begin();
|
||||
|
||||
CHECK_EQUAL(test[0].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[1].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[2].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[3].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[4].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[5].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[6].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[7].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[8].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[9].value, (itr++)->value);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_push_full_range_reverse_iterator)
|
||||
{
|
||||
@ -894,18 +935,19 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST(test_swap)
|
||||
{
|
||||
// Over-write by 3
|
||||
Compare input{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9"), Ndc("10"), Ndc("11"), Ndc("12") };
|
||||
Compare output{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9"), Ndc("10"), Ndc("11"), Ndc("12") };
|
||||
Compare input1{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4") };
|
||||
Compare input2{ Ndc("7"), Ndc("8"), Ndc("9"), Ndc("10"), Ndc("11"), Ndc("12") };
|
||||
Data data1;
|
||||
Data data2;
|
||||
data1.push(input.begin(), input.end());
|
||||
data2.push(input.rbegin(), input.rend());
|
||||
data1.push(input1.begin(), input1.end());
|
||||
data2.push(input2.begin(), input2.end());
|
||||
|
||||
swap(data1, data2);
|
||||
|
||||
CHECK(std::equal(output.rbegin() + 3, output.rend(), data1.begin()));
|
||||
CHECK(std::equal(output.begin() + 3, output.end(), data2.begin()));
|
||||
CHECK_EQUAL(input1.size(), data2.size());
|
||||
CHECK_EQUAL(input2.size(), data1.size());
|
||||
CHECK(std::equal(input1.begin(), input1.end(), data2.begin()));
|
||||
CHECK(std::equal(input2.begin(), input2.end(), data1.begin()));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
|
||||
@ -197,6 +197,48 @@ namespace
|
||||
CHECK(isEqual);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_iterator_to_pointer_operator)
|
||||
{
|
||||
Compare test{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9") };
|
||||
Data data(buffer1.raw, SIZE);
|
||||
data.push(test.begin(), test.end());
|
||||
|
||||
Data::iterator itr = data.begin();
|
||||
|
||||
CHECK_EQUAL(test[0].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[1].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[2].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[3].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[4].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[5].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[6].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[7].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[8].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[9].value, (itr++)->value);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_const_iterator_to_pointer_operator)
|
||||
{
|
||||
Compare test{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9") };
|
||||
Data data(buffer1.raw, SIZE);
|
||||
data.push(test.begin(), test.end());
|
||||
|
||||
Data::const_iterator itr = data.begin();
|
||||
|
||||
CHECK_EQUAL(test[0].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[1].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[2].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[3].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[4].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[5].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[6].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[7].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[8].value, (itr++)->value);
|
||||
CHECK_EQUAL(test[9].value, (itr++)->value);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_push_full_range_reverse_iterator)
|
||||
{
|
||||
@ -903,18 +945,22 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST(test_swap)
|
||||
{
|
||||
// Over-write by 3
|
||||
Compare input{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9"), Ndc("10"), Ndc("11"), Ndc("12") };
|
||||
Compare output{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4"), Ndc("5"), Ndc("6"), Ndc("7"), Ndc("8"), Ndc("9"), Ndc("10"), Ndc("11"), Ndc("12") };
|
||||
Data data1(buffer1.raw, SIZE);
|
||||
Data data2(buffer2.raw, SIZE);
|
||||
data1.push(input.begin(), input.end());
|
||||
data2.push(input.rbegin(), input.rend());
|
||||
etl::uninitialized_buffer_of<Ndc, 6U> buffer1;
|
||||
etl::uninitialized_buffer_of<Ndc, 7U> buffer2;
|
||||
|
||||
Compare input1{ Ndc("0"), Ndc("1"), Ndc("2"), Ndc("3"), Ndc("4") };
|
||||
Compare input2{ Ndc("7"), Ndc("8"), Ndc("9"), Ndc("10"), Ndc("11"), Ndc("12") };
|
||||
Data data1(buffer1.raw, 5U);
|
||||
Data data2(buffer2.raw, 6U);
|
||||
data1.push(input1.begin(), input1.end());
|
||||
data2.push(input2.begin(), input2.end());
|
||||
|
||||
swap(data1, data2);
|
||||
|
||||
CHECK(std::equal(output.rbegin() + 3, output.rend(), data1.begin()));
|
||||
CHECK(std::equal(output.begin() + 3, output.end(), data2.begin()));
|
||||
CHECK_EQUAL(input1.size(), data2.size());
|
||||
CHECK_EQUAL(input2.size(), data1.size());
|
||||
CHECK(std::equal(input1.begin(), input1.end(), data2.begin()));
|
||||
CHECK(std::equal(input2.begin(), input2.end(), data1.begin()));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
|
||||
@ -2655,6 +2655,90 @@
|
||||
<ClInclude Include="..\..\include\etl\wstring.h" />
|
||||
<ClInclude Include="..\..\include\etl\wstring_stream.h" />
|
||||
<ClInclude Include="..\data.h" />
|
||||
<ClInclude Include="..\etl_error_handler\exceptions\etl_profile.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\etl_error_handler\exceptions_and_log_errors\etl_profile.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\etl_error_handler\log_errors\etl_profile.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\etl_initializer_list\etl_profile.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
@ -2728,6 +2812,90 @@
|
||||
<ClInclude Include="..\unit_test_framework.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\etl_error_handler\exceptions\test_error_handler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\etl_error_handler\exceptions_and_log_errors\test_error_handler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\etl_error_handler\log_errors\test_error_handler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\etl_initializer_list\test_initializer_list.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
@ -11919,6 +12087,7 @@
|
||||
<None Include="..\..\library.properties" />
|
||||
<None Include="..\..\meson.build" />
|
||||
<None Include="..\..\README.md" />
|
||||
<None Include="..\..\scripts\generator_test.py" />
|
||||
<None Include="..\..\scripts\update_release.py" />
|
||||
<None Include="..\runsanitychecks.sh" />
|
||||
<None Include="..\runtests.sh" />
|
||||
@ -11930,6 +12099,90 @@
|
||||
<Text Include="..\..\todo.txt" />
|
||||
<Text Include="..\..\version.txt" />
|
||||
<Text Include="..\CMakeLists.txt" />
|
||||
<Text Include="..\etl_error_handler\exceptions\CMakeLists.txt">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</Text>
|
||||
<Text Include="..\etl_error_handler\exceptions_and_log_errors\CMakeLists.txt">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</Text>
|
||||
<Text Include="..\etl_error_handler\log_errors\CMakeLists.txt">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC C++20 - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MSVC Debug - No STL - Appveyor|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Constexpr Algorithms|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM C++20|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No Unit Tests|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No STL - Force Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug LLVM - No STL - Built-ins|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug64|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - String Truncation Is Error|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Clang|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug - No STL - Force No Advanced|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force cpp03|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel - No STL|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug Intel|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - No Checks|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Force C++03|Win32'">true</ExcludedFromBuild>
|
||||
</Text>
|
||||
<Text Include="..\etl_initializer_list\CMakeLists.txt">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug MSVC - Small Strings|Win32'">true</ExcludedFromBuild>
|
||||
@ -11978,4 +12231,4 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@ -205,6 +205,18 @@
|
||||
<Filter Include="Tests\Initializer List">
|
||||
<UniqueIdentifier>{0014395b-c658-4903-a15f-d21acb676d79}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tests\Error Handler">
|
||||
<UniqueIdentifier>{69ed2e1e-f009-4a1a-abf2-a9144142b533}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tests\Error Handler\Log Errors">
|
||||
<UniqueIdentifier>{78498646-3058-4d15-9d21-2243ca5d5cd4}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tests\Error Handler\Exceptions">
|
||||
<UniqueIdentifier>{19d7da41-01e8-4449-8b9b-14be81447752}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tests\Error Handler\Exceptions_And_Log_Errors">
|
||||
<UniqueIdentifier>{de372ec9-d193-4956-871f-065414a9d3be}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\etl\enum_type.h">
|
||||
@ -1290,6 +1302,15 @@
|
||||
<ClInclude Include="..\etl_initializer_list\etl_profile.h">
|
||||
<Filter>Tests\Initializer List</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\etl_error_handler\log_errors\etl_profile.h">
|
||||
<Filter>Tests\Error Handler\Log Errors</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\etl_error_handler\exceptions\etl_profile.h">
|
||||
<Filter>Tests\Error Handler\Exceptions</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\etl_error_handler\exceptions_and_log_errors\etl_profile.h">
|
||||
<Filter>Tests\Error Handler\Exceptions_And_Log_Errors</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\test_string_char.cpp">
|
||||
@ -3284,6 +3305,15 @@
|
||||
<ClCompile Include="..\etl_initializer_list\test_initializer_list.cpp">
|
||||
<Filter>Tests\Initializer List</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\etl_error_handler\log_errors\test_error_handler.cpp">
|
||||
<Filter>Tests\Error Handler\Log Errors</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\etl_error_handler\exceptions\test_error_handler.cpp">
|
||||
<Filter>Tests\Error Handler\Exceptions</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\etl_error_handler\exceptions_and_log_errors\test_error_handler.cpp">
|
||||
<Filter>Tests\Error Handler\Exceptions_And_Log_Errors</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\library.properties">
|
||||
@ -3388,6 +3418,9 @@
|
||||
<None Include="..\..\scripts\update_release.py">
|
||||
<Filter>Tests\Scripts</Filter>
|
||||
</None>
|
||||
<None Include="..\..\scripts\generator_test.py">
|
||||
<Filter>Tests\Scripts</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\..\support\Release notes.txt">
|
||||
@ -3423,6 +3456,15 @@
|
||||
<Text Include="..\etl_initializer_list\CMakeLists.txt">
|
||||
<Filter>Tests\Initializer List</Filter>
|
||||
</Text>
|
||||
<Text Include="..\etl_error_handler\log_errors\CMakeLists.txt">
|
||||
<Filter>Tests\Error Handler\Log Errors</Filter>
|
||||
</Text>
|
||||
<Text Include="..\etl_error_handler\exceptions\CMakeLists.txt">
|
||||
<Filter>Tests\Error Handler\Exceptions</Filter>
|
||||
</Text>
|
||||
<Text Include="..\etl_error_handler\exceptions_and_log_errors\CMakeLists.txt">
|
||||
<Filter>Tests\Error Handler\Exceptions_And_Log_Errors</Filter>
|
||||
</Text>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="..\..\etl.ico">
|
||||
|
||||
@ -1 +1 @@
|
||||
20.31.2
|
||||
20.31.3
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user