mirror of
https://github.com/ETLCPP/etl.git
synced 2026-11-09 22:59:47 +08:00
Merge branch 'development'
This commit is contained in:
commit
2d5b4618e6
205
alignment.h
205
alignment.h
@ -4,6 +4,7 @@
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
|
||||
Copyright(c) 2014 jwellbelove
|
||||
|
||||
@ -29,79 +30,163 @@ SOFTWARE.
|
||||
#ifndef __ETL_ALIGNEMENT__
|
||||
#define __ETL_ALIGNEMENT__
|
||||
|
||||
#include "type_traits.h"
|
||||
#include <stdint.h>
|
||||
|
||||
///\defgroup align_at align_at
|
||||
#include "type_traits.h"
|
||||
#include "static_assert.h"
|
||||
|
||||
///\defgroup alignment alignment
|
||||
/// Creates a variable of the specified type at the specified alignment.
|
||||
/// \ingroup utilities
|
||||
|
||||
#if !defined(COMPILER_IAR)
|
||||
|
||||
#if defined(COMPILER_MICROSOFT)
|
||||
#define ETL_ALIGNMENT_PRE(n) __declspec(align(n))
|
||||
#define ETL_ALIGNMENT_POST(n)
|
||||
#endif
|
||||
|
||||
#if defined(COMPILER_GCC)
|
||||
#define ETL_ALIGNMENT_PRE(n)
|
||||
#define ETL_ALIGNMENT_POST(n) __attribute__((aligned(n)))
|
||||
#endif
|
||||
|
||||
#if defined (COMPILER_KEIL)
|
||||
#define ETL_ALIGNMENT_PRE(n)
|
||||
#define ETL_ALIGNMENT_POST(n) __attribute__((aligned(n)))
|
||||
#endif
|
||||
|
||||
namespace etl
|
||||
{
|
||||
/// Template declaration.
|
||||
template <typename T, const size_t ALIGNMENT>
|
||||
struct align_at;
|
||||
|
||||
/// Align 1
|
||||
template <typename T>
|
||||
struct align_at<T, 1>
|
||||
{
|
||||
namespace __private_alignment__
|
||||
{
|
||||
ETL_ALIGNMENT_PRE(1) T value ETL_ALIGNMENT_POST(1);
|
||||
//***************************************************************************
|
||||
// Matcher.
|
||||
//***************************************************************************
|
||||
template <const bool IS_MATCH, const size_t ALIGNMENT, typename T1 = void, typename T2 = void, typename T3 = void, typename T4 = void, typename T5 = void, typename T6 = void, typename T7 = void, typename T8 = void>
|
||||
class type_with_alignment_matcher;
|
||||
|
||||
// Matching alignment.
|
||||
template <const size_t ALIGNMENT, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
|
||||
class type_with_alignment_matcher <true, ALIGNMENT, T1, T2, T3, T4, T5, T6, T7, T8>
|
||||
{
|
||||
public:
|
||||
|
||||
typedef T1 type;
|
||||
};
|
||||
|
||||
// Non-matching alignment.
|
||||
template <const size_t ALIGNMENT, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
|
||||
class type_with_alignment_matcher <false, ALIGNMENT, T1, T2, T3, T4, T5, T6, T7, T8>
|
||||
{
|
||||
public:
|
||||
|
||||
typedef typename type_with_alignment_matcher<ALIGNMENT == etl::alignment_of<T2>::value, ALIGNMENT, T2, T3, T4, T5, T6, T7, T8, void>::type type;
|
||||
};
|
||||
|
||||
// Non-matching alignment, non left.
|
||||
template <const size_t ALIGNMENT>
|
||||
class type_with_alignment_matcher <false, ALIGNMENT, void, void, void, void, void, void, void, void>
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
// Helper.
|
||||
//***************************************************************************
|
||||
template <const size_t ALIGNMENT, typename T1, typename T2 = void, typename T3 = void, typename T4 = void, typename T5 = void, typename T6 = void, typename T7 = void, typename T8 = void>
|
||||
class type_with_alignment_helper
|
||||
{
|
||||
public:
|
||||
|
||||
typedef typename type_with_alignment_matcher<ALIGNMENT == etl::alignment_of<T1>::value, ALIGNMENT, T1, T2, T3, T4, T5, T6, T7, T8>::type type;
|
||||
};
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Gets a type that has the same as the specified alignment.
|
||||
///\ingroup alignment
|
||||
//***************************************************************************
|
||||
template <const size_t ALIGNMENT>
|
||||
class type_with_alignment
|
||||
{
|
||||
public:
|
||||
|
||||
typedef typename __private_alignment__::type_with_alignment_helper<ALIGNMENT, int8_t, int16_t, int32_t, int64_t, float, double, void*>::type type;
|
||||
};
|
||||
|
||||
/// Align 2
|
||||
template <typename T>
|
||||
struct align_at<T, 2>
|
||||
//***************************************************************************
|
||||
/// Aligned storage
|
||||
///\ingroup alignment
|
||||
//***************************************************************************
|
||||
template <const size_t LENGTH, const size_t ALIGNMENT>
|
||||
struct aligned_storage
|
||||
{
|
||||
ETL_ALIGNMENT_PRE(2) T value ETL_ALIGNMENT_POST(2);
|
||||
struct type
|
||||
{
|
||||
/// Convert to T reference.
|
||||
template <typename T>
|
||||
operator T& ()
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<T&>(*data);
|
||||
}
|
||||
|
||||
/// Convert to const T reference.
|
||||
template <typename T>
|
||||
operator const T& () const
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<const T&>(*data);
|
||||
}
|
||||
|
||||
/// Convert to T pointer.
|
||||
template <typename T>
|
||||
operator T* ()
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<T*>(data);
|
||||
}
|
||||
|
||||
/// Convert to const T pointer.
|
||||
template <typename T>
|
||||
operator const T* () const
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<const T*>(data);
|
||||
}
|
||||
|
||||
/// Get address as T reference.
|
||||
template <typename T>
|
||||
T& get_reference()
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<T&>(*data);
|
||||
}
|
||||
|
||||
/// Get address as const T reference.
|
||||
template <typename T>
|
||||
const T& get_reference() const
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<const T&>(*data);
|
||||
}
|
||||
|
||||
/// Get address as T pointer.
|
||||
template <typename T>
|
||||
T* get_address()
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<T*>(data);
|
||||
}
|
||||
|
||||
/// Get address as const T pointer.
|
||||
template <typename T>
|
||||
const T* get_address() const
|
||||
{
|
||||
STATIC_ASSERT(ALIGNMENT % etl::alignment_of<T>::value == 0, "Incompatible alignment");
|
||||
return reinterpret_cast<const T*>(data);
|
||||
}
|
||||
|
||||
union
|
||||
{
|
||||
uint8_t data[LENGTH];
|
||||
typename etl::type_with_alignment<ALIGNMENT>::type __etl_alignment_type__; // A POD type that has the same alignment as ALIGNMENT.
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/// Align 4
|
||||
template <typename T>
|
||||
struct align_at<T, 4>
|
||||
{
|
||||
ETL_ALIGNMENT_PRE(4) T value ETL_ALIGNMENT_POST(4);
|
||||
};
|
||||
|
||||
/// Align 8
|
||||
template <typename T>
|
||||
struct align_at<T, 8>
|
||||
{
|
||||
ETL_ALIGNMENT_PRE(8) T value ETL_ALIGNMENT_POST(8);
|
||||
};
|
||||
|
||||
/// Align 16
|
||||
template <typename T>
|
||||
struct align_at<T, 16>
|
||||
{
|
||||
ETL_ALIGNMENT_PRE(16) T value ETL_ALIGNMENT_POST(16);
|
||||
};
|
||||
|
||||
/// Align As
|
||||
template <typename TValue, typename TAlign>
|
||||
struct align_as : public align_at<TValue, etl::alignment_of<TAlign>::value>
|
||||
//***************************************************************************
|
||||
/// Aligned storage as
|
||||
///\ingroup alignment
|
||||
//***************************************************************************
|
||||
template <const size_t LENGTH, typename T>
|
||||
struct aligned_storage_as : public etl::aligned_storage<LENGTH, etl::alignment_of<T>::value>
|
||||
{
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
||||
#undef ETL_ALIGNMENT_PRE
|
||||
#undef ETL_ALIGNMENT_POST
|
||||
|
||||
#endif
|
||||
|
||||
4
binary.h
4
binary.h
@ -300,7 +300,7 @@ namespace etl
|
||||
static const int S[] = { 1, 2, 4 };
|
||||
static const int B[] = { 0x55, 0x33, 0x0F };
|
||||
|
||||
count = v - ((v >> 1) & B[0]);
|
||||
count = value - ((value >> 1) & B[0]);
|
||||
count = ((count >> S[1]) & B[1]) + (count & B[1]);
|
||||
count = ((count >> S[2]) + count) & B[2];
|
||||
|
||||
@ -318,7 +318,7 @@ namespace etl
|
||||
static const int S[] = { 1, 2, 4, 8 };
|
||||
static const int B[] = { 0x5555, 0x3333, 0x0F0F, 0x00FF };
|
||||
|
||||
count = v - ((v >> 1) & B[0]);
|
||||
count = value - ((value >> 1) & B[0]);
|
||||
count = ((count >> S[1]) & B[1]) + (count & B[1]);
|
||||
count = ((count >> S[2]) + count) & B[2];
|
||||
count = ((count >> S[3]) + count) & B[3];
|
||||
|
||||
98
bitset.h
98
bitset.h
@ -42,6 +42,7 @@ SOFTWARE.
|
||||
#include "nullptr.h"
|
||||
#include "log.h"
|
||||
#include "ibitset.h"
|
||||
#include "binary.h"
|
||||
|
||||
#if WIN32
|
||||
#undef min
|
||||
@ -70,21 +71,21 @@ namespace etl
|
||||
class bitset : public ibitset
|
||||
{
|
||||
// The type used for each element in the array.
|
||||
typedef typename smallest_uint_for_bits<N>::type element_type;
|
||||
typedef typename smallest_uint_for_bits<N>::type element_t;
|
||||
|
||||
static const element_type ALL_SET = etl::integral_limits<element_type>::max;
|
||||
static const element_type ALL_CLEAR = 0;
|
||||
static const size_t BITS_PER_ELEMENT = etl::integral_limits<element_type>::bits;
|
||||
static const size_t ARRAY_SIZE = (N % BITS_PER_ELEMENT == 0) ? N / BITS_PER_ELEMENT : N / BITS_PER_ELEMENT + 1;
|
||||
static const element_t ALL_SET = etl::integral_limits<element_t>::max;
|
||||
static const element_t ALL_CLEAR = 0;
|
||||
static const size_t BITS_PER_ELEMENT = etl::integral_limits<element_t>::bits;
|
||||
static const size_t ARRAY_SIZE = (N % BITS_PER_ELEMENT == 0) ? N / BITS_PER_ELEMENT : N / BITS_PER_ELEMENT + 1;
|
||||
|
||||
public:
|
||||
|
||||
static const size_t TOTAL_BITS = ARRAY_SIZE * BITS_PER_ELEMENT;
|
||||
static const size_t TOTAL_BITS = ARRAY_SIZE * BITS_PER_ELEMENT;
|
||||
|
||||
private:
|
||||
|
||||
static const size_t TOP_MASK_SHIFT = ((BITS_PER_ELEMENT - (TOTAL_BITS - N)) % BITS_PER_ELEMENT);
|
||||
static const element_type TOP_MASK = element_type(TOP_MASK_SHIFT == 0 ? ALL_SET : ~(ALL_SET << TOP_MASK_SHIFT));
|
||||
static const size_t TOP_MASK_SHIFT = ((BITS_PER_ELEMENT - (TOTAL_BITS - N)) % BITS_PER_ELEMENT);
|
||||
static const element_t TOP_MASK = element_t(TOP_MASK_SHIFT == 0 ? ALL_SET : ~(ALL_SET << TOP_MASK_SHIFT));
|
||||
|
||||
public:
|
||||
|
||||
@ -588,7 +589,7 @@ namespace etl
|
||||
// Can we do it in one hit?
|
||||
if (SHIFT == 0)
|
||||
{
|
||||
data[0] = element_type(value);
|
||||
data[0] = element_t(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -637,18 +638,18 @@ namespace etl
|
||||
{
|
||||
if (position < N)
|
||||
{
|
||||
size_t index;
|
||||
element_type bit;
|
||||
size_t index;
|
||||
element_t bit;
|
||||
|
||||
if (ARRAY_SIZE == 1)
|
||||
{
|
||||
index = 0;
|
||||
bit = element_type(1) << position;
|
||||
bit = element_t(1) << position;
|
||||
}
|
||||
else
|
||||
{
|
||||
index = position >> log2<BITS_PER_ELEMENT>::value;
|
||||
bit = element_type(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
bit = element_t(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
}
|
||||
|
||||
if (value)
|
||||
@ -698,17 +699,17 @@ namespace etl
|
||||
if (position < N)
|
||||
{
|
||||
size_t index;
|
||||
element_type bit;
|
||||
element_t bit;
|
||||
|
||||
if (ARRAY_SIZE == 1)
|
||||
{
|
||||
index = 0;
|
||||
bit = element_type(1) << position;
|
||||
bit = element_t(1) << position;
|
||||
}
|
||||
else
|
||||
{
|
||||
index = position >> log2<BITS_PER_ELEMENT>::value;
|
||||
bit = element_type(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
bit = element_t(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
}
|
||||
|
||||
data[index] &= ~bit;
|
||||
@ -739,18 +740,18 @@ namespace etl
|
||||
{
|
||||
if (position < N)
|
||||
{
|
||||
size_t index;
|
||||
element_type bit;
|
||||
size_t index;
|
||||
element_t bit;
|
||||
|
||||
if (ARRAY_SIZE == 1)
|
||||
{
|
||||
index = 0;
|
||||
bit = element_type(1) << position;
|
||||
bit = element_t(1) << position;
|
||||
}
|
||||
else
|
||||
{
|
||||
index = position >> log2<BITS_PER_ELEMENT>::value;
|
||||
bit = element_type(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
bit = element_t(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
}
|
||||
|
||||
data[index] ^= bit;
|
||||
@ -784,17 +785,17 @@ namespace etl
|
||||
if (position < N)
|
||||
{
|
||||
size_t index;
|
||||
element_type mask;
|
||||
element_t mask;
|
||||
|
||||
if (ARRAY_SIZE == 1)
|
||||
{
|
||||
index = 0;
|
||||
mask = element_type(1) << position;
|
||||
mask = element_t(1) << position;
|
||||
}
|
||||
else
|
||||
{
|
||||
index = position >> log2<BITS_PER_ELEMENT>::value;
|
||||
mask = element_type(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
mask = element_t(1) << (position & (BITS_PER_ELEMENT - 1));
|
||||
}
|
||||
|
||||
return (data[index] & mask) != 0;
|
||||
@ -837,7 +838,7 @@ namespace etl
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Are none of th bits set?
|
||||
/// Are none of the bits set?
|
||||
//*************************************************************************
|
||||
bool none() const
|
||||
{
|
||||
@ -861,13 +862,7 @@ namespace etl
|
||||
|
||||
for (size_t i = 0; i < ARRAY_SIZE; ++i)
|
||||
{
|
||||
element_type value = data[i];
|
||||
|
||||
while (value != 0)
|
||||
{
|
||||
n += (value & 1);
|
||||
value >>= 1;
|
||||
}
|
||||
n += etl::count_bits(data[i]);
|
||||
}
|
||||
|
||||
return n;
|
||||
@ -914,24 +909,35 @@ namespace etl
|
||||
bit = position & (BITS_PER_ELEMENT - 1);
|
||||
}
|
||||
|
||||
element_type mask = 1 << bit;
|
||||
element_t mask = 1 << bit;
|
||||
|
||||
// For each element in the bitset...
|
||||
while (index < ARRAY_SIZE)
|
||||
{
|
||||
// For each bit in the element...
|
||||
while ((bit < BITS_PER_ELEMENT) && (position != N))
|
||||
{
|
||||
// Equal to the required state?
|
||||
if (((data[index] & mask) != 0) == state)
|
||||
{
|
||||
return position;
|
||||
}
|
||||
element_t value = data[index];
|
||||
|
||||
// Move on to the next bit.
|
||||
mask <<= 1;
|
||||
++position;
|
||||
++bit;
|
||||
// Needs checking?
|
||||
if (( state && (value != ALL_CLEAR)) ||
|
||||
(!state && (value != ALL_SET)))
|
||||
{
|
||||
// For each bit in the element...
|
||||
while ((bit < BITS_PER_ELEMENT) && (position < N))
|
||||
{
|
||||
// Equal to the required state?
|
||||
if (((value & mask) != 0) == state)
|
||||
{
|
||||
return position;
|
||||
}
|
||||
|
||||
// Move on to the next bit.
|
||||
mask <<= 1;
|
||||
++position;
|
||||
++bit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
position += BITS_PER_ELEMENT;
|
||||
}
|
||||
|
||||
// Start at the beginning for all other elements.
|
||||
@ -941,7 +947,7 @@ namespace etl
|
||||
++index;
|
||||
}
|
||||
|
||||
return N;
|
||||
return ibitset::npos;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -1179,7 +1185,7 @@ namespace etl
|
||||
|
||||
private:
|
||||
|
||||
etl::array<element_type, ARRAY_SIZE> data;
|
||||
etl::array<element_t, ARRAY_SIZE> data;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
|
||||
10
deque.h
10
deque.h
@ -80,7 +80,7 @@ namespace etl
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
deque()
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
{
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ namespace etl
|
||||
/// Copy constructor.
|
||||
//*************************************************************************
|
||||
deque(const deque& other)
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
{
|
||||
ideque<T>::assign(other.begin(), other.end());
|
||||
}
|
||||
@ -98,7 +98,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
template <typename TIterator>
|
||||
deque(TIterator begin, TIterator end)
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
{
|
||||
ideque<T>::assign(begin, end);
|
||||
}
|
||||
@ -107,7 +107,7 @@ namespace etl
|
||||
/// Assigns data to the deque.
|
||||
//*************************************************************************
|
||||
explicit deque(size_t n, typename ideque<T>::parameter_t value = value_type())
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
: ideque<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE, BUFFER_SIZE)
|
||||
{
|
||||
ideque<T>::assign(n, value);
|
||||
}
|
||||
@ -128,7 +128,7 @@ namespace etl
|
||||
private:
|
||||
|
||||
/// The unititialised buffer of T used in the deque.
|
||||
etl::align_as<array<uint8_t, BUFFER_SIZE * sizeof(T)>, T> buffer;
|
||||
typename etl::aligned_storage<sizeof(T), etl::alignment_of<T>::value>::type buffer[BUFFER_SIZE];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -70,6 +70,15 @@ namespace etl
|
||||
{
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Copy constructor.
|
||||
//*************************************************************************
|
||||
flat_map(const flat_map& other)
|
||||
: iflat_map<TKey, TValue, TCompare>(buffer)
|
||||
{
|
||||
iflat_map<TKey, TValue, TCompare>::assign(other.cbegin(), other.cend());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Constructor, from an iterator range.
|
||||
///\tparam TIterator The iterator type.
|
||||
|
||||
@ -69,6 +69,15 @@ namespace etl
|
||||
{
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Copy constructor.
|
||||
//*************************************************************************
|
||||
flat_set(const flat_set& other)
|
||||
: iflat_set<T, TCompare>(buffer)
|
||||
{
|
||||
iflat_set<T, TCompare>::assign(other.cbegin(), other.cend());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Constructor, from an iterator range.
|
||||
///\tparam TIterator The iterator type.
|
||||
|
||||
@ -30,6 +30,8 @@ SOFTWARE.
|
||||
#ifndef __ETL_IBITSET__
|
||||
#define __ETL_IBITSET__
|
||||
|
||||
#include "integral_limits.h"
|
||||
|
||||
namespace etl
|
||||
{
|
||||
//*************************************************************************
|
||||
@ -40,6 +42,11 @@ namespace etl
|
||||
{
|
||||
public:
|
||||
|
||||
enum
|
||||
{
|
||||
npos = etl::integral_limits<size_t>::max
|
||||
};
|
||||
|
||||
//*************************************************************************
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
|
||||
30
iflat_map.h
30
iflat_map.h
@ -81,7 +81,7 @@ namespace etl
|
||||
typedef typename std::iterator_traits<iterator>::difference_type difference_type;
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
typedef typename parameter_type<TKey>::type key_value_parameter_t;
|
||||
|
||||
private:
|
||||
@ -106,19 +106,6 @@ namespace etl
|
||||
|
||||
public:
|
||||
|
||||
//*********************************************************************
|
||||
/// Assignment operator.
|
||||
/// The source flat_map can be larger than the destination, but
|
||||
/// only the elements that will fit in the destination will be copied.
|
||||
///\param other The other flat_map.
|
||||
//*********************************************************************
|
||||
iflat_map& operator = (iflat_map& other)
|
||||
{
|
||||
buffer.operator=(other.buffer);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns an iterator to the beginning of the flat_map.
|
||||
///\return An iterator to the beginning of the flat_map.
|
||||
@ -303,6 +290,19 @@ namespace etl
|
||||
template <typename TIterator>
|
||||
void assign(TIterator first, TIterator last)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
difference_type count = std::distance(first, last);
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw flat_map_iterator();
|
||||
#else
|
||||
error_handler::error(flat_map_iterator());
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
clear();
|
||||
|
||||
while (first != last)
|
||||
@ -499,7 +499,7 @@ namespace etl
|
||||
{
|
||||
return std::lower_bound(cbegin(), cend(), key, compare());
|
||||
}
|
||||
|
||||
|
||||
//*********************************************************************
|
||||
/// Finds the upper bound of a key
|
||||
///\param key The key to search for.
|
||||
|
||||
26
iflat_set.h
26
iflat_set.h
@ -82,19 +82,6 @@ namespace etl
|
||||
|
||||
public:
|
||||
|
||||
//*********************************************************************
|
||||
/// Assignment operator.
|
||||
/// The source flat_set can be larger than the destination, but
|
||||
/// only the elements that will fit in the destination will be copied.
|
||||
///\param other The other flat_set.
|
||||
//*********************************************************************
|
||||
iflat_set& operator = (iflat_set& other)
|
||||
{
|
||||
buffer.operator=(other.buffer);
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns an iterator to the beginning of the flat_set.
|
||||
///\return An iterator to the beginning of the flat_set.
|
||||
@ -213,6 +200,19 @@ namespace etl
|
||||
template <typename TIterator>
|
||||
void assign(TIterator first, TIterator last)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
difference_type count = std::distance(first, last);
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw flat_set_iterator();
|
||||
#else
|
||||
error_handler::error(flat_set_iterator());
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
clear();
|
||||
|
||||
while (first != last)
|
||||
|
||||
@ -376,6 +376,19 @@ namespace etl
|
||||
template <typename TIterator>
|
||||
void assign(TIterator first, TIterator last)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
difference_type count = std::distance(first, last);
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw forward_list_iterator();
|
||||
#else
|
||||
error_handler::error(forward_list_iterator());
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
initialise();
|
||||
|
||||
Node* p_last_node = &start_node;
|
||||
|
||||
13
ilist.h
13
ilist.h
@ -480,6 +480,19 @@ namespace etl
|
||||
template <typename TIterator>
|
||||
void assign(TIterator first, TIterator last)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
difference_type count = std::distance(first, last);
|
||||
|
||||
if (count < 0)
|
||||
{
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw list_iterator();
|
||||
#else
|
||||
error_handler::error(list_iterator());
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
initialise();
|
||||
|
||||
// Add all of the elements.
|
||||
|
||||
429
io_port.h
Normal file
429
io_port.h
Normal file
@ -0,0 +1,429 @@
|
||||
///\file
|
||||
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
|
||||
Copyright(c) 2014 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.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __ETL_IO_PORT__
|
||||
#define __ETL_IO_PORT__
|
||||
|
||||
///\defgroup io_port io port
|
||||
/// IO port access
|
||||
///\ingroup utilities
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "nullptr.h"
|
||||
#include "parameter_type.h"
|
||||
|
||||
namespace etl
|
||||
{
|
||||
//***************************************************************************
|
||||
/// Read write port.
|
||||
//***************************************************************************
|
||||
template <typename T, uintptr_t ADDRESS = 0>
|
||||
class io_port_rw
|
||||
{
|
||||
private:
|
||||
|
||||
typedef volatile T* pointer_t;
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
public:
|
||||
|
||||
/// Read.
|
||||
operator T() volatile const
|
||||
{
|
||||
return *reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
|
||||
/// Read.
|
||||
T value() volatile const
|
||||
{
|
||||
return *reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
|
||||
/// Write.
|
||||
io_port_rw& operator =(parameter_t value)
|
||||
{
|
||||
*reinterpret_cast<pointer_t>(ADDRESS) = value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Read only port.
|
||||
//***************************************************************************
|
||||
template <typename T, uintptr_t ADDRESS = 0>
|
||||
class io_port_ro
|
||||
{
|
||||
private:
|
||||
|
||||
typedef volatile const T* pointer_t;
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
/// Write disabled.
|
||||
void operator =(parameter_t value);
|
||||
|
||||
public:
|
||||
|
||||
/// Read.
|
||||
operator T() volatile const
|
||||
{
|
||||
return *reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
|
||||
/// Read.
|
||||
T value() volatile const
|
||||
{
|
||||
return *reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Write only port.
|
||||
//***************************************************************************
|
||||
template <typename T, uintptr_t ADDRESS = 0>
|
||||
class io_port_wo
|
||||
{
|
||||
private:
|
||||
|
||||
typedef T* pointer_t;
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
/// Read disabled.
|
||||
operator T() volatile const;
|
||||
|
||||
public:
|
||||
|
||||
/// Write.
|
||||
void operator =(parameter_t value)
|
||||
{
|
||||
*reinterpret_cast<pointer_t>(ADDRESS) = value;
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Write only port with shadow register.
|
||||
//***************************************************************************
|
||||
template <typename T, uintptr_t ADDRESS = 0>
|
||||
class io_port_wos
|
||||
{
|
||||
private:
|
||||
|
||||
typedef T* pointer_t;
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
public:
|
||||
|
||||
/// Read.
|
||||
operator T() const
|
||||
{
|
||||
return shadow_value;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
T value() const
|
||||
{
|
||||
return shadow_value;
|
||||
}
|
||||
|
||||
/// Write.
|
||||
io_port_wos& operator =(parameter_t value)
|
||||
{
|
||||
shadow_value = value;
|
||||
*reinterpret_cast<pointer_t>(ADDRESS) = shadow_value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return reinterpret_cast<pointer_t>(ADDRESS);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
T shadow_value;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Read write port.
|
||||
/// Specialisation for dynamic addresses.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
class io_port_rw<T, 0>
|
||||
{
|
||||
private:
|
||||
|
||||
typedef volatile T* pointer_t;
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
public:
|
||||
|
||||
// Default constructor.
|
||||
io_port_rw()
|
||||
: address(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
// Constructor.
|
||||
io_port_rw(uint8_t* address_)
|
||||
: address(reinterpret_cast<pointer_t>(address_))
|
||||
{
|
||||
}
|
||||
|
||||
/// Set the IO port address.
|
||||
void set_address(uintptr_t address_)
|
||||
{
|
||||
address = reinterpret_cast<pointer_t>(address_);
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
operator T() volatile const
|
||||
{
|
||||
return *address;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
T value() volatile const
|
||||
{
|
||||
return *address;
|
||||
}
|
||||
|
||||
/// Write.
|
||||
io_port_rw& operator =(parameter_t value)
|
||||
{
|
||||
*address = value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
pointer_t address;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Read only port.
|
||||
/// Specialisation for dynamic addresses.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
class io_port_ro<T, 0>
|
||||
{
|
||||
private:
|
||||
|
||||
typedef volatile const T* pointer_t;
|
||||
|
||||
public:
|
||||
|
||||
// Default constructor.
|
||||
io_port_ro()
|
||||
: address(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
// Constructor.
|
||||
io_port_ro(void* address_)
|
||||
: address(reinterpret_cast<pointer_t>(address_))
|
||||
{
|
||||
}
|
||||
|
||||
void set_address(uintptr_t address_)
|
||||
{
|
||||
address = reinterpret_cast<pointer_t>(address_);
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
operator T() volatile const
|
||||
{
|
||||
return *address;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
T value() volatile const
|
||||
{
|
||||
return *address;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
/// Write disabled.
|
||||
void operator =(parameter_t value);
|
||||
|
||||
pointer_t address;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Write only port.
|
||||
/// Specialisation for dynamic addresses.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
class io_port_wo<T, 0>
|
||||
{
|
||||
private:
|
||||
|
||||
typedef T* pointer_t;
|
||||
|
||||
public:
|
||||
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
// Default constructor.
|
||||
io_port_wo()
|
||||
: address(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
// Constructor.
|
||||
io_port_wo(void* address_)
|
||||
: address(reinterpret_cast<pointer_t>(address_))
|
||||
{
|
||||
}
|
||||
|
||||
/// Set the IO port address.
|
||||
void set_address(uintptr_t address_)
|
||||
{
|
||||
address = reinterpret_cast<pointer_t>(address_);
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
|
||||
/// Write.
|
||||
void operator =(parameter_t value)
|
||||
{
|
||||
*address = value;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/// Read disabled.
|
||||
operator T() volatile const;
|
||||
|
||||
pointer_t address;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Write only port with shadow register.
|
||||
/// Specialisation for dynamic addresses.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
class io_port_wos<T, 0>
|
||||
{
|
||||
private:
|
||||
|
||||
typedef T* pointer_t;
|
||||
typedef typename etl::parameter_type<T>::type parameter_t;
|
||||
|
||||
public:
|
||||
|
||||
// Default constructor.
|
||||
io_port_wos()
|
||||
: address(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
// Constructor.
|
||||
io_port_wos(void* address_)
|
||||
: address(reinterpret_cast<pointer_t>(address_))
|
||||
{
|
||||
}
|
||||
|
||||
/// Set the IO port address.
|
||||
void set_address(uintptr_t address_)
|
||||
{
|
||||
address = reinterpret_cast<pointer_t>(address_);
|
||||
}
|
||||
|
||||
/// Get the IO port address.
|
||||
pointer_t get_address()
|
||||
{
|
||||
return address;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
operator T() const
|
||||
{
|
||||
return shadow_value;
|
||||
}
|
||||
|
||||
/// Read.
|
||||
T value() const
|
||||
{
|
||||
return shadow_value;
|
||||
}
|
||||
|
||||
/// Write.
|
||||
io_port_wos& operator =(parameter_t value)
|
||||
{
|
||||
shadow_value = value;
|
||||
*address = shadow_value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
T shadow_value;
|
||||
pointer_t address;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
156
ipool.h
156
ipool.h
@ -57,6 +57,99 @@ namespace etl
|
||||
typedef const T& const_reference;
|
||||
typedef size_t size_type;
|
||||
|
||||
//*************************************************************************
|
||||
/// iterator
|
||||
//*************************************************************************
|
||||
class iterator : public std::iterator<std::forward_iterator_tag, const T>
|
||||
{
|
||||
public:
|
||||
|
||||
friend class ipool;
|
||||
friend class const_iterator;
|
||||
|
||||
//*******************************
|
||||
iterator()
|
||||
: index(0),
|
||||
p_buffer(nullptr),
|
||||
p_in_use_flags(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
//*******************************
|
||||
iterator(const iterator& other)
|
||||
: index(other.index),
|
||||
p_buffer(other.p_buffer),
|
||||
p_in_use_flags(other.p_in_use_flags)
|
||||
{
|
||||
}
|
||||
|
||||
//*******************************
|
||||
iterator& operator ++()
|
||||
{
|
||||
index = p_in_use_flags->find_next(true, index + 1);
|
||||
return *this;
|
||||
}
|
||||
|
||||
//*******************************
|
||||
iterator operator ++(int)
|
||||
{
|
||||
iterator temp(*this);
|
||||
index = p_in_use_flags->find_next(true, index + 1);
|
||||
return temp;
|
||||
}
|
||||
|
||||
//*******************************
|
||||
iterator operator =(const iterator& other)
|
||||
{
|
||||
index = other.index;
|
||||
p_buffer = other.p_buffer;
|
||||
p_in_use_flags = other.p_in_use_flags;
|
||||
return *this;
|
||||
}
|
||||
|
||||
//*******************************
|
||||
const_reference operator *() const
|
||||
{
|
||||
return p_buffer[index];
|
||||
}
|
||||
|
||||
//*******************************
|
||||
const_pointer operator ->() const
|
||||
{
|
||||
return &p_buffer[index];
|
||||
}
|
||||
|
||||
//*******************************
|
||||
friend bool operator == (const iterator& lhs, const iterator& rhs)
|
||||
{
|
||||
return (lhs.p_buffer == rhs.p_buffer) && (lhs.index == rhs.index);
|
||||
}
|
||||
|
||||
//*******************************
|
||||
friend bool operator != (const iterator& lhs, const iterator& rhs)
|
||||
{
|
||||
return !(lhs == rhs);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
//*******************************
|
||||
//*******************************
|
||||
iterator(size_t index,
|
||||
pointer p_buffer,
|
||||
const ibitset* p_in_use_flags)
|
||||
: index(index),
|
||||
p_buffer(p_buffer),
|
||||
p_in_use_flags(p_in_use_flags)
|
||||
{
|
||||
}
|
||||
|
||||
size_t index;
|
||||
pointer p_buffer;
|
||||
const ibitset* p_in_use_flags;
|
||||
};
|
||||
|
||||
|
||||
//*************************************************************************
|
||||
/// const_iterator
|
||||
//*************************************************************************
|
||||
@ -69,16 +162,24 @@ namespace etl
|
||||
//*******************************
|
||||
const_iterator()
|
||||
: index(0),
|
||||
p_buffer(p_buffer),
|
||||
p_in_use_flags(p_in_use_flags)
|
||||
p_buffer(nullptr),
|
||||
p_in_use_flags(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
//*******************************
|
||||
const_iterator(const const_iterator& other)
|
||||
: index(other.index),
|
||||
p_buffer(p_buffer),
|
||||
p_in_use_flags(p_in_use_flags)
|
||||
p_buffer(other.p_buffer),
|
||||
p_in_use_flags(other.p_in_use_flags)
|
||||
{
|
||||
}
|
||||
|
||||
//*******************************
|
||||
const_iterator(const typename ipool::iterator& other)
|
||||
: index(other.index),
|
||||
p_buffer(other.p_buffer),
|
||||
p_in_use_flags(other.p_in_use_flags)
|
||||
{
|
||||
}
|
||||
|
||||
@ -133,15 +234,6 @@ namespace etl
|
||||
private:
|
||||
|
||||
//*******************************
|
||||
const_iterator(const_pointer p_buffer,
|
||||
const ibitset* p_in_use_flags)
|
||||
: index(0),
|
||||
p_buffer(p_buffer),
|
||||
p_in_use_flags(p_in_use_flags)
|
||||
{
|
||||
index = p_in_use_flags->find_first(true);
|
||||
}
|
||||
|
||||
//*******************************
|
||||
const_iterator(size_t index,
|
||||
const_pointer p_buffer,
|
||||
@ -157,12 +249,38 @@ namespace etl
|
||||
const ibitset* p_in_use_flags;
|
||||
};
|
||||
|
||||
//*************************************************************************
|
||||
/// Get an iterator to the first allocated item in the pool.
|
||||
//*************************************************************************
|
||||
iterator begin()
|
||||
{
|
||||
size_t index = in_use_flags.find_first(true);
|
||||
|
||||
if (index != ibitset::npos)
|
||||
{
|
||||
return iterator(index, p_buffer, &in_use_flags);
|
||||
}
|
||||
else
|
||||
{
|
||||
return end();
|
||||
}
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Get a const iterator to the first allocated item in the pool.
|
||||
//*************************************************************************
|
||||
const_iterator begin() const
|
||||
{
|
||||
return const_iterator(in_use_flags.find_first(true), p_buffer, &in_use_flags);
|
||||
size_t index = in_use_flags.find_first(true);
|
||||
|
||||
if (index != ibitset::npos)
|
||||
{
|
||||
return const_iterator(index, p_buffer, &in_use_flags);
|
||||
}
|
||||
else
|
||||
{
|
||||
return end();
|
||||
}
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -173,12 +291,20 @@ namespace etl
|
||||
return begin();
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Get an iterator to the end of the pool.
|
||||
//*************************************************************************
|
||||
iterator end()
|
||||
{
|
||||
return iterator(ibitset::npos, p_buffer, &in_use_flags);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Get a const iterator to the end of the pool.
|
||||
//*************************************************************************
|
||||
const_iterator end() const
|
||||
{
|
||||
return const_iterator(in_use_flags.size(), p_buffer, &in_use_flags);
|
||||
return const_iterator(ibitset::npos, p_buffer, &in_use_flags);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
|
||||
43
ivector.h
43
ivector.h
@ -83,7 +83,7 @@ namespace etl
|
||||
{
|
||||
return &p_buffer[0];
|
||||
}
|
||||
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns a const_iterator to the beginning of the vector.
|
||||
///\return A const iterator to the beginning of the vector.
|
||||
@ -91,7 +91,7 @@ namespace etl
|
||||
const_iterator begin() const
|
||||
{
|
||||
return &p_buffer[0];
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns an iterator to the end of the vector.
|
||||
@ -118,7 +118,7 @@ namespace etl
|
||||
const_iterator cbegin() const
|
||||
{
|
||||
return &p_buffer[0];
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns a const_iterator to the end of the vector.
|
||||
@ -137,7 +137,7 @@ namespace etl
|
||||
{
|
||||
return reverse_iterator(end());
|
||||
}
|
||||
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns a const reverse iterator to the reverse beginning of the vector.
|
||||
///\return Const iterator to the reverse beginning of the vector.
|
||||
@ -145,7 +145,7 @@ namespace etl
|
||||
const_reverse_iterator rbegin() const
|
||||
{
|
||||
return const_reverse_iterator(end());
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns a reverse iterator to the end + 1 of the vector.
|
||||
@ -172,7 +172,7 @@ namespace etl
|
||||
const_reverse_iterator crbegin() const
|
||||
{
|
||||
return const_reverse_iterator(cend());
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
/// Returns a const reverse iterator to the end + 1 of the vector.
|
||||
@ -380,8 +380,7 @@ namespace etl
|
||||
template <typename TIterator>
|
||||
void assign(TIterator first, TIterator last)
|
||||
{
|
||||
initialise();
|
||||
|
||||
#ifdef _DEBUG
|
||||
difference_type count = std::distance(first, last);
|
||||
|
||||
if (count < 0)
|
||||
@ -389,10 +388,11 @@ namespace etl
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw vector_iterator();
|
||||
#else
|
||||
error_handler::error((vector_iterator));
|
||||
error_handler::error(vector_iterator());
|
||||
#endif
|
||||
}
|
||||
else if (static_cast<size_t>(count) > MAX_SIZE)
|
||||
|
||||
if (static_cast<size_t>(count) > MAX_SIZE)
|
||||
{
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw vector_full();
|
||||
@ -400,14 +400,15 @@ namespace etl
|
||||
error_handler::error(vector_full());
|
||||
#endif
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
||||
initialise();
|
||||
|
||||
// Safe to copy.
|
||||
while (first != last)
|
||||
{
|
||||
// Safe to copy.
|
||||
while (first != last)
|
||||
{
|
||||
create_element(*first);
|
||||
++first;
|
||||
}
|
||||
create_element(*first);
|
||||
++first;
|
||||
}
|
||||
}
|
||||
|
||||
@ -592,10 +593,10 @@ namespace etl
|
||||
{
|
||||
create_element_at(to++, value);
|
||||
}
|
||||
|
||||
|
||||
current_size += n_insert;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************************
|
||||
@ -685,7 +686,7 @@ namespace etl
|
||||
|
||||
//*********************************************************************
|
||||
/// Erases a range of elements.
|
||||
/// The range includes all the elements between first and last, including the
|
||||
/// The range includes all the elements between first and last, including the
|
||||
/// element pointed by first, but not the one pointed by last.
|
||||
///\param first Iterator to the first element.
|
||||
///\param last Iterator to the last element.
|
||||
@ -695,7 +696,7 @@ namespace etl
|
||||
{
|
||||
std::copy(last, end(), first);
|
||||
size_t n_delete = std::distance(first, last);
|
||||
|
||||
|
||||
// Destroy the elements left over at the end.
|
||||
while (n_delete-- > 0)
|
||||
{
|
||||
|
||||
2
map.h
2
map.h
@ -67,7 +67,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
/// Copy constructor.
|
||||
//*************************************************************************
|
||||
explicit map(const map& other)
|
||||
map(const map& other)
|
||||
: imap<TKey, TValue, TCompare>(node_pool, MAX_SIZE)
|
||||
{
|
||||
imap<TKey, TValue, TCompare>::assign(other.cbegin(), other.cend());
|
||||
|
||||
365
optional.h
Normal file
365
optional.h
Normal file
@ -0,0 +1,365 @@
|
||||
///\file
|
||||
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
|
||||
Copyright(c) 2015 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.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __ETL_OPTIONAL__
|
||||
#define __ETL_OPTIONAL__
|
||||
|
||||
#include "alignment.h"
|
||||
#include "type_traits.h"
|
||||
|
||||
namespace etl
|
||||
{
|
||||
//*****************************************************************************
|
||||
/// A null option type.
|
||||
///\ingroup utilities
|
||||
//*****************************************************************************
|
||||
class nullopt_t
|
||||
{
|
||||
public:
|
||||
|
||||
// Convertible to any type of null non-member pointer.
|
||||
template<class T>
|
||||
operator T*() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
// Can't take address of nullopt.
|
||||
void operator&() const;
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
/// A null option.
|
||||
///\ingroup utilities
|
||||
//*****************************************************************************
|
||||
const nullopt_t nullopt = {};
|
||||
|
||||
//*****************************************************************************
|
||||
/// An optional type.
|
||||
/// If the optional type is not initialised then a type is not constructed.
|
||||
///\tparam The type to store.
|
||||
///\ingroup utilities
|
||||
//*****************************************************************************
|
||||
template <typename T>
|
||||
class optional
|
||||
{
|
||||
public:
|
||||
|
||||
//***************************************************************************
|
||||
/// Constructor.
|
||||
//***************************************************************************
|
||||
optional()
|
||||
: valid(false)
|
||||
{
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Constructor with nullopt.
|
||||
//***************************************************************************
|
||||
optional(etl::nullopt_t)
|
||||
: valid(false)
|
||||
{
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Copy constructor.
|
||||
//***************************************************************************
|
||||
optional(const optional& other)
|
||||
{
|
||||
if (other)
|
||||
{
|
||||
new (storage.template get_address<T>()) T(other.value());
|
||||
valid = true;
|
||||
}
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Constructor from value type.
|
||||
//***************************************************************************
|
||||
optional(const T& value)
|
||||
{
|
||||
new (storage.template get_address<T>()) T(value);
|
||||
valid = true;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Destructor.
|
||||
//***************************************************************************
|
||||
~optional()
|
||||
{
|
||||
if (valid)
|
||||
{
|
||||
storage. template get_reference<T>().~T();
|
||||
}
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Assignment operator from nullopt.
|
||||
//***************************************************************************
|
||||
optional& operator =(etl::nullopt_t)
|
||||
{
|
||||
if (valid)
|
||||
{
|
||||
storage. template get_reference<T>().~T();
|
||||
valid = false;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Assignment operator from optional.
|
||||
//***************************************************************************
|
||||
optional& operator =(const optional& other)
|
||||
{
|
||||
if (valid && !bool(other))
|
||||
{
|
||||
storage. template get_reference<T>().~T();
|
||||
valid = false;
|
||||
}
|
||||
else if (bool(other))
|
||||
{
|
||||
if (valid)
|
||||
{
|
||||
storage. template get_reference<T>() = other.value();
|
||||
}
|
||||
else
|
||||
new (storage.template get_address<T>()) T(other.value());
|
||||
{
|
||||
valid = true;
|
||||
}
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Assignment operator from value type.
|
||||
//***************************************************************************
|
||||
optional& operator =(T& value)
|
||||
{
|
||||
if (valid)
|
||||
{
|
||||
storage. template get_reference<T>() = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
new (storage.template get_address<T>()) T(value);
|
||||
valid = true;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Pointer operator.
|
||||
//***************************************************************************
|
||||
T* operator ->()
|
||||
{
|
||||
return storage.template get_address<T>();
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Pointer operator.
|
||||
//***************************************************************************
|
||||
const T* operator ->() const
|
||||
{
|
||||
return storage.template get_address<T>();
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Dereference operator.
|
||||
//***************************************************************************
|
||||
T& operator *()
|
||||
{
|
||||
return storage. template get_reference<T>();
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Dereference operator.
|
||||
//***************************************************************************
|
||||
const T& operator *() const
|
||||
{
|
||||
return storage. template get_reference<T>();
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Bool conversion operator.
|
||||
//***************************************************************************
|
||||
explicit operator bool() const
|
||||
{
|
||||
return valid;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Get a reference to the value.
|
||||
//***************************************************************************
|
||||
T& value()
|
||||
{
|
||||
return storage. template get_reference<T>();
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Get a const reference to the value.
|
||||
//***************************************************************************
|
||||
const T& value() const
|
||||
{
|
||||
return storage. template get_reference<T>();
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Gets the value or a default if no valid.
|
||||
//***************************************************************************
|
||||
T value_or(T default_value) const
|
||||
{
|
||||
return valid ? value() : default_value;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
typename etl::aligned_storage_as<sizeof(T), T>::type storage;
|
||||
bool valid;
|
||||
};
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Equality operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator ==(const etl::optional<T>& lhs, const etl::optional<T>& rhs)
|
||||
{
|
||||
if (bool(lhs) != bool(rhs))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (!bool(lhs) && !bool(rhs))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return lhs.value() == rhs.value();
|
||||
}
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Less than operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator <(const etl::optional<T>& lhs, const etl::optional<T>& rhs)
|
||||
{
|
||||
if (!bool(rhs))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (!bool(lhs))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return lhs.value() < rhs.value();
|
||||
}
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Equality operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator ==(const etl::optional<T>& lhs, etl::nullopt_t)
|
||||
{
|
||||
return !bool(lhs);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Equality operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator ==(etl::nullopt_t, const etl::optional<T>& rhs)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Less than operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator <(const etl::optional<T>& lhs, etl::nullopt_t)
|
||||
{
|
||||
return !bool(lhs);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Less than operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator <(etl::nullopt_t, const etl::optional<T>& rhs)
|
||||
{
|
||||
return bool(rhs);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Equality operator.
|
||||
//**************************************************************************
|
||||
template <typename T>
|
||||
bool operator ==(const etl::optional<T>& lhs, const T& rhs)
|
||||
{
|
||||
return bool(lhs) ? lhs.value() == rhs : false;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Equality operator.
|
||||
//**************************************************************************
|
||||
template <typename T>
|
||||
bool operator ==(const T& value, const etl::optional<T>& rhs)
|
||||
{
|
||||
return bool(rhs) ? rhs.value() == value : false;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Less than operator.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
bool operator <(const etl::optional<T>& lhs, const T& rhs)
|
||||
{
|
||||
return bool(lhs) ? lhs.value() < rhs : true;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
/// Make an optional.
|
||||
//***************************************************************************
|
||||
template <typename T>
|
||||
etl::optional<typename etl::decay<T>::type> make_optional(T& value)
|
||||
{
|
||||
return etl::optional<typename etl::decay<T>::type>(value);
|
||||
}
|
||||
|
||||
#endif
|
||||
4
pool.h
4
pool.h
@ -60,7 +60,7 @@ namespace etl
|
||||
/// Constructor
|
||||
//*************************************************************************
|
||||
pool()
|
||||
: ipool<T>(reinterpret_cast<T*>(&aligned_buffer.value[0]), in_use, SIZE)
|
||||
: ipool<T>(reinterpret_cast<T*>(&buffer[0]), in_use, SIZE)
|
||||
{
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ namespace etl
|
||||
private:
|
||||
|
||||
///< The memory for the pool of objects.
|
||||
etl::align_as<etl::array<uint8_t, SIZE * sizeof(T)>, T> aligned_buffer;
|
||||
typename etl::aligned_storage<sizeof(T), etl::alignment_of<T>::value>::type buffer[SIZE];
|
||||
|
||||
///< The set of flags that indicate which items are free in the pool.
|
||||
bitset<SIZE> in_use;
|
||||
|
||||
6
queue.h
6
queue.h
@ -63,7 +63,7 @@ namespace etl
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
queue()
|
||||
: iqueue<T>(reinterpret_cast<T*>(&buffer.value[0]), SIZE)
|
||||
: iqueue<T>(reinterpret_cast<T*>(&buffer[0]), SIZE)
|
||||
{
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ namespace etl
|
||||
/// Copy constructor
|
||||
//*************************************************************************
|
||||
queue(const queue& rhs)
|
||||
: iqueue<T>(reinterpret_cast<T*>(&buffer.value[0]), SIZE)
|
||||
: iqueue<T>(reinterpret_cast<T*>(&buffer[0]), SIZE)
|
||||
{
|
||||
iqueue<T>::clone(rhs);
|
||||
}
|
||||
@ -100,7 +100,7 @@ namespace etl
|
||||
private:
|
||||
|
||||
/// The unititialised buffer of T used in the stack.
|
||||
etl::align_as<array<uint8_t, SIZE * sizeof(T)>, T> buffer;
|
||||
typename etl::aligned_storage<sizeof(T), etl::alignment_of<T>::value>::type buffer[SIZE];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
8
stack.h
8
stack.h
@ -51,7 +51,7 @@ namespace etl
|
||||
//***************************************************************************
|
||||
///\ingroup stack
|
||||
/// A fixed capacity stack.
|
||||
/// This stack does not support concurrent access by different threads.
|
||||
/// This stack does not suppo7rt concurrent access by different threads.
|
||||
/// \tparam T The type this stack should support.
|
||||
/// \tparam MAX_SIZE The maximum capacity of the stack.
|
||||
//***************************************************************************
|
||||
@ -64,7 +64,7 @@ namespace etl
|
||||
/// Default constructor.
|
||||
//*************************************************************************
|
||||
stack()
|
||||
: istack<T>(reinterpret_cast<T*>(&buffer.value[0]), SIZE)
|
||||
: istack<T>(reinterpret_cast<T*>(&buffer[0]), SIZE)
|
||||
{
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ namespace etl
|
||||
/// Copy constructor
|
||||
//*************************************************************************
|
||||
stack(const stack& rhs)
|
||||
: istack<T>(reinterpret_cast<T*>(&buffer.value[0]), SIZE)
|
||||
: istack<T>(reinterpret_cast<T*>(&buffer[0]), SIZE)
|
||||
{
|
||||
istack<T>::clone(rhs);
|
||||
}
|
||||
@ -101,7 +101,7 @@ namespace etl
|
||||
private:
|
||||
|
||||
/// The unititialised buffer of T used in the stack.
|
||||
etl::align_as<array<uint8_t, SIZE * sizeof(T)>, T> buffer;
|
||||
typename etl::aligned_storage<sizeof(T), etl::alignment_of<T>::value>::type buffer[SIZE];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -159,6 +159,7 @@
|
||||
<Unit filename="../../imap.h" />
|
||||
<Unit filename="../../instance_count.h" />
|
||||
<Unit filename="../../integral_limits.h" />
|
||||
<Unit filename="../../io_port.h" />
|
||||
<Unit filename="../../iqueue.h" />
|
||||
<Unit filename="../../istack.h" />
|
||||
<Unit filename="../../ivector.h" />
|
||||
@ -173,6 +174,7 @@
|
||||
<Unit filename="../../nullptr.h" />
|
||||
<Unit filename="../../numeric.h" />
|
||||
<Unit filename="../../observer.h" />
|
||||
<Unit filename="../../optional.h" />
|
||||
<Unit filename="../../parameter_type.h" />
|
||||
<Unit filename="../../pool.h" />
|
||||
<Unit filename="../../power.h" />
|
||||
@ -214,12 +216,14 @@
|
||||
<Unit filename="../test_hash.cpp" />
|
||||
<Unit filename="../test_instance_count.cpp" />
|
||||
<Unit filename="../test_integral_limits.cpp" />
|
||||
<Unit filename="../test_io_port.cpp" />
|
||||
<Unit filename="../test_largest.cpp" />
|
||||
<Unit filename="../test_list.cpp" />
|
||||
<Unit filename="../test_map.cpp" />
|
||||
<Unit filename="../test_maths.cpp" />
|
||||
<Unit filename="../test_numeric.cpp" />
|
||||
<Unit filename="../test_observer.cpp" />
|
||||
<Unit filename="../test_optional.cpp" />
|
||||
<Unit filename="../test_pool.cpp" />
|
||||
<Unit filename="../test_queue.cpp" />
|
||||
<Unit filename="../test_smallest.cpp" />
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
# depslib dependency file v1.0
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\crc16.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\crc16.cpp
|
||||
<stdint.h>
|
||||
|
||||
1415195892
|
||||
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\crc16_ccitt.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\crc16_ccitt.cpp
|
||||
<stdint.h>
|
||||
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\crc32.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\crc32.cpp
|
||||
<stdint.h>
|
||||
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\crc64_ecma.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\crc64_ecma.cpp
|
||||
<stdint.h>
|
||||
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\crc8_ccitt.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\crc8_ccitt.cpp
|
||||
<stdint.h>
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\main.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\main.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
|
||||
1414170116 +/UnitTest++.h>
|
||||
@ -161,7 +161,7 @@
|
||||
1414845610 u:\users\john\documents\programming\github\unittest-cpp\unittest++\reportassert.h
|
||||
"HelperMacros.h"
|
||||
|
||||
1424300009 source:u:\users\john\documents\programming\github\etl\test\test_array.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_array.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../array.h"
|
||||
<array>
|
||||
@ -169,7 +169,7 @@
|
||||
<iterator>
|
||||
"../integral_limits.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\array.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\array.h
|
||||
<iterator>
|
||||
<functional>
|
||||
<algorithm>
|
||||
@ -182,20 +182,20 @@
|
||||
|
||||
1415185403 .h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\exception.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\exception.h
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_container.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_container.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../container.h"
|
||||
<list>
|
||||
|
||||
1414586788 ner.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\container.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\container.h
|
||||
<stddef.h>
|
||||
<iterator>
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_crc.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_crc.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<iterator>
|
||||
<string>
|
||||
@ -211,63 +211,63 @@
|
||||
|
||||
1414929413 ecma.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\crc8_ccitt.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\crc8_ccitt.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\crc16.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\crc16.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\crc16_ccitt.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\crc16_ccitt.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\crc16_kermit.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\crc16_kermit.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\crc32.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\crc32.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\crc64_ecma.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\crc64_ecma.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_cyclic_value.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_cyclic_value.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../cyclic_value.h"
|
||||
|
||||
1415139747 _value.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\cyclic_value.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\cyclic_value.h
|
||||
<stddef.h>
|
||||
<algorithm>
|
||||
"static_assert.h"
|
||||
"exception.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\static_assert.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\static_assert.h
|
||||
|
||||
1424031255 source:u:\users\john\documents\programming\github\etl\test\test_deque.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_deque.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../deque.h"
|
||||
"data.h"
|
||||
@ -277,7 +277,7 @@
|
||||
<iostream>
|
||||
<numeric>
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\deque.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\deque.h
|
||||
<stddef.h>
|
||||
<stdint.h>
|
||||
<iterator>
|
||||
@ -287,7 +287,7 @@
|
||||
"alignment.h"
|
||||
"array.h"
|
||||
|
||||
1424031255 u:\users\john\documents\programming\github\etl\ideque.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\ideque.h
|
||||
<stddef.h>
|
||||
<iterator>
|
||||
"algorithm.h"
|
||||
@ -298,53 +298,53 @@
|
||||
|
||||
1415195892 e.h"
|
||||
|
||||
1418906587 u:\users\john\documents\programming\github\etl\type_traits.h
|
||||
1427537710 u:\users\john\documents\programming\github\etl\type_traits.h
|
||||
<stddef.h>
|
||||
"nullptr.h"
|
||||
|
||||
1415195892 "
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\nullptr.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\nullptr.h
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\deque_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\deque_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_enum_type.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_enum_type.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<string>
|
||||
"../enum_type.h"
|
||||
|
||||
1414345217 ype.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\enum_type.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\enum_type.h
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_exception.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_exception.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<string>
|
||||
"../exception.h"
|
||||
|
||||
1414344663 ion.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_function.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_function.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../function.h"
|
||||
|
||||
1414347748 on.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\function.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\function.h
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_largest.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_largest.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../largest.h"
|
||||
<type_traits>
|
||||
|
||||
1414583364 ts>
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\largest.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\largest.h
|
||||
"type_traits.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_list.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_list.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"ExtraCheckMacros.h"
|
||||
"../list.h"
|
||||
@ -354,7 +354,7 @@
|
||||
<list>
|
||||
<vector>
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_map.cpp
|
||||
1426375754 source:u:\users\john\documents\programming\github\etl\test\test_map.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<map>
|
||||
<array>
|
||||
@ -378,13 +378,13 @@
|
||||
|
||||
1415009648 +/ReportAssertImpl.h>
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\list.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\list.h
|
||||
<stddef.h>
|
||||
"ilist.h"
|
||||
"container.h"
|
||||
"pool.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\map.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\map.h
|
||||
<stddef.h>
|
||||
<iterator>
|
||||
<functional>
|
||||
@ -392,7 +392,7 @@
|
||||
"container.h"
|
||||
"pool.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\ilist.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\ilist.h
|
||||
<iterator>
|
||||
<algorithm>
|
||||
<functional>
|
||||
@ -403,7 +403,7 @@
|
||||
"parameter_type.h"
|
||||
"pool.h"
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\imap.h
|
||||
1426375768 u:\users\john\documents\programming\github\etl\imap.h
|
||||
<iterator>
|
||||
<algorithm>
|
||||
<functional>
|
||||
@ -415,11 +415,11 @@
|
||||
"pool.h"
|
||||
<iostream>
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\list_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\list_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\map_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\map_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
|
||||
@ -428,33 +428,33 @@
|
||||
"../log.h"
|
||||
"../pow.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\log.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\log.h
|
||||
<stddef.h>
|
||||
|
||||
1415195892 u:\users\john\documents\programming\github\etl\pow.h
|
||||
<cstddef>
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_numeric.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_numeric.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../numeric.h"
|
||||
<algorithm>
|
||||
<numeric>
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\numeric.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\numeric.h
|
||||
|
||||
1419429129 source:u:\users\john\documents\programming\github\etl\test\test_observer.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_observer.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../observer.h"
|
||||
|
||||
1415136649 er.h"
|
||||
|
||||
1418984093 u:\users\john\documents\programming\github\etl\observer.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\observer.h
|
||||
<algorithm>
|
||||
"vector.h"
|
||||
"exception.h"
|
||||
"error_handler.h"
|
||||
|
||||
1424300125 u:\users\john\documents\programming\github\etl\vector.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\vector.h
|
||||
<stddef.h>
|
||||
<stdint.h>
|
||||
<iterator>
|
||||
@ -463,7 +463,7 @@
|
||||
"alignment.h"
|
||||
"array.h"
|
||||
|
||||
1423994330 u:\users\john\documents\programming\github\etl\ivector.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\ivector.h
|
||||
<iterator>
|
||||
<algorithm>
|
||||
<functional>
|
||||
@ -476,19 +476,19 @@
|
||||
|
||||
1415195892 se.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\vector_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\vector_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
"error_handler.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_queue.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_queue.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<queue>
|
||||
"../queue.h"
|
||||
|
||||
1415139315 h"
|
||||
|
||||
1424300125 u:\users\john\documents\programming\github\etl\queue.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\queue.h
|
||||
<stddef.h>
|
||||
<stdint.h>
|
||||
"iqueue.h"
|
||||
@ -496,24 +496,24 @@
|
||||
"alignment.h"
|
||||
"array.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\iqueue.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\iqueue.h
|
||||
<stddef.h>
|
||||
"queue_base.h"
|
||||
"type_traits.h"
|
||||
"parameter_type.h"
|
||||
"error_handler.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\queue_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\queue_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_stack.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_stack.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<stack>
|
||||
"data.h"
|
||||
"../stack.h"
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\stack.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\stack.h
|
||||
<stddef.h>
|
||||
<stdint.h>
|
||||
<algorithm>
|
||||
@ -522,38 +522,38 @@
|
||||
"alignment.h"
|
||||
"array.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\istack.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\istack.h
|
||||
<stddef.h>
|
||||
"stack_base.h"
|
||||
"type_traits.h"
|
||||
"parameter_type.h"
|
||||
"error_handler.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\stack_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\stack_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_type_traits.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_type_traits.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../type_traits.h"
|
||||
<type_traits>
|
||||
|
||||
1415196048 raits.h"
|
||||
|
||||
1423602443 source:u:\users\john\documents\programming\github\etl\test\test_vector.cpp
|
||||
1426199387 source:u:\users\john\documents\programming\github\etl\test\test_vector.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<vector>
|
||||
<array>
|
||||
<algorithm>
|
||||
"../vector.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_visitor.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_visitor.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../visitor.h"
|
||||
|
||||
1414764632 r.h"
|
||||
|
||||
1418906587 u:\users\john\documents\programming\github\etl\visitor.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\visitor.h
|
||||
|
||||
1414845610 source:u:\users\john\documents\programming\github\unittest-cpp\unittest++\assertexception.cpp
|
||||
"AssertException.h"
|
||||
@ -1061,14 +1061,14 @@
|
||||
|
||||
1415195892 /mnt/hgfs/W7 My Documents/Programming/GitHub/etl/largest.h
|
||||
|
||||
1423602443 source:u:\users\john\documents\programming\github\etl\test\test_bitset.cpp
|
||||
1427533742 source:u:\users\john\documents\programming\github\etl\test\test_bitset.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<limits>
|
||||
<type_traits>
|
||||
<bitset>
|
||||
"../bitset.h"
|
||||
|
||||
1424287554 u:\users\john\documents\programming\github\etl\bitset.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\bitset.h
|
||||
<algorithm>
|
||||
<iterator>
|
||||
<string.h>
|
||||
@ -1080,17 +1080,18 @@
|
||||
"nullptr.h"
|
||||
"log.h"
|
||||
"ibitset.h"
|
||||
"binary.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\integral_limits.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\integral_limits.h
|
||||
<climits>
|
||||
<stddef.h>
|
||||
"type_traits.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\smallest.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\smallest.h
|
||||
<stdint.h>
|
||||
"integral_limits.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_forward_list.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_forward_list.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"ExtraCheckMacros.h"
|
||||
"data.h"
|
||||
@ -1101,13 +1102,13 @@
|
||||
<vector>
|
||||
<string>
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\forward_list.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\forward_list.h
|
||||
<stddef.h>
|
||||
"pool.h"
|
||||
"iforward_list.h"
|
||||
"container.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\iforward_list.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\iforward_list.h
|
||||
<iterator>
|
||||
<algorithm>
|
||||
<functional>
|
||||
@ -1118,70 +1119,75 @@
|
||||
"type_traits.h"
|
||||
"parameter_type.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\forward_list_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\forward_list_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\crc16_kermit.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\crc16_kermit.cpp
|
||||
<stdint.h>
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_alignment.cpp
|
||||
1427533742 source:u:\users\john\documents\programming\github\etl\test\test_alignment.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../alignment.h"
|
||||
"../type_traits.h"
|
||||
<type_traits>
|
||||
<utility>
|
||||
<string>
|
||||
<ostream>
|
||||
|
||||
1421503095 u:\users\john\documents\programming\github\etl\alignment.h
|
||||
1427545833 u:\users\john\documents\programming\github\etl\alignment.h
|
||||
<stdint.h>
|
||||
"type_traits.h"
|
||||
"static_assert.h"
|
||||
|
||||
1424726109 u:\users\john\documents\programming\github\etl\parameter_type.h
|
||||
"type_traits.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\parameter_type.h
|
||||
"type_traits.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\endian.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\endian.h
|
||||
<stdint.h>
|
||||
"enum_type.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_integral_limits.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_integral_limits.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<limits>
|
||||
<type_traits>
|
||||
<bitset>
|
||||
"../integral_limits.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_maths.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_maths.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../log.h"
|
||||
"../power.h"
|
||||
"../fibonacci.h"
|
||||
"../factorial.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_pool.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_pool.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"data.h"
|
||||
<set>
|
||||
<vector>
|
||||
"../pool.h"
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\pool.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\pool.h
|
||||
"alignment.h"
|
||||
"array.h"
|
||||
"bitset.h"
|
||||
"ipool.h"
|
||||
<iterator>
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_smallest.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_smallest.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../smallest.h"
|
||||
<type_traits>
|
||||
|
||||
1418930923 source:u:\users\john\documents\programming\github\etl\test\test_variant.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_variant.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../variant.h"
|
||||
<array>
|
||||
<vector>
|
||||
<algorithm>
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\variant.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\variant.h
|
||||
<stdint.h>
|
||||
"array.h"
|
||||
"largest.h"
|
||||
@ -1192,17 +1198,17 @@
|
||||
"alignment.h"
|
||||
"error_handler.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\power.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\power.h
|
||||
<stddef.h>
|
||||
"log.h"
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\fibonacci.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\fibonacci.h
|
||||
<stddef.h>
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\factorial.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\factorial.h
|
||||
<stddef.h>
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_algorithm.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_algorithm.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../algorithm.h"
|
||||
"../container.h"
|
||||
@ -1211,7 +1217,7 @@
|
||||
<functional>
|
||||
<numeric>
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\algorithm.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\algorithm.h
|
||||
<algorithm>
|
||||
<iterator>
|
||||
<utility>
|
||||
@ -1220,38 +1226,38 @@
|
||||
|
||||
1416912728 u:\users\john\documents\programming\github\etl\platform.h
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\error_handler.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\error_handler.h
|
||||
"exception.h"
|
||||
"function.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_error_handler.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_error_handler.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../error_handler.h"
|
||||
"../exception.h"
|
||||
|
||||
1418906586 source:u:\users\john\documents\programming\github\etl\error_handler.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\error_handler.cpp
|
||||
"error_handler.h"
|
||||
"nullptr.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_functional.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_functional.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../functional.h"
|
||||
<list>
|
||||
<vector>
|
||||
<numeric>
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\functional.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\functional.h
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_instance_count.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_instance_count.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../instance_count.h"
|
||||
<list>
|
||||
<vector>
|
||||
<numeric>
|
||||
|
||||
1418906586 u:\users\john\documents\programming\github\etl\instance_count.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\instance_count.h
|
||||
|
||||
1424592745 source:u:\users\john\documents\programming\github\etl\test\test_checksum.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_checksum.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<iterator>
|
||||
<string>
|
||||
@ -1260,14 +1266,14 @@
|
||||
"../checksum.h"
|
||||
"../endian.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\checksum.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\checksum.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_fnv_1.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_fnv_1.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<iterator>
|
||||
<string>
|
||||
@ -1276,19 +1282,19 @@
|
||||
"../fnv_1.h"
|
||||
"../endian.h"
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\fnv_1.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\fnv_1.h
|
||||
<stdint.h>
|
||||
"static_assert.h"
|
||||
"type_traits.h"
|
||||
"endian.h"
|
||||
"ihash.h"
|
||||
|
||||
1418906587 source:u:\users\john\documents\programming\github\etl\test\test_endian.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_endian.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<string>
|
||||
"../endian.h"
|
||||
|
||||
1420911635 source:u:\users\john\documents\programming\github\etl\test\test_hash.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_hash.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<iterator>
|
||||
<string>
|
||||
@ -1296,12 +1302,13 @@
|
||||
<stdint.h>
|
||||
"../hash.h"
|
||||
|
||||
1420911637 u:\users\john\documents\programming\github\etl\hash.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\hash.h
|
||||
<stdint.h>
|
||||
"fnv_1.h"
|
||||
"type_traits.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\ibitset.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\ibitset.h
|
||||
"integral_limits.h"
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_lookup.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
@ -1339,13 +1346,13 @@
|
||||
"ivector.h"
|
||||
"error_handler.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\ipool.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\ipool.h
|
||||
<iterator>
|
||||
"pool_base.h"
|
||||
"nullptr.h"
|
||||
"error_handler.h"
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\pool_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\pool_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
"error_handler.h"
|
||||
@ -1356,10 +1363,10 @@
|
||||
|
||||
1419179259 u:\users\john\documents\programming\github\etl\singleton.h
|
||||
|
||||
1423387319 u:\users\john\documents\programming\github\etl\test\data.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\test\data.h
|
||||
<ostream>
|
||||
|
||||
1423387319 source:u:\users\john\documents\programming\github\etl\test\test_bloom_filter.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_bloom_filter.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<stdlib.h>
|
||||
<vector>
|
||||
@ -1369,41 +1376,42 @@
|
||||
"../crc16_ccitt.h"
|
||||
"../crc32.h"
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\bloom_filter.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\bloom_filter.h
|
||||
"parameter_type.h"
|
||||
"bitset.h"
|
||||
"type_traits.h"
|
||||
"log.h"
|
||||
"power.h"
|
||||
|
||||
1423602443 source:u:\users\john\documents\programming\github\etl\test\test_fixed_iterator.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_fixed_iterator.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<vector>
|
||||
<ostream>
|
||||
"../fixed_iterator.h"
|
||||
|
||||
1423602443 u:\users\john\documents\programming\github\etl\fixed_iterator.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\fixed_iterator.h
|
||||
<iterator>
|
||||
|
||||
1424592745 u:\users\john\documents\programming\github\etl\ihash.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\ihash.h
|
||||
<stdint.h>
|
||||
<utility>
|
||||
"exception.h"
|
||||
"endian.h"
|
||||
|
||||
1424299637 source:u:\users\john\documents\programming\github\etl\test\test_binary.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_binary.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<cstdint>
|
||||
"../binary.h"
|
||||
"../bitset.h"
|
||||
"../fnv_1.h"
|
||||
"../integral_limits.h"
|
||||
|
||||
1424286616 u:\users\john\documents\programming\github\etl\binary.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\binary.h
|
||||
"type_traits.h"
|
||||
"integral_limits.h"
|
||||
"static_assert.h"
|
||||
|
||||
1424383830 source:u:\users\john\documents\programming\github\etl\test\test_flat_map.cpp
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_flat_map.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<map>
|
||||
<array>
|
||||
@ -1412,16 +1420,17 @@
|
||||
<iterator>
|
||||
<string>
|
||||
<vector>
|
||||
"data.h"
|
||||
"../flat_map.h"
|
||||
|
||||
1424380279 u:\users\john\documents\programming\github\etl\flat_map.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\flat_map.h
|
||||
<stddef.h>
|
||||
<iterator>
|
||||
<functional>
|
||||
"iflat_map.h"
|
||||
"vector.h"
|
||||
|
||||
1424383918 u:\users\john\documents\programming\github\etl\iflat_map.h
|
||||
1427533742 u:\users\john\documents\programming\github\etl\iflat_map.h
|
||||
<iterator>
|
||||
<algorithm>
|
||||
<functional>
|
||||
@ -1433,9 +1442,56 @@
|
||||
"ivector.h"
|
||||
"error_handler.h"
|
||||
|
||||
1424299331 u:\users\john\documents\programming\github\etl\flat_map_base.h
|
||||
1424726109 u:\users\john\documents\programming\github\etl\flat_map_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
"ivector.h"
|
||||
"error_handler.h"
|
||||
|
||||
1424726109 source:u:\users\john\documents\programming\github\etl\test\test_flat_set.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
<set>
|
||||
<array>
|
||||
<algorithm>
|
||||
<utility>
|
||||
<iterator>
|
||||
<string>
|
||||
<vector>
|
||||
"data.h"
|
||||
"../flat_set.h"
|
||||
|
||||
1427533742 u:\users\john\documents\programming\github\etl\flat_set.h
|
||||
<stddef.h>
|
||||
<iterator>
|
||||
<functional>
|
||||
"iflat_set.h"
|
||||
"vector.h"
|
||||
|
||||
1427533742 u:\users\john\documents\programming\github\etl\iflat_set.h
|
||||
<iterator>
|
||||
<algorithm>
|
||||
<functional>
|
||||
<utility>
|
||||
<stddef.h>
|
||||
"flat_set_base.h"
|
||||
"type_traits.h"
|
||||
"parameter_type.h"
|
||||
"ivector.h"
|
||||
"error_handler.h"
|
||||
|
||||
1424726109 u:\users\john\documents\programming\github\etl\flat_set_base.h
|
||||
<stddef.h>
|
||||
"exception.h"
|
||||
"ivector.h"
|
||||
"error_handler.h"
|
||||
|
||||
1427533742 source:u:\users\john\documents\programming\github\etl\test\test_io_port.cpp
|
||||
<UnitTest++/UnitTest++.h>
|
||||
"../io_port.h"
|
||||
<stdint.h>
|
||||
|
||||
1427533742 u:\users\john\documents\programming\github\etl\io_port.h
|
||||
<stdint.h>
|
||||
"nullptr.h"
|
||||
"parameter_type.h"
|
||||
|
||||
|
||||
@ -1,124 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_layout_file>
|
||||
<ActiveTarget name="Windows" />
|
||||
<File name="..\..\stack.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3203" topLine="57" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_map.cpp" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4433" topLine="84" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\static_assert.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1356" topLine="10" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_deque.cpp" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\..\optional.h" open="1" top="1" tabpos="22" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="21475" topLine="641" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Test.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="200" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\deque.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4670" topLine="110" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\TestMacros.h" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1865" topLine="28" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_array.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2123" topLine="55" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\imap.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="60526" topLine="1708" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\integral_limits.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2272" topLine="36" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\lookup.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3734" topLine="55" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\binary.h" open="1" top="1" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="12327" topLine="338" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\map.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5955" topLine="137" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\bloom_filter.h" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3055" topLine="57" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Win32\TimeHelpers.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="245" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\nullptr.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="560" topLine="78" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_type_traits.cpp" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="34843" topLine="428" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\observer.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5579" topLine="130" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\pool.h" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2334" topLine="35" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\queue.h" open="1" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2984" topLine="48" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\type_traits.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5782" topLine="136" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_cyclic_value.cpp" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1365" topLine="12" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\cyclic_value.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3578" topLine="85" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\ExecuteTest.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="355" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\endian.h" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2235" topLine="37" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\main.cpp" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="277" topLine="0" />
|
||||
<Cursor1 position="4021" topLine="67" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Config.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
@ -126,36 +26,11 @@
|
||||
<Cursor1 position="773" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_bloom_filter.cpp" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="6035" topLine="180" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_hash.cpp" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4733" topLine="114" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_integral_limits.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1416" topLine="13" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\function.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3693" topLine="67" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\list.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5955" topLine="137" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\ideque.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="39747" topLine="1281" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\array.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1998" topLine="258" />
|
||||
@ -166,19 +41,14 @@
|
||||
<Cursor1 position="4838" topLine="145" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_queue.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Win32\TimeHelpers.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1603" topLine="28" />
|
||||
<Cursor1 position="245" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Win32\TimeHelpers.cpp" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\test_type_traits.cpp" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="257" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\ilist.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="17660" topLine="539" />
|
||||
<Cursor1 position="34843" topLine="428" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\container.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
@ -186,19 +56,184 @@
|
||||
<Cursor1 position="2523" topLine="42" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\ilist.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="17660" topLine="539" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\ExecuteTest.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="355" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_bloom_filter.cpp" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="6035" topLine="180" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\io_port.h" open="1" top="0" tabpos="20" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="7715" topLine="301" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_cyclic_value.cpp" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1365" topLine="12" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\lookup.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3734" topLine="55" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\deque.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4670" topLine="110" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\map.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5955" topLine="137" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\nullptr.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="560" topLine="78" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\observer.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5579" topLine="130" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\pool.h" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2334" topLine="35" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\queue.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2984" topLine="48" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_io_port.cpp" open="1" top="0" tabpos="21" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2724" topLine="58" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_optional.cpp" open="1" top="0" tabpos="23" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3050" topLine="59" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\type_traits.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5782" topLine="136" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\alignment.h" open="1" top="0" tabpos="25" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5607" topLine="134" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\ideque.h" open="1" top="0" tabpos="24" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="43136" topLine="1333" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_queue.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1603" topLine="28" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\binary.h" open="1" top="0" tabpos="17" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="12327" topLine="338" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Win32\TimeHelpers.cpp" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="257" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\bloom_filter.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3055" topLine="57" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\main.cpp" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="277" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_array.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2123" topLine="55" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\imap.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="60526" topLine="1694" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_bitset.cpp" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="17510" topLine="588" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\Doxyfile" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="56760" topLine="1251" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\integral_limits.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2272" topLine="36" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Posix\SignalTranslator.h" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="616" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\stack.h" open="1" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\test_deque.cpp" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3203" topLine="57" />
|
||||
<Cursor1 position="21475" topLine="641" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\list.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5955" topLine="137" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\Test.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="200" topLine="0" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\cyclic_value.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3578" topLine="85" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\endian.h" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2235" topLine="37" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\unittest-cpp\UnitTest++\TestMacros.h" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1865" topLine="28" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_hash.cpp" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4733" topLine="114" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\test_integral_limits.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1416" topLine="13" />
|
||||
</Cursor>
|
||||
</File>
|
||||
</CodeBlocks_layout_file>
|
||||
|
||||
218
test/iar/etl.dep
218
test/iar/etl.dep
@ -2,13 +2,13 @@
|
||||
|
||||
<project>
|
||||
<fileVersion>2</fileVersion>
|
||||
<fileChecksum>4054523468</fileChecksum>
|
||||
<fileChecksum>4196203668</fileChecksum>
|
||||
<configuration>
|
||||
<name>Debug</name>
|
||||
<outputs>
|
||||
<file>$PROJ_DIR$\..\..\bitset.h</file>
|
||||
<file>$PROJ_DIR$\..\..\alignment.h</file>
|
||||
<file>$PROJ_DIR$\..\..\algorithm.h</file>
|
||||
<file>$PROJ_DIR$\..\..\bitset.h</file>
|
||||
<file>$PROJ_DIR$\..\..\array.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc16.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\container.h</file>
|
||||
@ -16,18 +16,75 @@
|
||||
<file>$PROJ_DIR$\..\..\crc16.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc16_ccitt.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\crc16_kermit.cpp</file>
|
||||
<file>$PROJ_DIR$\Debug\Exe\cpp.out</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc16.pbi</file>
|
||||
<file>$PROJ_DIR$\..\..\crc32.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\crc16_kermit.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc64_ecma.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc32.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc64_ecma.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\crc8_ccitt.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\crc8_ccitt.h</file>
|
||||
<file>$PROJ_DIR$\..\..\cyclic_value.h</file>
|
||||
<file>$PROJ_DIR$\..\..\doxygen.h</file>
|
||||
<file>$PROJ_DIR$\..\..\deque.h</file>
|
||||
<file>$PROJ_DIR$\..\..\deque_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\exception.h</file>
|
||||
<file>$PROJ_DIR$\..\..\endian.h</file>
|
||||
<file>$PROJ_DIR$\..\..\enum_type.h</file>
|
||||
<file>$PROJ_DIR$\..\..\error_handler.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\error_handler.h</file>
|
||||
<file>$PROJ_DIR$\..\..\factorial.h</file>
|
||||
<file>$PROJ_DIR$\..\..\fibonacci.h</file>
|
||||
<file>$PROJ_DIR$\..\..\forward_list.h</file>
|
||||
<file>$PROJ_DIR$\..\..\functional.h</file>
|
||||
<file>$PROJ_DIR$\..\..\forward_list_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\function.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xmtx.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ideque.h</file>
|
||||
<file>$PROJ_DIR$\..\..\iforward_list.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ilist.h</file>
|
||||
<file>$PROJ_DIR$\..\..\integral_limits.h</file>
|
||||
<file>$PROJ_DIR$\..\..\imap.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ipool.h</file>
|
||||
<file>$PROJ_DIR$\..\..\iqueue.h</file>
|
||||
<file>$PROJ_DIR$\..\..\istack.h</file>
|
||||
<file>$PROJ_DIR$\..\..\largest.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ivector.h</file>
|
||||
<file>$PROJ_DIR$\..\..\numeric.h</file>
|
||||
<file>$PROJ_DIR$\..\..\list.h</file>
|
||||
<file>$PROJ_DIR$\..\..\list_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\map.h</file>
|
||||
<file>$PROJ_DIR$\..\..\map_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\log.h</file>
|
||||
<file>$PROJ_DIR$\..\..\nullptr.h</file>
|
||||
<file>$PROJ_DIR$\..\..\observer.h</file>
|
||||
<file>$PROJ_DIR$\..\..\parameter_type.h</file>
|
||||
<file>$PROJ_DIR$\..\..\power.h</file>
|
||||
<file>$PROJ_DIR$\..\..\pool.h</file>
|
||||
<file>$PROJ_DIR$\..\..\queue.h</file>
|
||||
<file>$PROJ_DIR$\..\..\smallest.h</file>
|
||||
<file>$PROJ_DIR$\..\..\queue_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\static_assert.h</file>
|
||||
<file>$PROJ_DIR$\..\..\stack.h</file>
|
||||
<file>$PROJ_DIR$\..\..\stack_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\type_traits.h</file>
|
||||
<file>$PROJ_DIR$\..\..\variant.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\cpp\memory</file>
|
||||
<file>$PROJ_DIR$\..\..\vector.h</file>
|
||||
<file>$PROJ_DIR$\..\..\vector_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\visitor.h</file>
|
||||
<file>$PROJ_DIR$\..\test_compile.cpp</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc16_kermit.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc32.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc64_ecma.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc8_ccitt.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc16.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Exe\cpp.out</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc8_ccitt.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc64_ecma.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc32.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\cstring</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\cstdlib</file>
|
||||
@ -67,8 +124,6 @@
|
||||
<file>$TOOLKIT_DIR$\inc\cpp\xmemory</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xlocale.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xtls.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xmtx.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\cpp\memory</file>
|
||||
<file>$TOOLKIT_DIR$\inc\cpp\algorithm</file>
|
||||
<file>$TOOLKIT_DIR$\inc\cpp\xstddef</file>
|
||||
<file>$TOOLKIT_DIR$\inc\cpp\new</file>
|
||||
@ -93,61 +148,6 @@
|
||||
<file>$PROJ_DIR$\Debug\Obj\error_handler.o</file>
|
||||
<file>$PROJ_DIR$\..\..\ibitset.h</file>
|
||||
<file>$PROJ_DIR$\Debug\List\cpp.map</file>
|
||||
<file>$PROJ_DIR$\..\..\crc32.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\crc16_kermit.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc64_ecma.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc32.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc64_ecma.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\crc8_ccitt.h</file>
|
||||
<file>$PROJ_DIR$\..\..\crc8_ccitt.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\cyclic_value.h</file>
|
||||
<file>$PROJ_DIR$\..\..\doxygen.h</file>
|
||||
<file>$PROJ_DIR$\..\..\deque.h</file>
|
||||
<file>$PROJ_DIR$\..\..\deque_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\exception.h</file>
|
||||
<file>$PROJ_DIR$\..\..\endian.h</file>
|
||||
<file>$PROJ_DIR$\..\..\enum_type.h</file>
|
||||
<file>$PROJ_DIR$\..\..\error_handler.cpp</file>
|
||||
<file>$PROJ_DIR$\..\..\error_handler.h</file>
|
||||
<file>$PROJ_DIR$\..\..\factorial.h</file>
|
||||
<file>$PROJ_DIR$\..\..\forward_list.h</file>
|
||||
<file>$PROJ_DIR$\..\..\fibonacci.h</file>
|
||||
<file>$PROJ_DIR$\..\..\functional.h</file>
|
||||
<file>$PROJ_DIR$\..\..\forward_list_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\function.h</file>
|
||||
<file>$PROJ_DIR$\..\..\imap.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ideque.h</file>
|
||||
<file>$PROJ_DIR$\..\..\iforward_list.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ilist.h</file>
|
||||
<file>$PROJ_DIR$\..\..\integral_limits.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ipool.h</file>
|
||||
<file>$PROJ_DIR$\..\..\iqueue.h</file>
|
||||
<file>$PROJ_DIR$\..\..\istack.h</file>
|
||||
<file>$PROJ_DIR$\..\..\largest.h</file>
|
||||
<file>$PROJ_DIR$\..\..\ivector.h</file>
|
||||
<file>$PROJ_DIR$\..\..\list.h</file>
|
||||
<file>$PROJ_DIR$\..\..\list_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\map.h</file>
|
||||
<file>$PROJ_DIR$\..\..\map_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\log.h</file>
|
||||
<file>$PROJ_DIR$\..\..\nullptr.h</file>
|
||||
<file>$PROJ_DIR$\..\..\observer.h</file>
|
||||
<file>$PROJ_DIR$\..\..\numeric.h</file>
|
||||
<file>$PROJ_DIR$\..\..\parameter_type.h</file>
|
||||
<file>$PROJ_DIR$\..\..\power.h</file>
|
||||
<file>$PROJ_DIR$\..\..\pool.h</file>
|
||||
<file>$PROJ_DIR$\..\..\queue.h</file>
|
||||
<file>$PROJ_DIR$\..\..\smallest.h</file>
|
||||
<file>$PROJ_DIR$\..\..\queue_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\static_assert.h</file>
|
||||
<file>$PROJ_DIR$\..\..\stack.h</file>
|
||||
<file>$PROJ_DIR$\..\..\stack_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\type_traits.h</file>
|
||||
<file>$PROJ_DIR$\..\..\variant.h</file>
|
||||
<file>$PROJ_DIR$\..\..\vector.h</file>
|
||||
<file>$PROJ_DIR$\..\..\vector_base.h</file>
|
||||
<file>$PROJ_DIR$\..\..\visitor.h</file>
|
||||
<file>$PROJ_DIR$\..\test_compile.cpp</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\ymath.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xtgmath.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xencoding_limits.h</file>
|
||||
@ -160,6 +160,8 @@
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc16_kermit.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\crc8_ccitt.o</file>
|
||||
<file>$PROJ_DIR$\..\..\ihash.h</file>
|
||||
<file>$PROJ_DIR$\..\..\binary.h</file>
|
||||
<file>$PROJ_DIR$\..\..\io_port.h</file>
|
||||
</outputs>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\crc16.cpp</name>
|
||||
@ -170,17 +172,17 @@
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 11</file>
|
||||
<file> 68</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 21 17 16 18 19 20 144 83</file>
|
||||
<file> 73 70 75 72 71 74 144 138</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 17 16 21 144 18 83 19 20</file>
|
||||
<file> 70 75 73 144 72 138 71 74</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -199,11 +201,11 @@
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 21 17 16 18 19 20 144 83</file>
|
||||
<file> 73 70 75 72 71 74 144 138</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 17 16 21 144 18 83 19 20</file>
|
||||
<file> 70 75 73 144 72 138 71 74</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -216,17 +218,17 @@
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 12</file>
|
||||
<file> 67</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 21 17 16 18 19 20 144 83</file>
|
||||
<file> 73 70 75 72 71 74 144 138</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 17 16 21 144 18 83 19 20</file>
|
||||
<file> 70 75 73 144 72 138 71 74</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -235,25 +237,10 @@
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>ILINK</name>
|
||||
<file> 10 86</file>
|
||||
<file> 69 141</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\Debug\Exe\cpp.out</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>ILINK</name>
|
||||
<file> 86</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ILINK</name>
|
||||
<file> 50 147 148 151 146 145 152 84 26 53 55 56 52 51</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\crc32.cpp</name>
|
||||
<outputs>
|
||||
@ -263,17 +250,17 @@
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 13</file>
|
||||
<file> 78</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 21 17 16 18 19 20 144 83</file>
|
||||
<file> 73 70 75 72 71 74 144 138</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 17 16 21 144 18 83 19 20</file>
|
||||
<file> 70 75 73 144 72 138 71 74</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -286,17 +273,17 @@
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 14</file>
|
||||
<file> 77</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 21 17 16 18 19 20 144 83</file>
|
||||
<file> 73 70 75 72 71 74 144 138</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 17 16 21 144 18 83 19 20</file>
|
||||
<file> 70 75 73 144 72 138 71 74</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -309,17 +296,17 @@
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 15</file>
|
||||
<file> 76</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 21 17 16 18 19 20 144 83</file>
|
||||
<file> 73 70 75 72 71 74 144 138</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 17 16 21 144 18 83 19 20</file>
|
||||
<file> 70 75 73 144 72 138 71 74</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -328,21 +315,21 @@
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 84</file>
|
||||
<file> 139</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 82</file>
|
||||
<file> 137</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 102 98 108 124</file>
|
||||
<file> 25 21 31 49</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 108 124 98 102</file>
|
||||
<file> 31 49 21 25</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
@ -351,21 +338,36 @@
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 26</file>
|
||||
<file> 83</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 27</file>
|
||||
<file> 84</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 1 63 62 58 24 17 16 18 19 20 144 83 22 29 65 34 64 66 43 42 33 67 45 68 69 35 46 23 70 32 31 40 30 71 36 47 72 28 54 142 143 73 74 75 48 41 37 49 25 76 38 59 60 61 39 78 57 79 80 77 81 44 136 124 0 3 98 127 133 102 108 2 21 113 131 123 85 5 92 99 100 153 7 6 88 90 89 94 96 110 97</file>
|
||||
<file> 2 118 62 115 81 70 75 72 71 74 144 138 79 86 120 91 119 121 100 99 90 122 102 123 124 92 103 80 125 89 88 97 87 126 93 104 127 85 111 142 143 128 129 130 105 98 94 106 82 131 95 116 117 32 96 133 114 134 135 132 136 101 60 49 1 73 57 3 21 51 25 31 0 36 55 48 140 154 5 16 22 23 153 7 6 11 13 12 17 19 33 20 155 63 42 64 61 41</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 41 153 98 65 66 17 36 23 88 63 35 76 44 43 133 136 5 96 58 18 29 34 45 16 81 21 3 7 89 64 67 68 69 28 77 99 127 0 2 92 6 90 94 30 62 24 42 22 144 83 19 20 33 31 46 40 47 54 142 74 75 78 79 80 124 70 123 85 113 1 32 71 72 73 143 48 37 49 25 57 38 59 60 39 61 102 108 131 100 110 97</file>
|
||||
<file> 60 72 123 36 70 86 81 3 75 122 21 100 11 101 115 119 102 90 91 153 57 118 5 19 120 82 48 73 64 7 12 63 124 99 94 80 95 96 97 98 22 87 1 0 16 6 13 17 155 61 62 79 144 138 71 74 121 125 89 126 127 128 143 105 106 114 88 116 117 32 51 25 2 92 103 93 104 85 111 142 129 130 131 132 133 134 135 136 49 31 55 140 154 23 33 20 42 41</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\Debug\Exe\cpp.out</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>ILINK</name>
|
||||
<file> 141</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>ILINK</name>
|
||||
<file> 107 147 148 151 146 145 152 139 83 110 112 113 109 108</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
|
||||
@ -2000,6 +2000,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\integral_limits.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\io_port.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\ipool.h</name>
|
||||
</file>
|
||||
@ -2021,15 +2024,15 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\list_base.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\log.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\map.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\map_base.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\log.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\nullptr.h</name>
|
||||
</file>
|
||||
|
||||
@ -283,6 +283,9 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\integral_limits.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\io_port.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\ipool.h</name>
|
||||
</file>
|
||||
@ -304,15 +307,15 @@
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\list_base.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\log.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\map.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\map_base.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\log.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\nullptr.h</name>
|
||||
</file>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
|
||||
|
||||
<Column0>242</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||
<Column0>259</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||
</Workspace>
|
||||
<Build>
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<Windows>
|
||||
|
||||
|
||||
<Wnd0>
|
||||
<Wnd1>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-10727-29778</Identity>
|
||||
@ -32,11 +32,11 @@
|
||||
<Factory>Workspace</Factory>
|
||||
<Session>
|
||||
|
||||
<NodeDict><ExpandedNode>etl</ExpandedNode><ExpandedNode>etl/ETL</ExpandedNode><ExpandedNode>etl/Output</ExpandedNode><ExpandedNode>etl/Test</ExpandedNode><ExpandedNode>etl/main.cpp</ExpandedNode></NodeDict></Session>
|
||||
<NodeDict><ExpandedNode>etl</ExpandedNode><ExpandedNode>etl/Output</ExpandedNode><ExpandedNode>etl/Test</ExpandedNode><ExpandedNode>etl/main.cpp</ExpandedNode></NodeDict></Session>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd0><Wnd2>
|
||||
<SelectedTab>0</SelectedTab></Wnd1><Wnd3>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-15390-31123</Identity>
|
||||
@ -46,20 +46,20 @@
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd2></Windows>
|
||||
<SelectedTab>0</SelectedTab></Wnd3></Windows>
|
||||
<Editor>
|
||||
|
||||
|
||||
|
||||
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\algorithm.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>255</YPos2><SelStart2>2932</SelStart2><SelEnd2>2932</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\test_compile.cpp</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>68</YPos2><SelStart2>3284</SelStart2><SelEnd2>3284</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.0\arm\inc\cpp\xlocnum</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>647</YPos2><SelStart2>22438</SelStart2><SelEnd2>22438</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\alignment.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>96</YPos2><SelStart2>3503</SelStart2><SelEnd2>3503</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\type_traits.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>183</YPos2><SelStart2>8753</SelStart2><SelEnd2>8753</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\log.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>29</YPos2><SelStart2>2196</SelStart2><SelEnd2>2196</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\nullptr.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>1327</SelStart2><SelEnd2>1327</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\variant.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>939</YPos2><SelStart2>39362</SelStart2><SelEnd2>39362</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\crc16.cpp</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>645</SelStart2><SelEnd2>645</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\ideque.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>954</YPos2><SelStart2>31011</SelStart2><SelEnd2>31011</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\deque.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>79</YPos2><SelStart2>4728</SelStart2><SelEnd2>4736</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\test_compile.cpp</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>516</SelStart2><SelEnd2>516</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\variant.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>753</YPos2><SelStart2>31086</SelStart2><SelEnd2>31086</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Positions>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Top><Row0><Sizes><Toolbar-027B8198><key>iaridepm.enu1</key></Toolbar-027B8198></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>953</Bottom><Right>333</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>200401</sizeHorzCY><sizeVertCX>174479</sizeVertCX><sizeVertCY>956914</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes><Wnd2><Rect><Top>0</Top><Left>0</Left><Bottom>0</Bottom><Right>0</Right><x>-2</x><y>-2</y><FloatX>1938</FloatX><FloatY>25</FloatY><FloatWidth>1240</FloatWidth><FloatHeight>968</FloatHeight><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>200401</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>200401</sizeVertCY></Rect></Wnd2></Sizes></Float></Positions>
|
||||
<Top><Row0><Sizes><Toolbar-00DE39B0><key>iaridepm.enu1</key></Toolbar-00DE39B0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>953</Bottom><Right>333</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>200401</sizeHorzCY><sizeVertCX>174479</sizeVertCX><sizeVertCY>956914</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes><Wnd3><Rect><Top>0</Top><Left>0</Left><Bottom>0</Bottom><Right>0</Right><x>-2</x><y>-2</y><FloatX>1938</FloatX><FloatY>25</FloatY><FloatWidth>1240</FloatWidth><FloatHeight>968</FloatHeight><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>200401</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>200401</sizeVertCY></Rect></Wnd3></Sizes></Float></Positions>
|
||||
</Desktop>
|
||||
</Workspace>
|
||||
|
||||
|
||||
@ -73,8 +73,8 @@
|
||||
<flags>2</flags>
|
||||
<showCmd>3</showCmd>
|
||||
<MinPosition>
|
||||
<xPos>-1</xPos>
|
||||
<yPos>-1</yPos>
|
||||
<xPos>-32000</xPos>
|
||||
<yPos>-32000</yPos>
|
||||
</MinPosition>
|
||||
<MaxPosition>
|
||||
<xPos>-1</xPos>
|
||||
@ -90,8 +90,8 @@
|
||||
<MDIClientArea>
|
||||
<RegID>0</RegID>
|
||||
<MDITabState>
|
||||
<Len>1549</Len>
|
||||
<Data>010000000400000001000000010000000000000001000000000000000200000000000000010000000100000000000000280000002800000001000000100000000C000000010000003B553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C63726336345F65636D612E68000000000C63726336345F65636D612E6800000000FFFFFFFFFFFFFFFF36553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C63726333322E68000000000763726333322E6800000000FFFFFFFFFFFFFFFF3D553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C63726331365F6B65726D69742E68000000000E63726331365F6B65726D69742E6800000000FFFFFFFFFFFFFFFF3C553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C63726331365F63636974742E68000000000D63726331365F63636974742E6800000000FFFFFFFFFFFFFFFF36553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C63726331362E68000000000763726331362E6800000000FFFFFFFFFFFFFFFF36553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C69686173682E68000000000769686173682E6800000000FFFFFFFFFFFFFFFF38553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C696269747365742E680000000009696269747365742E6800000000FFFFFFFFFFFFFFFF37553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C6964657175652E6800000000086964657175652E6800000000FFFFFFFFFFFFFFFF36553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C64657175652E68000000000764657175652E6800000000FFFFFFFFFFFFFFFF3A553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C6669626F6E616363692E68000000000B6669626F6E616363692E6800000000FFFFFFFFFFFFFFFF3A553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C666163746F7269616C2E68000000000B666163746F7269616C2E6800000000FFFFFFFFFFFFFFFF3D553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C6379636C69635F76616C75652E68000000000E6379636C69635F76616C75652E6800000000FFFFFFFFFFFFFFFF44553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C746573745C746573745F636F6D70696C652E6370700000000010746573745F636F6D70696C652E63707000000000FFFFFFFFFFFFFFFF39553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C66756E6374696F6E2E68000000000A66756E6374696F6E2E6800000000FFFFFFFFFFFFFFFF37553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C6269747365742E6800000000086269747365742E6800000000FFFFFFFFFFFFFFFF3B553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C637263385F63636974742E68000000000C637263385F63636974742E6800000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100006500000080070000FD030000</Data>
|
||||
<Len>440</Len>
|
||||
<Data>01000000040000000100000001000000000000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000000000000100000044553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C746573745C746573745F636F6D70696C652E6370700000000010746573745F636F6D70696C652E63707000000000FFFFFFFFFFFFFFFF38553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C69766563746F722E68000000000969766563746F722E6800000000FFFFFFFFFFFFFFFF38553A5C55736572735C4A6F686E5C446F63756D656E74735C50726F6772616D6D696E675C4769744875625C65746C5C76617269616E742E68000000000976617269616E742E6800000000FFFFFFFFFFFFFFFF0000000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000940100006500000080070000FD030000</Data>
|
||||
</MDITabState>
|
||||
</MDIClientArea>
|
||||
<ViewEx>
|
||||
@ -1285,8 +1285,8 @@
|
||||
<RegID>59392</RegID>
|
||||
<Name>File</Name>
|
||||
<Buttons>
|
||||
<Len>2261</Len>
|
||||
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000010766F6964206F70657261746F72202829960000000000000010000373657410766F6964206F70657261746F72202829096966756E6374696F6E086F70657261746F7208456E756D547970650A5374727563744E616D65077479706564656608547970654E616D65114445434C4152455F454E554D5F545950451A72657475726E2028544261736526292A2854426173652A29303B0C504C4154464F524D5F41524D09696E745F6C65617374057374643A3A09434F4D50494C45525F0A53797374656D496E69740641737369676E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
|
||||
<Len>2266</Len>
|
||||
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003736574960000000000000011000D6572726F725F68616E646C65720373657410766F6964206F70657261746F72202829096966756E6374696F6E086F70657261746F7208456E756D547970650A5374727563744E616D65077479706564656608547970654E616D65114445434C4152455F454E554D5F545950451A72657475726E2028544261736526292A2854426173652A29303B0C504C4154464F524D5F41524D09696E745F6C65617374057374643A3A09434F4D50494C45525F0A53797374656D496E69740641737369676E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
|
||||
</Buttons>
|
||||
<OriginalItems>
|
||||
<Len>1423</Len>
|
||||
@ -1318,7 +1318,7 @@
|
||||
<Name>Debug</Name>
|
||||
<Buttons>
|
||||
<Len>2220</Len>
|
||||
<Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
|
||||
<Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
|
||||
</Buttons>
|
||||
<OriginalItems>
|
||||
<Len>898</Len>
|
||||
@ -2583,147 +2583,30 @@
|
||||
<ActiveMDIGroup>0</ActiveMDIGroup>
|
||||
<MDIGroup>
|
||||
<Size>100</Size>
|
||||
<ActiveTab>12</ActiveTab>
|
||||
<Doc>
|
||||
<Name>..\..\crc64_ecma.h</Name>
|
||||
<ColumnNumber>26</ColumnNumber>
|
||||
<TopLine>17</TopLine>
|
||||
<CurrentLine>39</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\crc32.h</Name>
|
||||
<ColumnNumber>6</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>41</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\crc16_kermit.h</Name>
|
||||
<ColumnNumber>6</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>41</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\crc16_ccitt.h</Name>
|
||||
<ColumnNumber>6</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>41</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\crc16.h</Name>
|
||||
<ColumnNumber>6</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>41</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\ihash.h</Name>
|
||||
<ColumnNumber>0</ColumnNumber>
|
||||
<TopLine>145</TopLine>
|
||||
<CurrentLine>1</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\ibitset.h</Name>
|
||||
<ColumnNumber>36</ColumnNumber>
|
||||
<TopLine>44</TopLine>
|
||||
<CurrentLine>59</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\ideque.h</Name>
|
||||
<ColumnNumber>57</ColumnNumber>
|
||||
<TopLine>510</TopLine>
|
||||
<CurrentLine>517</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\deque.h</Name>
|
||||
<ColumnNumber>0</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>1</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\fibonacci.h</Name>
|
||||
<ColumnNumber>0</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>1</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\factorial.h</Name>
|
||||
<ColumnNumber>17</ColumnNumber>
|
||||
<TopLine>9</TopLine>
|
||||
<CurrentLine>36</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\cyclic_value.h</Name>
|
||||
<ColumnNumber>5</ColumnNumber>
|
||||
<TopLine>174</TopLine>
|
||||
<CurrentLine>223</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<ActiveTab>0</ActiveTab>
|
||||
<Doc>
|
||||
<Name>..\test_compile.cpp</Name>
|
||||
<ColumnNumber>2</ColumnNumber>
|
||||
<TopLine>184</TopLine>
|
||||
<CurrentLine>227</CurrentLine>
|
||||
<ColumnNumber>8</ColumnNumber>
|
||||
<TopLine>281</TopLine>
|
||||
<CurrentLine>309</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\function.h</Name>
|
||||
<ColumnNumber>79</ColumnNumber>
|
||||
<TopLine>58</TopLine>
|
||||
<CurrentLine>81</CurrentLine>
|
||||
<Name>..\..\ivector.h</Name>
|
||||
<ColumnNumber>7</ColumnNumber>
|
||||
<TopLine>159</TopLine>
|
||||
<CurrentLine>195</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\bitset.h</Name>
|
||||
<ColumnNumber>0</ColumnNumber>
|
||||
<TopLine>8</TopLine>
|
||||
<CurrentLine>49</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
</Doc>
|
||||
<Doc>
|
||||
<Name>..\..\crc8_ccitt.h</Name>
|
||||
<ColumnNumber>6</ColumnNumber>
|
||||
<TopLine>1</TopLine>
|
||||
<CurrentLine>41</CurrentLine>
|
||||
<Name>..\..\variant.h</Name>
|
||||
<ColumnNumber>28</ColumnNumber>
|
||||
<TopLine>26</TopLine>
|
||||
<CurrentLine>43</CurrentLine>
|
||||
<Folding>0</Folding>
|
||||
<ContractedFolders></ContractedFolders>
|
||||
<PaneID>0</PaneID>
|
||||
|
||||
@ -1115,6 +1115,19 @@
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>72</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<Focus>0</Focus>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\..\io_port.h</PathWithFileName>
|
||||
<FilenameWithoutPath>io_port.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
||||
|
||||
@ -362,8 +362,8 @@
|
||||
<uC99>0</uC99>
|
||||
<useXO>0</useXO>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define>PLATFORM_ARM,COMPILER_KEIL</Define>
|
||||
<MiscControls>--exceptions</MiscControls>
|
||||
<Define>PLATFORM_ARM,COMPILER_KEIL, ETL_THROW_EXCEPTIONS</Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>..\..\..\etl;..\Keil</IncludePath>
|
||||
</VariousControls>
|
||||
@ -773,6 +773,11 @@
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\ihash.h</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<FileName>io_port.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\..\io_port.h</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
|
||||
@ -31,136 +31,62 @@ SOFTWARE.
|
||||
#include "../type_traits.h"
|
||||
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
#include <string>
|
||||
#include <ostream>
|
||||
|
||||
void f(int a)
|
||||
{
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
struct Data
|
||||
{
|
||||
int i;
|
||||
char c;
|
||||
short s[3];
|
||||
};
|
||||
|
||||
SUITE(test_alignment)
|
||||
{
|
||||
//*************************************************************************
|
||||
TEST(test_align_at)
|
||||
{
|
||||
size_t alignment;
|
||||
|
||||
// 1
|
||||
typedef etl::align_at<char, 1> align_char_1;
|
||||
alignment = etl::alignment_of<align_char_1>::value;
|
||||
CHECK_EQUAL(1, alignment);
|
||||
|
||||
// 2
|
||||
typedef etl::align_at<char, 2> align_char_2;
|
||||
alignment = etl::alignment_of<align_char_2>::value;
|
||||
CHECK_EQUAL(2, alignment);
|
||||
|
||||
align_char_2 data2[2];
|
||||
CHECK((size_t(&data2[0]) % 2) == 0);
|
||||
CHECK((size_t(&data2[1]) % 2) == 0);
|
||||
|
||||
// 4
|
||||
typedef etl::align_at<char, 4> align_char_4;
|
||||
alignment = etl::alignment_of<align_char_4>::value;
|
||||
CHECK_EQUAL(4, alignment);
|
||||
|
||||
align_char_4 data4[2];
|
||||
CHECK((size_t(&data4[0]) % 4) == 0);
|
||||
CHECK((size_t(&data4[1]) % 4) == 0);
|
||||
|
||||
// 8
|
||||
typedef etl::align_at<char, 8> align_char_8;
|
||||
alignment = etl::alignment_of<align_char_8>::value;
|
||||
CHECK_EQUAL(8, alignment);
|
||||
|
||||
align_char_8 data8[2];
|
||||
CHECK((size_t(&data8[0]) % 8) == 0);
|
||||
CHECK((size_t(&data8[1]) % 8) == 0);
|
||||
|
||||
// 16
|
||||
typedef etl::align_at<char, 16> align_char_16;
|
||||
alignment = etl::alignment_of<align_char_16>::value;
|
||||
CHECK_EQUAL(16, alignment);
|
||||
|
||||
align_char_16 data16[2];
|
||||
CHECK((size_t(&data16[0]) % 16) == 0);
|
||||
CHECK((size_t(&data16[1]) % 16) == 0);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_align_as)
|
||||
TEST(test_aligned_storage)
|
||||
{
|
||||
size_t alignment;
|
||||
size_t expected;
|
||||
|
||||
// char
|
||||
typedef etl::align_as<char, char> align_char_char;
|
||||
alignment = etl::alignment_of<align_char_char>::value;
|
||||
expected = std::alignment_of<char>::value;
|
||||
typedef etl::aligned_storage<sizeof(uint16_t), etl::alignment_of<uint32_t>::value>::type storage32_t;
|
||||
static storage32_t data32[10];
|
||||
|
||||
alignment = etl::alignment_of<storage32_t>::value;
|
||||
expected = std::alignment_of<uint32_t>::value;
|
||||
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
// short
|
||||
typedef etl::align_as<char, short> align_char_short;
|
||||
alignment = etl::alignment_of<align_char_short>::value;
|
||||
expected = std::alignment_of<short>::value;
|
||||
for (int i = 0; i < 10; ++i)
|
||||
{
|
||||
CHECK_EQUAL(0, size_t(&data32[1]) % expected);
|
||||
}
|
||||
|
||||
etl::aligned_storage<100, 8>::type data9;
|
||||
f(static_cast<int>(data9));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_aligned_storage_as)
|
||||
{
|
||||
size_t alignment;
|
||||
size_t expected;
|
||||
|
||||
typedef etl::aligned_storage_as<sizeof(uint16_t), uint32_t>::type storage32_t;
|
||||
static storage32_t data32[10];
|
||||
|
||||
alignment = etl::alignment_of<storage32_t>::value;
|
||||
expected = std::alignment_of<uint32_t>::value;
|
||||
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
align_char_short data_short[2];
|
||||
CHECK((size_t(&data_short[0].value) % expected) == 0);
|
||||
CHECK((size_t(&data_short[1].value) % expected) == 0);
|
||||
for (int i = 0; i < 10; ++i)
|
||||
{
|
||||
CHECK_EQUAL(0, size_t(&data32[1]) % expected);
|
||||
}
|
||||
|
||||
// int
|
||||
typedef etl::align_as<char, int> align_char_int;
|
||||
alignment = etl::alignment_of<align_char_int>::value;
|
||||
expected = std::alignment_of<int>::value;
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
align_char_int data_int[2];
|
||||
CHECK((size_t(&data_int[0].value) % expected) == 0);
|
||||
CHECK((size_t(&data_int[1].value) % expected) == 0);
|
||||
|
||||
// long
|
||||
typedef etl::align_as<char, long> align_char_long;
|
||||
alignment = etl::alignment_of<align_char_long>::value;
|
||||
expected = std::alignment_of<long>::value;
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
align_char_long data_long[2];
|
||||
CHECK((size_t(&data_long[0].value) % expected) == 0);
|
||||
CHECK((size_t(&data_long[1].value) % expected) == 0);
|
||||
|
||||
// long long
|
||||
typedef etl::align_as<char, long long> align_char_long_long;
|
||||
alignment = etl::alignment_of<align_char_long_long>::value;
|
||||
expected = std::alignment_of<long long>::value;
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
align_char_long_long data_long_long[2];
|
||||
CHECK((size_t(&data_long_long[0].value) % expected) == 0);
|
||||
CHECK((size_t(&data_long_long[1].value) % expected) == 0);
|
||||
|
||||
// double
|
||||
typedef etl::align_as<char, double> align_char_double;
|
||||
alignment = etl::alignment_of<align_char_double>::value;
|
||||
expected = std::alignment_of<double>::value;
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
align_char_double data_double[2];
|
||||
CHECK((size_t(&data_double[0].value) % expected) == 0);
|
||||
CHECK((size_t(&data_double[1].value) % expected) == 0);
|
||||
|
||||
// struct Data
|
||||
typedef etl::align_as<char, Data> align_char_data;
|
||||
alignment = etl::alignment_of<align_char_data>::value;
|
||||
expected = std::alignment_of<Data>::value;
|
||||
CHECK_EQUAL(expected, alignment);
|
||||
|
||||
align_char_data data_data[2];
|
||||
CHECK((size_t(&data_data[0].value) % expected) == 0);
|
||||
CHECK((size_t(&data_data[1].value) % expected) == 0);
|
||||
etl::aligned_storage<100, 8>::type data9;
|
||||
f(static_cast<int>(data9));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ namespace
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_construct_from_string)
|
||||
{
|
||||
{
|
||||
std::bitset<60> compare("110001001000110100010101100111001100010010001101000101011001");
|
||||
etl::bitset<60> data("110001001000110100010101100111001100010010001101000101011001");
|
||||
|
||||
@ -441,7 +441,7 @@ namespace
|
||||
etl::bitset<60> shift2(0x48D159E0);
|
||||
etl::bitset<60> shift11(0x91A2B3C000);
|
||||
|
||||
data2 = data1 << 1;
|
||||
data2 = data1 << 1;
|
||||
CHECK(data2 == shift1);
|
||||
|
||||
data2 = data1 << 2;
|
||||
@ -560,7 +560,7 @@ namespace
|
||||
data2 ^= data1;
|
||||
CHECK(data2 == data3);
|
||||
}
|
||||
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_big_bitset)
|
||||
{
|
||||
@ -587,7 +587,7 @@ namespace
|
||||
{
|
||||
CHECK_EQUAL(compare.test(i), data.test(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_small_bitset)
|
||||
@ -611,10 +611,10 @@ namespace
|
||||
|
||||
data.set("000000");
|
||||
CHECK_EQUAL(0, data.find_first(false));
|
||||
CHECK_EQUAL(6, data.find_first(true));
|
||||
CHECK_EQUAL(etl::ibitset::npos, data.find_first(true));
|
||||
|
||||
data.set("111111");
|
||||
CHECK_EQUAL(6, data.find_first(false));
|
||||
CHECK_EQUAL(etl::ibitset::npos, data.find_first(false));
|
||||
CHECK_EQUAL(0, data.find_first(true));
|
||||
|
||||
data.set("000001");
|
||||
@ -646,12 +646,12 @@ namespace
|
||||
data.set("000000");
|
||||
CHECK_EQUAL(0, data.find_next(false, 0));
|
||||
CHECK_EQUAL(1, data.find_next(false, 1));
|
||||
CHECK_EQUAL(6, data.find_next(true, 2));
|
||||
CHECK_EQUAL(etl::ibitset::npos, data.find_next(true, 2));
|
||||
|
||||
data.set("111111");
|
||||
CHECK_EQUAL(0, data.find_next(true, 0));
|
||||
CHECK_EQUAL(1, data.find_next(true, 1));
|
||||
CHECK_EQUAL(6, data.find_next(false, 2));
|
||||
CHECK_EQUAL(etl::ibitset::npos, data.find_next(false, 2));
|
||||
|
||||
data.set("001110");
|
||||
CHECK_EQUAL(0, data.find_next(false, 0));
|
||||
|
||||
@ -12,16 +12,31 @@
|
||||
#include "crc64_ecma.h"
|
||||
#include "cyclic_value.h"
|
||||
#include "deque.h"
|
||||
|
||||
#if !defined(COMPILER_IAR)
|
||||
#include "io_port.h"
|
||||
#include "vector.h"
|
||||
#include "variant.h"
|
||||
#endif
|
||||
|
||||
#if defined(COMPILER_KEIL)
|
||||
#pragma diag_suppress 550
|
||||
#pragma diag_suppress 177
|
||||
#endif
|
||||
|
||||
#if defined(COMPILER_IAR)
|
||||
#pragma diag_suppress = pe177
|
||||
#endif
|
||||
|
||||
struct Test
|
||||
{
|
||||
Test(int i, double d)
|
||||
: i(i),
|
||||
d(d)
|
||||
{
|
||||
}
|
||||
|
||||
int i;
|
||||
double d;
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
// algorithm
|
||||
//*****************************************************************************
|
||||
@ -90,23 +105,22 @@ void test_algorithm()
|
||||
//*****************************************************************************
|
||||
// alignment
|
||||
//*****************************************************************************
|
||||
etl::align_at<int, 16> data9;
|
||||
etl::align_at<char, 16> data10;
|
||||
etl::aligned_storage<100, 8>::type data9;
|
||||
etl::aligned_storage_as<100, double>::type data10;
|
||||
|
||||
void test_alignment()
|
||||
{
|
||||
data9.value = 0;
|
||||
data10.value = 0;
|
||||
int a = static_cast<int&>(data9);
|
||||
|
||||
etl::align_at<char, 1> data1;
|
||||
etl::align_at<char, 2> data2;
|
||||
etl::align_at<char, 4> data3;
|
||||
etl::align_at<char, 8> data4;
|
||||
etl::aligned_storage<1, 1>::type data1;
|
||||
etl::aligned_storage<1, 2>::type data2;
|
||||
etl::aligned_storage<1, 4>::type data3;
|
||||
etl::aligned_storage<1, 8>::type data4;
|
||||
|
||||
etl::align_as<char, char> data5;
|
||||
etl::align_as<char, short> data6;
|
||||
etl::align_as<char, int> data7;
|
||||
etl::align_as<char, double> data8;
|
||||
etl::aligned_storage_as<1, char>::type data5;
|
||||
etl::aligned_storage_as<1, short>::type data6;
|
||||
etl::aligned_storage_as<1, int>::type data7;
|
||||
etl::aligned_storage_as<1, double>::type data8;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
@ -219,12 +233,108 @@ void test_cyclic_value()
|
||||
b = cv1 != cv2;
|
||||
}
|
||||
|
||||
template <uintptr_t ADDRESS>
|
||||
struct serial_port
|
||||
{
|
||||
etl::io_port_ro<uint8_t, ADDRESS> rxdata;
|
||||
etl::io_port_wo<uint8_t, ADDRESS + 1> txdata;
|
||||
etl::io_port_rw<uint16_t, ADDRESS + 2> control;
|
||||
etl::io_port_ro<uint16_t, ADDRESS + 4> status;
|
||||
etl::io_port_wos<uint8_t, ADDRESS + 6> control2;
|
||||
};
|
||||
|
||||
struct dynamic_serial_port
|
||||
{
|
||||
dynamic_serial_port(uint8_t* base)
|
||||
: rxdata(base),
|
||||
txdata(base + 1),
|
||||
control(base + 2),
|
||||
status(base + 4),
|
||||
control2(base + 6)
|
||||
{
|
||||
}
|
||||
|
||||
etl::io_port_ro<uint8_t> rxdata;
|
||||
etl::io_port_wo<uint8_t> txdata;
|
||||
etl::io_port_rw<uint16_t> control;
|
||||
etl::io_port_ro<uint16_t> status;
|
||||
etl::io_port_wos<uint8_t> control2;
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
// cyclic_value
|
||||
// io_port
|
||||
//*****************************************************************************
|
||||
void test_io_port()
|
||||
{
|
||||
serial_port<0x1234> port1;
|
||||
|
||||
uint8_t rxdata = port1.rxdata;
|
||||
port1.txdata = 0x34;
|
||||
port1.control = 0x5678; // Little endian.
|
||||
uint16_t status = port1.status;
|
||||
port1.control2 = 0xDE;
|
||||
int control2 = port1.control2;
|
||||
|
||||
uint8_t memory[7];
|
||||
dynamic_serial_port port2(memory);
|
||||
|
||||
uint8_t rxdata2 = port2.rxdata;
|
||||
port2.txdata = 0x34;
|
||||
port2.control = 0x5678; // Little endian.
|
||||
uint16_t status2 = port2.status;
|
||||
port2.control2 = 0xDE;
|
||||
int control22 = port2.control2;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
// variant
|
||||
//*****************************************************************************
|
||||
void test_variant()
|
||||
{
|
||||
typedef etl::variant<int, double, Test> Data;
|
||||
|
||||
Data data;
|
||||
|
||||
data = int(1);
|
||||
int i = data;
|
||||
|
||||
data = double(2.2);
|
||||
double d = data;
|
||||
|
||||
data = Test(3, 3.3);
|
||||
Test test(data);
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
// deque
|
||||
//*****************************************************************************
|
||||
void test_deque()
|
||||
{
|
||||
typedef etl::deque<Test, 10> Data;
|
||||
|
||||
Data data;
|
||||
|
||||
data.push_back(Test(1, 1.1));
|
||||
data.push_back(Test(2, 2.2));
|
||||
|
||||
Data::iterator it = data.begin();
|
||||
data.erase(it);
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
// vector
|
||||
//*****************************************************************************
|
||||
void test_vector()
|
||||
{
|
||||
typedef etl::vector<Test, 10> Data;
|
||||
|
||||
Data data;
|
||||
|
||||
data.push_back(Test(1, 1.1));
|
||||
data.push_back(Test(2, 2.2));
|
||||
|
||||
Data::iterator it = data.begin();
|
||||
data.erase(it);
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
@ -232,5 +342,13 @@ void test_deque()
|
||||
//*****************************************************************************
|
||||
int main()
|
||||
{
|
||||
test_algorithm();
|
||||
test_alignment();
|
||||
test_array();
|
||||
test_bitset();
|
||||
test_crc();
|
||||
test_cyclic_value();
|
||||
test_deque();
|
||||
test_vector();
|
||||
test_io_port();
|
||||
}
|
||||
|
||||
112
test/test_io_port.cpp
Normal file
112
test/test_io_port.cpp
Normal file
@ -0,0 +1,112 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
|
||||
Copyright(c) 2014 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 <UnitTest++/UnitTest++.h>
|
||||
|
||||
#include "../io_port.h"
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
template <uintptr_t ADDRESS>
|
||||
struct serial_port
|
||||
{
|
||||
etl::io_port_ro<uint8_t, ADDRESS> rxdata;
|
||||
etl::io_port_wo<uint8_t, ADDRESS + 1> txdata;
|
||||
etl::io_port_rw<uint16_t, ADDRESS + 2> control;
|
||||
etl::io_port_ro<uint16_t, ADDRESS + 4> status;
|
||||
etl::io_port_wos<uint8_t, ADDRESS + 6> control2;
|
||||
};
|
||||
|
||||
struct dynamic_serial_port
|
||||
{
|
||||
dynamic_serial_port(uint8_t* base)
|
||||
: rxdata(base),
|
||||
txdata(base + 1),
|
||||
control(base + 2),
|
||||
status(base + 4),
|
||||
control2(base + 6)
|
||||
{
|
||||
}
|
||||
|
||||
etl::io_port_ro<uint8_t> rxdata;
|
||||
etl::io_port_wo<uint8_t> txdata;
|
||||
etl::io_port_rw<uint16_t> control;
|
||||
etl::io_port_ro<uint16_t> status;
|
||||
etl::io_port_wos<uint8_t> control2;
|
||||
};
|
||||
|
||||
namespace
|
||||
{
|
||||
SUITE(test_alignment)
|
||||
{
|
||||
//*************************************************************************
|
||||
TEST(test_io_port)
|
||||
{
|
||||
serial_port<0x1234> port;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_dynamic_io_port)
|
||||
{
|
||||
uint8_t memory[7];
|
||||
memory[0] = 0x12;
|
||||
memory[1] = 0x00;
|
||||
memory[2] = 0x00;
|
||||
memory[3] = 0x00;
|
||||
memory[4] = 0xBC;
|
||||
memory[5] = 0x9A;
|
||||
memory[6] = 0x00;
|
||||
|
||||
dynamic_serial_port port(memory);
|
||||
|
||||
uint8_t rxdata = port.rxdata;
|
||||
CHECK_EQUAL(memory[0], rxdata);
|
||||
CHECK_EQUAL(memory[0], port.rxdata);
|
||||
|
||||
port.txdata = 0x34;
|
||||
CHECK_EQUAL(0x34, memory[1]);
|
||||
|
||||
port.control = 0x5678; // Little endian.
|
||||
CHECK_EQUAL(0x5678, memory[2] | (memory[3] << 8));
|
||||
|
||||
uint16_t status = port.status;
|
||||
CHECK_EQUAL(0x9ABC, status);
|
||||
CHECK_EQUAL(0x9ABC, port.status);
|
||||
|
||||
port.control2 = 0xDE;
|
||||
CHECK_EQUAL(0xDE, memory[6]);
|
||||
|
||||
int control2 = port.control2;
|
||||
CHECK_EQUAL(0xDE, control2);
|
||||
CHECK_EQUAL(0xDE, port.control2);
|
||||
|
||||
port.control2.set_address(0x1000);
|
||||
uint8_t* address = port.control2.get_address();
|
||||
CHECK_EQUAL(reinterpret_cast<uint8_t* const>(0x1000), address);
|
||||
}
|
||||
};
|
||||
}
|
||||
192
test/test_optional.cpp
Normal file
192
test/test_optional.cpp
Normal file
@ -0,0 +1,192 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
|
||||
Copyright(c) 2015 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 <UnitTest++/UnitTest++.h>
|
||||
|
||||
#include <string>
|
||||
#include <ostream>
|
||||
|
||||
#include "../optional.h"
|
||||
#include "../vector.h"
|
||||
#include "data.h"
|
||||
|
||||
typedef TestDataNDC<std::string> Data;
|
||||
|
||||
std::ostream& operator << (std::ostream& os, const Data& data)
|
||||
{
|
||||
os << data.value;
|
||||
return os;
|
||||
}
|
||||
|
||||
std::ostream& operator << (std::ostream& os, const etl::optional<Data>& data)
|
||||
{
|
||||
os << data.value();
|
||||
return os;
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
SUITE(test_optional)
|
||||
{
|
||||
//*************************************************************************
|
||||
TEST(test_initialisation)
|
||||
{
|
||||
etl::optional<Data> data1;
|
||||
etl::optional<Data> data2;
|
||||
|
||||
CHECK(!bool(data1));
|
||||
CHECK(!bool(data2));
|
||||
|
||||
data1 = Data("Hello");
|
||||
CHECK(bool(data1));
|
||||
CHECK_EQUAL(Data("Hello"), data1);
|
||||
|
||||
data1 = data2;
|
||||
CHECK(!bool(data1));
|
||||
CHECK(!bool(data2));
|
||||
|
||||
data1 = Data("World");
|
||||
data2 = data1;
|
||||
CHECK(bool(data1));
|
||||
CHECK(bool(data2));
|
||||
|
||||
etl::optional<Data> data3(data1);
|
||||
CHECK(bool(data3));
|
||||
CHECK_EQUAL(data1, data3);
|
||||
|
||||
etl::optional<Data> data4;
|
||||
data4 = Data("Hello");
|
||||
data4 = etl::nullopt;
|
||||
CHECK(!bool(data4));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_nullopt)
|
||||
{
|
||||
etl::optional<Data> data;
|
||||
data = Data("Hello");
|
||||
data = etl::nullopt;
|
||||
CHECK(!bool(data));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_value_or)
|
||||
{
|
||||
etl::optional<Data> data;
|
||||
|
||||
Data result = data.value_or(Data("Default"));
|
||||
CHECK_EQUAL(Data("Default"), result);
|
||||
|
||||
data = Data("Value");
|
||||
result = data.value_or(Data("Default"));
|
||||
CHECK_EQUAL(Data("Value"), result);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_equality)
|
||||
{
|
||||
etl::optional<Data> data1;
|
||||
etl::optional<Data> data2;
|
||||
|
||||
CHECK(data1 == data2);
|
||||
|
||||
data1 = Data("Data1");
|
||||
CHECK(!(data1 == data2));
|
||||
|
||||
data1 = etl::nullopt;
|
||||
data2 = Data("Data2");
|
||||
CHECK(!(data1 == data2));
|
||||
|
||||
data1 = Data("Data1");
|
||||
data2 = Data("Data1");
|
||||
CHECK(data1 == data2);
|
||||
|
||||
data1 = Data("Data1");
|
||||
data2 = Data("Data2");
|
||||
CHECK(!(data1 == data2));
|
||||
|
||||
CHECK(data1 == Data("Data1"));
|
||||
CHECK(!(data1 == Data("Data2")));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_less_than)
|
||||
{
|
||||
etl::optional<Data> data1;
|
||||
etl::optional<Data> data2;
|
||||
|
||||
CHECK(!(data1 < data2));
|
||||
|
||||
data1 = Data("Data1");
|
||||
CHECK(!(data1 < data2));
|
||||
|
||||
data1 = etl::nullopt;
|
||||
data2 = Data("Data2");
|
||||
CHECK(data1 < data2);
|
||||
|
||||
data1 = Data("Data1");
|
||||
data2 = Data("Data2");
|
||||
CHECK(data1 < data2);
|
||||
CHECK(!(data2 < data1));
|
||||
|
||||
CHECK(data1 < Data("Data2"));
|
||||
CHECK(!(data1 < Data("Data1")));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_container_of_optional)
|
||||
{
|
||||
etl::vector<etl::optional<Data>, 10> container;
|
||||
|
||||
container.resize(5, Data("1"));
|
||||
|
||||
CHECK(bool(container[0]));
|
||||
CHECK(bool(container[1]));
|
||||
CHECK(bool(container[2]));
|
||||
CHECK(bool(container[3]));
|
||||
CHECK(bool(container[4]));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_optional_container)
|
||||
{
|
||||
etl::optional<etl::vector<Data, 10>> container;
|
||||
CHECK(!bool(container));
|
||||
|
||||
container = etl::vector<Data, 10>();
|
||||
CHECK(bool(container));
|
||||
|
||||
container.value().resize(5, Data("1"));
|
||||
|
||||
CHECK_EQUAL(Data("1"), container.value()[0]);
|
||||
CHECK_EQUAL(Data("1"), container.value()[1]);
|
||||
CHECK_EQUAL(Data("1"), container.value()[2]);
|
||||
CHECK_EQUAL(Data("1"), container.value()[3]);
|
||||
CHECK_EQUAL(Data("1"), container.value()[4]);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -155,11 +155,13 @@
|
||||
<ClInclude Include="..\..\imap.h" />
|
||||
<ClInclude Include="..\..\instance_count.h" />
|
||||
<ClInclude Include="..\..\integral_limits.h" />
|
||||
<ClInclude Include="..\..\io_port.h" />
|
||||
<ClInclude Include="..\..\ipool.h" />
|
||||
<ClInclude Include="..\..\iqueue.h" />
|
||||
<ClInclude Include="..\..\iset.h" />
|
||||
<ClInclude Include="..\..\istack.h" />
|
||||
<ClInclude Include="..\..\container.h" />
|
||||
<ClInclude Include="..\..\iunordered_map.h" />
|
||||
<ClInclude Include="..\..\ivector.h" />
|
||||
<ClInclude Include="..\..\largest.h" />
|
||||
<ClInclude Include="..\..\list.h" />
|
||||
@ -172,6 +174,7 @@
|
||||
<ClInclude Include="..\..\nullptr.h" />
|
||||
<ClInclude Include="..\..\numeric.h" />
|
||||
<ClInclude Include="..\..\observer.h" />
|
||||
<ClInclude Include="..\..\optional.h" />
|
||||
<ClInclude Include="..\..\parameter_type.h" />
|
||||
<ClInclude Include="..\..\pool.h" />
|
||||
<ClInclude Include="..\..\pool_base.h" />
|
||||
@ -186,6 +189,8 @@
|
||||
<ClInclude Include="..\..\stack_base.h" />
|
||||
<ClInclude Include="..\..\static_assert.h" />
|
||||
<ClInclude Include="..\..\type_traits.h" />
|
||||
<ClInclude Include="..\..\unordered_map.h" />
|
||||
<ClInclude Include="..\..\unordered_map_base.h" />
|
||||
<ClInclude Include="..\..\variant.h" />
|
||||
<ClInclude Include="..\..\vector.h" />
|
||||
<ClInclude Include="..\..\vector_base.h" />
|
||||
@ -225,6 +230,7 @@
|
||||
<ClCompile Include="..\test_array.cpp">
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</AdditionalIncludeDirectories>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_binary.cpp" />
|
||||
<ClCompile Include="..\test_bitset.cpp" />
|
||||
@ -233,13 +239,18 @@
|
||||
<ClCompile Include="..\test_container.cpp" />
|
||||
<ClCompile Include="..\test_crc.cpp" />
|
||||
<ClCompile Include="..\test_cyclic_value.cpp" />
|
||||
<ClCompile Include="..\test_deque.cpp" />
|
||||
<ClCompile Include="..\test_deque.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_endian.cpp" />
|
||||
<ClCompile Include="..\test_enum_type.cpp" />
|
||||
<ClCompile Include="..\test_error_handler.cpp" />
|
||||
<ClCompile Include="..\test_exception.cpp" />
|
||||
<ClCompile Include="..\test_fixed_iterator.cpp" />
|
||||
<ClCompile Include="..\test_flat_set.cpp" />
|
||||
<ClCompile Include="..\test_flat_set.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_fnv_1.cpp" />
|
||||
<ClCompile Include="..\test_forward_list.cpp" />
|
||||
<ClCompile Include="..\test_function.cpp" />
|
||||
@ -247,19 +258,28 @@
|
||||
<ClCompile Include="..\test_hash.cpp" />
|
||||
<ClCompile Include="..\test_instance_count.cpp" />
|
||||
<ClCompile Include="..\test_integral_limits.cpp" />
|
||||
<ClCompile Include="..\test_io_port.cpp" />
|
||||
<ClCompile Include="..\test_largest.cpp" />
|
||||
<ClCompile Include="..\test_list.cpp" />
|
||||
<ClCompile Include="..\test_flat_map.cpp" />
|
||||
<ClCompile Include="..\test_flat_map.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_map.cpp" />
|
||||
<ClCompile Include="..\test_maths.cpp" />
|
||||
<ClCompile Include="..\test_numeric.cpp" />
|
||||
<ClCompile Include="..\test_observer.cpp" />
|
||||
<ClCompile Include="..\test_observer.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_optional.cpp" />
|
||||
<ClCompile Include="..\test_pool.cpp" />
|
||||
<ClCompile Include="..\test_queue.cpp" />
|
||||
<ClCompile Include="..\test_set.cpp" />
|
||||
<ClCompile Include="..\test_smallest.cpp" />
|
||||
<ClCompile Include="..\test_stack.cpp" />
|
||||
<ClCompile Include="..\test_type_traits.cpp" />
|
||||
<ClCompile Include="..\test_unordered_map.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_variant.cpp" />
|
||||
<ClCompile Include="..\test_vector.cpp" />
|
||||
<ClCompile Include="..\test_visitor.cpp" />
|
||||
|
||||
@ -351,6 +351,21 @@
|
||||
<ClInclude Include="..\..\iflat_set.h">
|
||||
<Filter>ETL\Containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\unordered_map.h">
|
||||
<Filter>ETL\Containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\iunordered_map.h">
|
||||
<Filter>ETL\Containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\unordered_map_base.h">
|
||||
<Filter>ETL\Containers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\io_port.h">
|
||||
<Filter>ETL\Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\optional.h">
|
||||
<Filter>ETL\Containers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\unittest-cpp\UnitTest++\AssertException.cpp">
|
||||
@ -449,9 +464,6 @@
|
||||
<ClCompile Include="..\test_visitor.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_observer.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_list.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -548,6 +560,18 @@
|
||||
<ClCompile Include="..\test_flat_set.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_observer.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_io_port.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_unordered_map.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\test_optional.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\Doxyfile">
|
||||
|
||||
@ -309,6 +309,17 @@ namespace etl
|
||||
template <typename T> struct rank<T[]> : public integral_constant<size_t, rank<T>::value + 1> {};
|
||||
template <typename T, size_t N> struct rank<T[N]> : public integral_constant<size_t, rank<T>::value + 1> {};
|
||||
|
||||
/// decay
|
||||
///\ingroup type_traits
|
||||
template <typename T>
|
||||
struct decay
|
||||
{
|
||||
typedef typename etl::remove_reference<T>::type U;
|
||||
typedef typename etl::conditional<etl::is_array<U>::value,
|
||||
typename etl::remove_extent<U>::type*,
|
||||
typename etl::remove_cv<U>::type>::type type;
|
||||
};
|
||||
|
||||
/// Alignment templates.
|
||||
/// These require compiler specific intrinsics.
|
||||
///\ingroup type_traits
|
||||
|
||||
47
variant.h
47
variant.h
@ -46,6 +46,7 @@ SOFTWARE.
|
||||
|
||||
#if defined(COMPILER_KEIL)
|
||||
#pragma diag_suppress 940
|
||||
#pragma diag_suppress 111
|
||||
#endif
|
||||
|
||||
//*****************************************************************************
|
||||
@ -451,6 +452,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -473,6 +475,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -503,6 +506,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -524,6 +528,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -553,6 +558,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -573,6 +579,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -601,6 +608,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -620,6 +628,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -647,6 +656,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -665,6 +675,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -691,6 +702,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -708,6 +720,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -733,6 +746,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -749,6 +763,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -773,6 +788,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -788,6 +804,7 @@ namespace etl
|
||||
#else
|
||||
error_handler::error(variant_invalid_type_id_exception());
|
||||
#endif
|
||||
return reinterpret_cast<TBase&>(*p_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -816,7 +833,7 @@ namespace etl
|
||||
{
|
||||
STATIC_ASSERT(Type_Is_Supported<T>::value, "Unsupported type");
|
||||
|
||||
new(&data.value[0]) T(value);
|
||||
new(static_cast<T*>(data)) T(value);
|
||||
type_id = Type_Id_Lookup<T>::type_id;
|
||||
}
|
||||
|
||||
@ -839,7 +856,7 @@ namespace etl
|
||||
{
|
||||
STATIC_ASSERT(Type_Is_Supported<T>::value, "Unsupported type");
|
||||
|
||||
new(&data.value[0]) T(value);
|
||||
new(data) T(value);
|
||||
type_id = Type_Id_Lookup<T>::type_id;
|
||||
return *this;
|
||||
}
|
||||
@ -894,14 +911,14 @@ namespace etl
|
||||
{
|
||||
switch (type_id)
|
||||
{
|
||||
case 0: reader.read(reinterpret_cast<T1&>(*&data.value[0])); break;
|
||||
case 1: reader.read(reinterpret_cast<T2&>(*&data.value[0])); break;
|
||||
case 2: reader.read(reinterpret_cast<T3&>(*&data.value[0])); break;
|
||||
case 3: reader.read(reinterpret_cast<T4&>(*&data.value[0])); break;
|
||||
case 4: reader.read(reinterpret_cast<T5&>(*&data.value[0])); break;
|
||||
case 5: reader.read(reinterpret_cast<T6&>(*&data.value[0])); break;
|
||||
case 6: reader.read(reinterpret_cast<T7&>(*&data.value[0])); break;
|
||||
case 7: reader.read(reinterpret_cast<T8&>(*&data.value[0])); break;
|
||||
case 0: reader.read(static_cast<T1&>(data)); break;
|
||||
case 1: reader.read(static_cast<T2&>(data)); break;
|
||||
case 2: reader.read(static_cast<T3&>(data)); break;
|
||||
case 3: reader.read(static_cast<T4&>(data)); break;
|
||||
case 4: reader.read(static_cast<T5&>(data)); break;
|
||||
case 5: reader.read(static_cast<T6&>(data)); break;
|
||||
case 6: reader.read(static_cast<T7&>(data)); break;
|
||||
case 7: reader.read(static_cast<T8&>(data)); break;
|
||||
default:
|
||||
#ifdef ETL_THROW_EXCEPTIONS
|
||||
throw variant_invalid_type_id_exception();
|
||||
@ -958,7 +975,7 @@ namespace etl
|
||||
#endif
|
||||
}
|
||||
|
||||
return reinterpret_cast<T&>(*&data.value[0]);
|
||||
return static_cast<T&>(data);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
@ -980,7 +997,7 @@ namespace etl
|
||||
#endif
|
||||
}
|
||||
|
||||
return reinterpret_cast<const T&>(*&data.value[0]);
|
||||
return static_cast<const T&>(data);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
@ -990,7 +1007,7 @@ namespace etl
|
||||
template <typename TBase>
|
||||
TBase& upcast()
|
||||
{
|
||||
return upcast_functor<TBase, T1, T2, T3, T4, T5, T6, T7, T8>()(&data.value[0], type_id);
|
||||
return upcast_functor<TBase, T1, T2, T3, T4, T5, T6, T7, T8>()(data, type_id);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
@ -1000,7 +1017,7 @@ namespace etl
|
||||
template <typename TBase>
|
||||
const TBase& upcast() const
|
||||
{
|
||||
return upcast_functor<TBase, T1, T2, T3, T4, T5, T6, T7, T8>()(&data.value[0], type_id);
|
||||
return upcast_functor<TBase, T1, T2, T3, T4, T5, T6, T7, T8>()(data, type_id);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
@ -1031,7 +1048,7 @@ namespace etl
|
||||
/// The internal storage.
|
||||
/// Aligned on a suitable boundary, which should be good for all types.
|
||||
//***************************************************************************
|
||||
align_at<array<uint8_t, sizeof(largest_t)>, ALIGNMENT> data;
|
||||
typename etl::aligned_storage<sizeof(largest_t), etl::alignment_of<largest_t>::value>::type data;
|
||||
|
||||
//***************************************************************************
|
||||
/// The id of the current stored type.
|
||||
|
||||
10
vector.h
10
vector.h
@ -64,7 +64,7 @@ namespace etl
|
||||
/// Constructor.
|
||||
//*************************************************************************
|
||||
vector()
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE)
|
||||
{
|
||||
}
|
||||
|
||||
@ -73,7 +73,7 @@ namespace etl
|
||||
///\param initialSize The initial size of the vector.
|
||||
//*************************************************************************
|
||||
explicit vector(size_t initialSize)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE)
|
||||
{
|
||||
ivector<T>::resize(initialSize);
|
||||
}
|
||||
@ -84,7 +84,7 @@ namespace etl
|
||||
///\param value The value to fill the vector with.
|
||||
//*************************************************************************
|
||||
vector(size_t initialSize, typename ivector<T>::parameter_t value)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE)
|
||||
{
|
||||
ivector<T>::resize(initialSize, value);
|
||||
}
|
||||
@ -97,7 +97,7 @@ namespace etl
|
||||
//*************************************************************************
|
||||
template <typename TIterator>
|
||||
vector(TIterator first, TIterator last)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer.value[0]), MAX_SIZE)
|
||||
: ivector<T>(reinterpret_cast<T*>(&buffer[0]), MAX_SIZE)
|
||||
{
|
||||
ivector<T>::assign(first, last);
|
||||
}
|
||||
@ -117,7 +117,7 @@ namespace etl
|
||||
|
||||
private:
|
||||
|
||||
etl::align_as<array<uint8_t, MAX_SIZE * sizeof(T)>, T> buffer;
|
||||
typename etl::aligned_storage<sizeof(T) * MAX_SIZE, etl::alignment_of<T>::value>::type buffer[MAX_SIZE];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user