Updates for Code::Blocks and CodeLite

Updates so that Code::Blocks and CodeLite can compile the tests.
Made include guards upper case.
This commit is contained in:
jwellbelove 2014-11-05 17:41:17 +00:00
parent 740b088282
commit 1108b9e5c7
45 changed files with 313 additions and 248 deletions

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_array__ #ifndef __ETL_ARRAY__
#define __etl_array__ #define __ETL_ARRAY__
#include <iterator> #include <iterator>
#include <functional> #include <functional>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_container__ #ifndef __ETL_CONTAINER__
#define __etl_container__ #define __ETL_CONTAINER__
#include <cstddef> #include <cstddef>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_crc16__ #ifndef __ETL_CRC16__
#define __etl_crc16__ #define __ETL_CRC16__
#include <cstdint> #include <cstdint>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_crc16_ccitt__ #ifndef __ETL_CRC16_CCITT__
#define __etl_crc16_ccitt__ #define __ETL_CRC16_CCITT__
#include <cstdint> #include <cstdint>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_crc32__ #ifndef __ETL_CRC32__
#define __etl_crc32__ #define __ETL_CRC32__
#include <cstdint> #include <cstdint>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_crc64_ecma__ #ifndef __ETL_CRC64_ECMA__
#define __etl_crc64_ecma__ #define __ETL_CRC64_ECMA__
#include <cstdint> #include <cstdint>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_crc8_ccitt__ #ifndef __ETL_CRC8_CCITT__
#define __etl_crc8_ccitt__ #define __ETL_CRC8_CCITT__
#include <cstdint> #include <cstdint>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_cyclic_value__ #ifndef __ETL_CYCLIC_VALUE__
#define __etl_cyclic_value__ #define __ETL_CYCLIC_VALUE__
#include <cstddef> #include <cstddef>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_deque__ #ifndef __ETL_DEQUE__
#define __etl_deque__ #define __ETL_DEQUE__
#include <cstddef> #include <cstddef>
#include <iterator> #include <iterator>

View File

@ -26,12 +26,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_in_ideque_h__ #ifndef __ETL_IN_IDEQUE_H__
#error This header is a private element of etl::deque & etl::ideque #error This header is a private element of etl::deque & etl::ideque
#endif #endif
#ifndef __etl_deque_base__ #ifndef __ETL_DEQUE_BASE__
#define __etl_deque_base__ #define __ETL_DEQUE_BASE__
#include <cstddef> #include <cstddef>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_enum_type__ #ifndef __ETL_ENUM_TYPE__
#define __etl_enum_type__ #define __ETL_ENUM_TYPE__
///\defgroup enum_type enum_type ///\defgroup enum_type enum_type
/// Smart enumerations.<br> /// Smart enumerations.<br>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_exception__ #ifndef __ETL_EXCEPTION__
#define __etl_exception__ #define __ETL_EXCEPTION__
///\defgroup exception exception ///\defgroup exception exception
/// The base class for all ETL exceptions. /// The base class for all ETL exceptions.

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_function__ #ifndef __ETL_FUNCTION__
#define __etl_function__ #define __ETL_FUNCTION__
//***************************************************************************** //*****************************************************************************
///\defgroup function function ///\defgroup function function

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_functional__ #ifndef __ETL_FUNCTIONAL__
#define __etl_functional__ #define __ETL_FUNCTIONAL__
///\defgroup functional functional ///\defgroup functional functional
///\ingroup Utilities ///\ingroup Utilities

View File

@ -26,9 +26,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_ideque__ #ifndef __ETL_IDEQUE__
#define __etl_ideque__ #define __ETL_IDEQUE__
#define __etl_in_ideque_h__ #define __ETL_IN_IDEQUE_H__
#include <cstddef> #include <cstddef>
#include <iterator> #include <iterator>
@ -77,6 +77,9 @@ namespace etl
//*************************************************** //***************************************************
iterator() iterator()
: index(0),
p_deque(0),
p_buffer(0)
{ {
} }
@ -106,7 +109,7 @@ namespace etl
} }
//*************************************************** //***************************************************
reference operator +=(difference_type offset) iterator operator +=(difference_type offset)
{ {
if (offset > 0) if (offset > 0)
{ {
@ -118,11 +121,11 @@ namespace etl
operator -= (-offset); operator -= (-offset);
} }
return p_buffer[index]; return *this;
} }
//*************************************************** //***************************************************
reference operator -=(difference_type offset) iterator operator -=(difference_type offset)
{ {
if (offset > 0) if (offset > 0)
{ {
@ -134,7 +137,7 @@ namespace etl
operator += (-offset); operator += (-offset);
} }
return p_buffer[index]; return *this;
} }
//*************************************************** //***************************************************
@ -213,19 +216,19 @@ namespace etl
} }
//*************************************************** //***************************************************
inline difference_type get_index() const difference_type get_index() const
{ {
return index; return index;
} }
//*************************************************** //***************************************************
inline ideque& get_deque() const ideque& get_deque() const
{ {
return *p_deque; return *p_deque;
} }
//*************************************************** //***************************************************
inline pointer get_buffer() const pointer get_buffer() const
{ {
return p_buffer; return p_buffer;
} }
@ -260,6 +263,9 @@ namespace etl
//*************************************************** //***************************************************
const_iterator() const_iterator()
: index(0),
p_deque(0),
p_buffer(0)
{ {
} }
@ -297,7 +303,7 @@ namespace etl
} }
//*************************************************** //***************************************************
reference operator +=(difference_type offset) const_iterator operator +=(difference_type offset)
{ {
if (offset > 0) if (offset > 0)
{ {
@ -309,11 +315,11 @@ namespace etl
operator -= (-offset); operator -= (-offset);
} }
return p_buffer[index]; return *this;
} }
//*************************************************** //***************************************************
reference operator -=(difference_type offset) const_iterator operator -=(difference_type offset)
{ {
if (offset > 0) if (offset > 0)
{ {
@ -325,7 +331,7 @@ namespace etl
operator += (-offset); operator += (-offset);
} }
return p_buffer[index]; return *this;
} }
//*************************************************** //***************************************************
@ -392,19 +398,19 @@ namespace etl
} }
//*************************************************** //***************************************************
inline difference_type get_index() const difference_type get_index() const
{ {
return index; return index;
} }
//*************************************************** //***************************************************
inline ideque& get_deque() const ideque& get_deque() const
{ {
return *p_deque; return *p_deque;
} }
//*************************************************** //***************************************************
inline pointer get_buffer() const pointer get_buffer() const
{ {
return p_buffer; return p_buffer;
} }
@ -459,7 +465,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets an iterator to the beginning of the deque. /// Gets an iterator to the beginning of the deque.
//************************************************************************* //*************************************************************************
inline iterator begin() iterator begin()
{ {
return first; return first;
} }
@ -467,7 +473,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets an iterator to the end of the deque. /// Gets an iterator to the end of the deque.
//************************************************************************* //*************************************************************************
inline iterator end() iterator end()
{ {
return ++iterator(last); return ++iterator(last);
} }
@ -475,7 +481,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const iterator to the beginning of the deque. /// Gets a const iterator to the beginning of the deque.
//************************************************************************* //*************************************************************************
inline const_iterator begin() const const_iterator begin() const
{ {
return first; return first;
} }
@ -483,7 +489,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const iterator to the end of the deque. /// Gets a const iterator to the end of the deque.
//************************************************************************* //*************************************************************************
inline const_iterator end() const const_iterator end() const
{ {
return ++iterator(last); return ++iterator(last);
} }
@ -491,7 +497,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const iterator to the beginning of the deque. /// Gets a const iterator to the beginning of the deque.
//************************************************************************* //*************************************************************************
inline const_iterator cbegin() const const_iterator cbegin() const
{ {
return first; return first;
} }
@ -499,7 +505,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const iterator to the end of the deque. /// Gets a const iterator to the end of the deque.
//************************************************************************* //*************************************************************************
inline const_iterator cend() const const_iterator cend() const
{ {
return ++const_iterator(last); return ++const_iterator(last);
} }
@ -507,7 +513,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a reverse iterator to the end of the deque. /// Gets a reverse iterator to the end of the deque.
//************************************************************************* //*************************************************************************
inline reverse_iterator rbegin() reverse_iterator rbegin()
{ {
return reverse_iterator(end()); return reverse_iterator(end());
} }
@ -515,7 +521,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a reverse iterator to the beginning of the deque. /// Gets a reverse iterator to the beginning of the deque.
//************************************************************************* //*************************************************************************
inline reverse_iterator rend() reverse_iterator rend()
{ {
return reverse_iterator(begin()); return reverse_iterator(begin());
} }
@ -523,7 +529,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const reverse iterator to the end of the deque. /// Gets a const reverse iterator to the end of the deque.
//************************************************************************* //*************************************************************************
inline const_reverse_iterator rbegin() const const_reverse_iterator rbegin() const
{ {
return const_reverse_iterator(end()); return const_reverse_iterator(end());
} }
@ -531,7 +537,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const reverse iterator to the beginning of the deque. /// Gets a const reverse iterator to the beginning of the deque.
//************************************************************************* //*************************************************************************
inline const_reverse_iterator rend() const const_reverse_iterator rend() const
{ {
return const_reverse_iterator(begin()); return const_reverse_iterator(begin());
} }
@ -539,7 +545,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const reverse iterator to the end of the deque. /// Gets a const reverse iterator to the end of the deque.
//************************************************************************* //*************************************************************************
inline const_reverse_iterator crbegin() const const_reverse_iterator crbegin() const
{ {
return const_reverse_iterator(cend()); return const_reverse_iterator(cend());
} }
@ -547,7 +553,7 @@ namespace etl
//************************************************************************* //*************************************************************************
/// Gets a const reverse iterator to the beginning of the deque. /// Gets a const reverse iterator to the beginning of the deque.
//************************************************************************* //*************************************************************************
inline const_reverse_iterator crend() const const_reverse_iterator crend() const
{ {
return const_reverse_iterator(cbegin()); return const_reverse_iterator(cbegin());
} }

11
ilist.h
View File

@ -26,9 +26,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_ilist__ #ifndef __ETL_ILIST__
#define __etl_ilist__ #define __ETL_ILIST__
#define __etl_in_ilist_h__ #define __ETL_IN_ILIST_H__
#if WIN32 #if WIN32
#undef min #undef min
@ -717,6 +717,11 @@ namespace etl
else else
{ {
throw list_full(); throw list_full();
return end();
}
#else
{
return end();
} }
#endif #endif
} }

View File

@ -26,9 +26,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_iqueue__ #ifndef __ETL_IQUEUE__
#define __etl_iqueue__ #define __ETL_IQUEUE__
#define __etl_in_iqueue_h__ #define __ETL_IN_IQUEUE_H__
#include <cstddef> #include <cstddef>
@ -70,7 +70,7 @@ namespace etl
if (!full()) if (!full())
{ {
buffer[in] = item; buffer[in] = item;
in = (in == (MAX_SIZE - 1)) ? 0 : ++in; in = (in == (MAX_SIZE - 1)) ? 0 : in + 1;
++current_size; ++current_size;
} }
#ifdef ETL_USE_EXCEPTIONS #ifdef ETL_USE_EXCEPTIONS
@ -95,7 +95,7 @@ namespace etl
if (!full()) if (!full())
{ {
in = (in == (MAX_SIZE - 1)) ? 0 : ++in; in = (in == (MAX_SIZE - 1)) ? 0 : in + 1;
++current_size; ++current_size;
} }
#ifdef ETL_USE_EXCEPTIONS #ifdef ETL_USE_EXCEPTIONS

View File

@ -26,9 +26,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_istack__ #ifndef __ETL_ISTACK__
#define __etl_istack__ #define __ETL_ISTACK__
#define __etl_in_istack_h__ #define __ETL_IN_ISTACK_H__
#include <cstddef> #include <cstddef>

View File

@ -26,9 +26,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_ivector__ #ifndef __ETL_IVECTOR__
#define __etl_ivector__ #define __ETL_IVECTOR__
#define __etl_in_ivector_h__ #define __ETL_IN_IVECTOR_H__
#include <iterator> #include <iterator>
#include <algorithm> #include <algorithm>
@ -67,7 +67,7 @@ namespace etl
//********************************************************************* //*********************************************************************
iterator begin() iterator begin()
{ {
return &buffer[0]; return &p_buffer[0];
} }
//********************************************************************* //*********************************************************************
@ -76,7 +76,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_iterator begin() const const_iterator begin() const
{ {
return &buffer[0]; return &p_buffer[0];
} }
//********************************************************************* //*********************************************************************
@ -85,7 +85,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_iterator cbegin() const const_iterator cbegin() const
{ {
return &buffer[0]; return &p_buffer[0];
} }
//********************************************************************* //*********************************************************************
@ -121,7 +121,7 @@ namespace etl
//********************************************************************* //*********************************************************************
iterator end() iterator end()
{ {
return &buffer[current_size]; return &p_buffer[current_size];
} }
//********************************************************************* //*********************************************************************
@ -130,7 +130,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_iterator end() const const_iterator end() const
{ {
return &buffer[current_size]; return &p_buffer[current_size];
} }
//********************************************************************* //*********************************************************************
@ -139,7 +139,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_iterator cend() const const_iterator cend() const
{ {
return &buffer[current_size]; return &p_buffer[current_size];
} }
//********************************************************************* //*********************************************************************
@ -169,6 +169,24 @@ namespace etl
return const_reverse_iterator(cbegin()); return const_reverse_iterator(cbegin());
} }
//*********************************************************************
/// Returns a pointer to the beginning of the vector data.
///\return A pointer to the beginning of the vector data.
//*********************************************************************
pointer data()
{
return p_buffer;
}
//*********************************************************************
/// Returns a const pointer to the beginning of the vector data.
///\return A const pointer to the beginning of the vector data.
//*********************************************************************
const_pointer data() const
{
return p_buffer;
}
//********************************************************************* //*********************************************************************
/// Resizes the vector. /// Resizes the vector.
/// If ETL_USE_EXCEPTIONS is defined and the new size is larger than the /// If ETL_USE_EXCEPTIONS is defined and the new size is larger than the
@ -187,7 +205,7 @@ namespace etl
if (newSize > current_size) if (newSize > current_size)
{ {
std::fill(&buffer[current_size], &buffer[newSize], value); std::fill(&p_buffer[current_size], &p_buffer[newSize], value);
} }
current_size = newSize; current_size = newSize;
@ -310,7 +328,6 @@ namespace etl
} }
} }
template <class TIterator>
//********************************************************************* //*********************************************************************
/// Inserts a range of values to the vector. /// Inserts a range of values to the vector.
/// If ETL_USE_EXCEPTIONS is defined, throws vector_full if the vector does not have enough free space. /// If ETL_USE_EXCEPTIONS is defined, throws vector_full if the vector does not have enough free space.
@ -318,13 +335,16 @@ namespace etl
///\param first The first element to add. ///\param first The first element to add.
///\param last The last + 1 element to add. ///\param last The last + 1 element to add.
//********************************************************************* //*********************************************************************
template <class TIterator>
void insert(iterator position, TIterator first, TIterator last) void insert(iterator position, TIterator first, TIterator last)
{ {
size_t count = std::distance(first, last); size_t count = std::distance(first, last);
if ((current_size + count) > MAX_SIZE) if ((current_size + count) > MAX_SIZE)
{ {
#ifdef ETL_USE_EXCEPTIONS
throw vector_full(); throw vector_full();
#endif
} }
else else
{ {
@ -341,15 +361,15 @@ namespace etl
//********************************************************************* //*********************************************************************
void push_back(const T& value) void push_back(const T& value)
{ {
if (current_size == MAX_SIZE) if (current_size == MAX_SIZE)
{ {
#ifdef ETL_USE_EXCEPTIONS #ifdef ETL_USE_EXCEPTIONS
throw vector_full(); throw vector_full();
#endif #endif
} }
else else
{ {
buffer[current_size++] = value; p_buffer[current_size++] = value;
} }
} }
@ -418,7 +438,7 @@ namespace etl
//********************************************************************* //*********************************************************************
reference front() reference front()
{ {
return buffer[0]; return p_buffer[0];
} }
//********************************************************************* //*********************************************************************
@ -427,7 +447,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_reference front() const const_reference front() const
{ {
return buffer[0]; return p_buffer[0];
} }
//********************************************************************* //*********************************************************************
@ -436,7 +456,7 @@ namespace etl
//********************************************************************* //*********************************************************************
reference back() reference back()
{ {
return buffer[current_size - 1]; return p_buffer[current_size - 1];
} }
//********************************************************************* //*********************************************************************
@ -445,7 +465,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_reference back() const const_reference back() const
{ {
return buffer[current_size - 1]; return p_buffer[current_size - 1];
} }
//********************************************************************* //*********************************************************************
@ -463,7 +483,7 @@ namespace etl
} }
#endif #endif
return buffer[i]; return p_buffer[i];
} }
//********************************************************************* //*********************************************************************
@ -481,7 +501,7 @@ namespace etl
} }
#endif #endif
return buffer[i]; return p_buffer[i];
} }
//********************************************************************* //*********************************************************************
@ -491,7 +511,7 @@ namespace etl
//********************************************************************* //*********************************************************************
reference operator[](size_t i) reference operator[](size_t i)
{ {
return buffer[i]; return p_buffer[i];
} }
//********************************************************************* //*********************************************************************
@ -501,7 +521,7 @@ namespace etl
//********************************************************************* //*********************************************************************
const_reference operator[](size_t i) const const_reference operator[](size_t i) const
{ {
return buffer[i]; return p_buffer[i];
} }
//********************************************************************* //*********************************************************************
@ -514,7 +534,7 @@ namespace etl
{ {
const size_t length = std::min(MAX_SIZE, other.size()); const size_t length = std::min(MAX_SIZE, other.size());
std::copy(other.begin(), other.begin() + length, buffer); std::copy(other.begin(), other.begin() + length, p_buffer);
current_size = length; current_size = length;
return *this; return *this;
@ -525,15 +545,15 @@ namespace etl
//********************************************************************* //*********************************************************************
/// Constructor. /// Constructor.
//********************************************************************* //*********************************************************************
ivector(T* buffer, size_t MAX_SIZE) ivector(T* p_buffer, size_t MAX_SIZE)
: vector_base(MAX_SIZE), : vector_base(MAX_SIZE),
buffer(buffer) p_buffer(p_buffer)
{ {
} }
private: private:
T* buffer; T* p_buffer;
}; };
//*************************************************************************** //***************************************************************************

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_largest__ #ifndef __ETL_LARGEST__
#define __etl_largest__ #define __ETL_LARGEST__
///\defgroup largest largest ///\defgroup largest largest
///\ingroup utilities ///\ingroup utilities

4
list.h
View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_list__ #ifndef __ETL_LIST__
#define __etl_list__ #define __ETL_LIST__
#include <cstddef> #include <cstddef>

View File

@ -26,12 +26,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_in_ilist_h__ #ifndef __ETL_IN_ILIST_H__
#error This header is a private element of etl::list & etl::ilist #error This header is a private element of etl::list & etl::ilist
#endif #endif
#ifndef __etl_list_base__ #ifndef __ETL_LIST_BASE__
#define __etl_list_base__ #define __ETL_LIST_BASE__
#include <cstddef> #include <cstddef>
#include "exception.h" #include "exception.h"
@ -130,7 +130,10 @@ namespace etl
/// The constructor that is called from derived classes. /// The constructor that is called from derived classes.
//************************************************************************* //*************************************************************************
list_base(size_type max_size) list_base(size_type max_size)
: MAX_SIZE(max_size) : next_free(0),
count(0),
MAX_SIZE(max_size)
{ {
} }

4
log.h
View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_log__ #ifndef __ETL_LOG__
#define __etl_log__ #define __ETL_LOG__
#include <cstddef> #include <cstddef>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_nullptr__ #ifndef __ETL_NULLPTR__
#define __etl_nullptr__ #define __ETL_NULLPTR__
///\defgroup nullptr nullptr ///\defgroup nullptr nullptr
/// A definition of nullptr for compilers that don't support it as standard. /// A definition of nullptr for compilers that don't support it as standard.

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_numeric__ #ifndef __ETL_NUMERIC__
#define __etl_numeric__ #define __ETL_NUMERIC__
///\defgroup numeric numeric ///\defgroup numeric numeric
///\ingroup utilities ///\ingroup utilities

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_observer__ #ifndef __ETL_OBSERVER__
#define __etl_observer__ #define __ETL_OBSERVER__
//***************************************************************************** //*****************************************************************************
///\defgroup observer observer ///\defgroup observer observer
@ -201,14 +201,15 @@ namespace etl
class observer class observer
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T3) = 0; virtual void notification(T2) = 0;
virtual void notification(T4) = 0; virtual void notification(T3) = 0;
virtual void notification(T5) = 0; virtual void notification(T4) = 0;
virtual void notification(T6) = 0; virtual void notification(T5) = 0;
virtual void notification(T7) = 0; virtual void notification(T6) = 0;
virtual void notification(T8) = 0; virtual void notification(T7) = 0;
virtual void notification(T8) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -226,13 +227,14 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T3) = 0; virtual void notification(T2) = 0;
virtual void notification(T4) = 0; virtual void notification(T3) = 0;
virtual void notification(T5) = 0; virtual void notification(T4) = 0;
virtual void notification(T6) = 0; virtual void notification(T5) = 0;
virtual void notification(T7) = 0; virtual void notification(T6) = 0;
virtual void notification(T7) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -249,12 +251,13 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T3) = 0; virtual void notification(T2) = 0;
virtual void notification(T4) = 0; virtual void notification(T3) = 0;
virtual void notification(T5) = 0; virtual void notification(T4) = 0;
virtual void notification(T6) = 0; virtual void notification(T5) = 0;
virtual void notification(T6) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -270,11 +273,12 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T3) = 0; virtual void notification(T2) = 0;
virtual void notification(T4) = 0; virtual void notification(T3) = 0;
virtual void notification(T5) = 0; virtual void notification(T4) = 0;
virtual void notification(T5) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -289,10 +293,11 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T3) = 0; virtual void notification(T2) = 0;
virtual void notification(T4) = 0; virtual void notification(T3) = 0;
virtual void notification(T4) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -306,9 +311,10 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T3) = 0; virtual void notification(T2) = 0;
virtual void notification(T3) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -321,8 +327,9 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T2) = 0; virtual void notification(T1) = 0;
virtual void notification(T2) = 0;
}; };
//********************************************************************* //*********************************************************************
@ -334,7 +341,8 @@ namespace etl
{ {
public: public:
virtual void notification(T1) = 0; virtual ~observer() {}
virtual void notification(T1) = 0;
}; };
} }

4
pow.h
View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_pow__ #ifndef __ETL_POW__
#define __etl_pow__ #define __ETL_POW__
#include <cstddef> #include <cstddef>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_queue__ #ifndef __ETL_QUEUE__
#define __etl_queue__ #define __ETL_QUEUE__
#include <cstddef> #include <cstddef>

View File

@ -26,12 +26,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_in_iqueue_h__ #ifndef __ETL_IN_IQUEUE_H__
#error This header is a private element of etl::queue & etl::iqueue #error This header is a private element of etl::queue & etl::iqueue
#endif #endif
#ifndef __etl_queue_base__ #ifndef __ETL_QUEUE_BASE__
#define __etl_queue_base__ #define __ETL_QUEUE_BASE__
#include <cstddef> #include <cstddef>
@ -153,7 +153,7 @@ namespace etl
{ {
if (!empty()) if (!empty())
{ {
out = (out == (MAX_SIZE - 1)) ? 0 : ++out; out = (out == (MAX_SIZE - 1)) ? 0 : out + 1;
--current_size; --current_size;
} }
} }

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_stack__ #ifndef __ETL_STACK__
#define __etl_stack__ #define __ETL_STACK__
#include <cstddef> #include <cstddef>

View File

@ -26,12 +26,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_in_istack_h__ #ifndef __ETL_IN_ISTACK_H__
#error This header is a private element of etl::stack & etl::istack #error This header is a private element of etl::stack & etl::istack
#endif #endif
#ifndef __etl_stack_base__ #ifndef __ETL_STACK_BASE__
#define __etl_stack_base__ #define __ETL_STACK_BASE__
#include <cstddef> #include <cstddef>
@ -123,7 +123,7 @@ namespace etl
//************************************************************************* //*************************************************************************
void clear() void clear()
{ {
top_index = 0; top_index = 0;
current_size = 0; current_size = 0;
} }

View File

@ -24,8 +24,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_static_assert__ #ifndef __ETL_STATIC_ASSERT__
#define __etl_static_assert__ #define __ETL_STATIC_ASSERT__
#if (WIN32) #if (WIN32)
#define STATIC_ASSERT(Condition, Message) static_assert(Condition, Message) #define STATIC_ASSERT(Condition, Message) static_assert(Condition, Message)

View File

@ -31,6 +31,7 @@ SOFTWARE.
#include <array> #include <array>
#include <vector> #include <vector>
#include <algorithm> #include <algorithm>
#include <iterator>
namespace namespace
{ {

View File

@ -191,4 +191,4 @@ namespace
CHECK_THROW(value.set(2, 7, 4), etl::cyclic_value_illegal_range); CHECK_THROW(value.set(2, 7, 4), etl::cyclic_value_illegal_range);
} }
}; };
} }

View File

@ -816,7 +816,8 @@ namespace FixedDequeTest
data.push_back(5); data.push_back(5);
data.push_back(6); data.push_back(6);
Data::iterator i_next = data.erase(data.end() - 1); Data::iterator i_erase = data.end() - 1;
Data::iterator i_next = data.erase(i_erase);
CHECK_EQUAL(Data::difference_type(expected.size()), std::distance(data.begin(), data.end())); CHECK_EQUAL(Data::difference_type(expected.size()), std::distance(data.begin(), data.end()));
CHECK(std::equal(expected.begin(), expected.end(), data.begin())); CHECK(std::equal(expected.begin(), expected.end(), data.begin()));
@ -839,7 +840,8 @@ namespace FixedDequeTest
data.push_back(6); data.push_back(6);
// Erase near beginning. // Erase near beginning.
Data::iterator i_next = data.erase(data.begin() + 1); Data::iterator i_erase = data.begin() + 1;
Data::iterator i_next = data.erase(i_erase);
CHECK_EQUAL(Data::difference_type(expected1.size()), std::distance(data.begin(), data.end())); CHECK_EQUAL(Data::difference_type(expected1.size()), std::distance(data.begin(), data.end()));
CHECK(std::equal(expected1.begin(), expected1.end(), data.begin())); CHECK(std::equal(expected1.begin(), expected1.end(), data.begin()));
@ -1973,4 +1975,4 @@ namespace FixedDequeTest
CHECK(testDeque1 != testDeque2); CHECK(testDeque1 != testDeque2);
} }
}; };
} }

View File

@ -63,10 +63,6 @@ namespace
struct S2 { char a; short b; char c; }; struct S2 { char a; short b; char c; };
struct S3 { int a; short b; char c; }; struct S3 { int a; short b; char c; };
size_t a = sizeof(S1);
size_t b = sizeof(S2);
size_t c = sizeof(S3);
size = etl::largest<S1, S2, S3>::size; size = etl::largest<S1, S2, S3>::size;
type = std::is_same<S3, etl::largest<S1, S2, S3>::type>::value; type = std::is_same<S3, etl::largest<S1, S2, S3>::type>::value;

View File

@ -280,7 +280,6 @@ namespace
//************************************************************************* //*************************************************************************
TEST_FIXTURE(SetupFixture, AssignSizeValueExcess) TEST_FIXTURE(SetupFixture, AssignSizeValueExcess)
{ {
const size_t EXCESS_SIZE = SIZE + 1;
const int VALUE = 1; const int VALUE = 1;
Data data; Data data;
@ -569,7 +568,9 @@ namespace
are_equal = std::equal(data.begin(), data.end(), compare_data.begin()); are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
CHECK(are_equal); CHECK(are_equal);
CHECK(i_data == data.begin());
are_equal = i_data == data.begin();
CHECK(are_equal);
// Move to the last value and erase. // Move to the last value and erase.
i_compare_data = compare_data.begin(); i_compare_data = compare_data.begin();
@ -583,7 +584,8 @@ namespace
are_equal = std::equal(data.begin(), data.end(), compare_data.begin()); are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
CHECK(are_equal); CHECK(are_equal);
CHECK(i_data == data.end()); are_equal = i_data == data.end();
CHECK(are_equal);
} }
//************************************************************************* //*************************************************************************
@ -732,4 +734,4 @@ namespace
CHECK(are_equal); CHECK(are_equal);
} }
}; };
} }

View File

@ -134,7 +134,7 @@ namespace
queue.push(1); queue.push(1);
} }
CHECK_THROW(queue.push(1), etl::queue_full); CHECK_THROW(queue.push(1), etl::queue_full);
} }
//************************************************************************* //*************************************************************************
@ -298,4 +298,4 @@ namespace
CHECK(pass); CHECK(pass);
} }
}; };
} }

View File

@ -259,4 +259,4 @@ namespace
CHECK(pass); CHECK(pass);
} }
}; };
} }

View File

@ -394,50 +394,50 @@ namespace
//************************************************************************* //*************************************************************************
TEST(make_signed) TEST(make_signed)
{ {
CHECK((std::is_same<etl::make_signed<char>::type, std::make_signed<char>::type>::value)); CHECK((std::is_same<etl::make_signed<char>::type, std::make_signed<char>::type>::value));
CHECK((std::is_same<etl::make_signed<signed char>::type, std::make_signed<signed char>::type>::value)); CHECK((std::is_same<etl::make_signed<signed char>::type, std::make_signed<signed char>::type>::value));
CHECK((std::is_same<etl::make_signed<unsigned char>::type, std::make_signed<unsigned char>::type>::value)); CHECK((std::is_same<etl::make_signed<unsigned char>::type, std::make_signed<unsigned char>::type>::value));
CHECK((std::is_same<etl::make_signed<wchar_t>::type, std::make_signed<wchar_t>::type>::value)); CHECK((std::is_same<etl::make_signed<wchar_t>::type, std::make_signed<wchar_t>::type>::value));
CHECK((std::is_same<etl::make_signed<short>::type, std::make_signed<short>::type>::value)); CHECK((std::is_same<etl::make_signed<short>::type, std::make_signed<short>::type>::value));
CHECK((std::is_same<etl::make_signed<signed short>::type, std::make_signed<signed short>::type>::value)); CHECK((std::is_same<etl::make_signed<signed short>::type, std::make_signed<signed short>::type>::value));
CHECK((std::is_same<etl::make_signed<unsigned short>::type, std::make_signed<unsigned short>::type>::value)); CHECK((std::is_same<etl::make_signed<unsigned short>::type, std::make_signed<unsigned short>::type>::value));
CHECK((std::is_same<etl::make_signed<int>::type, std::make_signed<int>::type>::value)); CHECK((std::is_same<etl::make_signed<int>::type, std::make_signed<int>::type>::value));
CHECK((std::is_same<etl::make_signed<signed int>::type, std::make_signed<signed int>::type>::value)); CHECK((std::is_same<etl::make_signed<signed int>::type, std::make_signed<signed int>::type>::value));
CHECK((std::is_same<etl::make_signed<unsigned int>::type, std::make_signed<unsigned int>::type>::value)); CHECK((std::is_same<etl::make_signed<unsigned int>::type, std::make_signed<unsigned int>::type>::value));
CHECK((std::is_same<etl::make_signed<long>::type, std::make_signed<long>::type>::value)); CHECK((std::is_same<etl::make_signed<long>::type, std::make_signed<long>::type>::value));
CHECK((std::is_same<etl::make_signed<signed long>::type, std::make_signed<signed long>::type>::value)); CHECK((std::is_same<etl::make_signed<signed long>::type, std::make_signed<signed long>::type>::value));
CHECK((std::is_same<etl::make_signed<unsigned long>::type, std::make_signed<unsigned long>::type>::value)); CHECK((std::is_same<etl::make_signed<unsigned long>::type, std::make_signed<unsigned long>::type>::value));
CHECK((std::is_same<etl::make_signed<long long>::type, std::make_signed<long long>::type>::value)); CHECK((std::is_same<etl::make_signed<long long>::type, std::make_signed<long long>::type>::value));
CHECK((std::is_same<etl::make_signed<signed long long>::type, std::make_signed<signed long long>::type>::value)); CHECK((std::is_same<etl::make_signed<signed long long>::type, std::make_signed<signed long long>::type>::value));
CHECK((std::is_same<etl::make_signed<unsigned long long>::type, std::make_signed<unsigned long long>::type>::value)); CHECK((std::is_same<etl::make_signed<unsigned long long>::type, std::make_signed<unsigned long long>::type>::value));
CHECK((std::is_same<etl::make_signed<const int>::type, std::make_signed<const int>::type>::value)); CHECK((std::is_same<etl::make_signed<const int>::type, std::make_signed<const int>::type>::value));
CHECK((std::is_same<etl::make_signed<volatile int>::type, std::make_signed<volatile int>::type>::value)); CHECK((std::is_same<etl::make_signed<volatile int>::type, std::make_signed<volatile int>::type>::value));
CHECK((std::is_same<etl::make_signed<const int>::type, std::make_signed<const int>::type>::value)); CHECK((std::is_same<etl::make_signed<const int>::type, std::make_signed<const int>::type>::value));
CHECK((std::is_same<etl::make_signed<const volatile int>::type, std::make_signed<const volatile int>::type>::value)); CHECK((std::is_same<etl::make_signed<const volatile int>::type, std::make_signed<const volatile int>::type>::value));
} }
//************************************************************************* //*************************************************************************
TEST(make_unsigned) TEST(make_unsigned)
{ {
CHECK((std::is_same<etl::make_unsigned<char>::type, std::make_unsigned<char>::type>::value)); CHECK((std::is_same<etl::make_unsigned<char>::type, std::make_unsigned<char>::type>::value));
CHECK((std::is_same<etl::make_unsigned<signed char>::type, std::make_unsigned<signed char>::type>::value)); CHECK((std::is_same<etl::make_unsigned<signed char>::type, std::make_unsigned<signed char>::type>::value));
CHECK((std::is_same<etl::make_unsigned<unsigned char>::type, std::make_unsigned<unsigned char>::type>::value)); CHECK((std::is_same<etl::make_unsigned<unsigned char>::type, std::make_unsigned<unsigned char>::type>::value));
CHECK((std::is_same<etl::make_unsigned<wchar_t>::type, std::make_unsigned<wchar_t>::type>::value)); CHECK((std::is_same<etl::make_unsigned<wchar_t>::type, std::make_unsigned<wchar_t>::type>::value));
CHECK((std::is_same<etl::make_unsigned<short>::type, std::make_unsigned<short>::type>::value)); CHECK((std::is_same<etl::make_unsigned<short>::type, std::make_unsigned<short>::type>::value));
CHECK((std::is_same<etl::make_unsigned<signed short>::type, std::make_unsigned<signed short>::type>::value)); CHECK((std::is_same<etl::make_unsigned<signed short>::type, std::make_unsigned<signed short>::type>::value));
CHECK((std::is_same<etl::make_unsigned<unsigned short>::type, std::make_unsigned<unsigned short>::type>::value)); CHECK((std::is_same<etl::make_unsigned<unsigned short>::type, std::make_unsigned<unsigned short>::type>::value));
CHECK((std::is_same<etl::make_unsigned<int>::type, std::make_unsigned<int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<int>::type, std::make_unsigned<int>::type>::value));
CHECK((std::is_same<etl::make_unsigned<signed int>::type, std::make_unsigned<signed int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<signed int>::type, std::make_unsigned<signed int>::type>::value));
CHECK((std::is_same<etl::make_unsigned<unsigned int>::type, std::make_unsigned<unsigned int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<unsigned int>::type, std::make_unsigned<unsigned int>::type>::value));
CHECK((std::is_same<etl::make_unsigned<long>::type, std::make_unsigned<long>::type>::value)); CHECK((std::is_same<etl::make_unsigned<long>::type, std::make_unsigned<long>::type>::value));
CHECK((std::is_same<etl::make_unsigned<signed long>::type, std::make_unsigned<signed long>::type>::value)); CHECK((std::is_same<etl::make_unsigned<signed long>::type, std::make_unsigned<signed long>::type>::value));
CHECK((std::is_same<etl::make_unsigned<unsigned long>::type, std::make_unsigned<unsigned long>::type>::value)); CHECK((std::is_same<etl::make_unsigned<unsigned long>::type, std::make_unsigned<unsigned long>::type>::value));
CHECK((std::is_same<etl::make_unsigned<long long>::type, std::make_unsigned<long long>::type>::value)); CHECK((std::is_same<etl::make_unsigned<long long>::type, std::make_unsigned<long long>::type>::value));
CHECK((std::is_same<etl::make_unsigned<signed long long>::type, std::make_unsigned<signed long long>::type>::value)); CHECK((std::is_same<etl::make_unsigned<signed long long>::type, std::make_unsigned<signed long long>::type>::value));
CHECK((std::is_same<etl::make_unsigned<unsigned long long>::type, std::make_unsigned<unsigned long long>::type>::value)); CHECK((std::is_same<etl::make_unsigned<unsigned long long>::type, std::make_unsigned<unsigned long long>::type>::value));
CHECK((std::is_same<etl::make_unsigned<const int>::type, std::make_unsigned<const int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<const int>::type, std::make_unsigned<const int>::type>::value));
CHECK((std::is_same<etl::make_unsigned<volatile int>::type, std::make_unsigned<volatile int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<volatile int>::type, std::make_unsigned<volatile int>::type>::value));
CHECK((std::is_same<etl::make_unsigned<const int>::type, std::make_unsigned<const int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<const int>::type, std::make_unsigned<const int>::type>::value));
CHECK((std::is_same<etl::make_unsigned<const volatile int>::type, std::make_unsigned<const volatile int>::type>::value)); CHECK((std::is_same<etl::make_unsigned<const volatile int>::type, std::make_unsigned<const volatile int>::type>::value));
} }
@ -483,19 +483,19 @@ namespace
float c; float c;
}; };
CHECK_EQUAL(std::alignment_of<char>::value, etl::alignment_of<char>::value); CHECK(std::alignment_of<char>::value == etl::alignment_of<char>::value);
CHECK_EQUAL(std::alignment_of<unsigned char>::value, etl::alignment_of<unsigned char>::value); CHECK(std::alignment_of<unsigned char>::value == etl::alignment_of<unsigned char>::value);
CHECK_EQUAL(std::alignment_of<short>::value, etl::alignment_of<short>::value); CHECK(std::alignment_of<short>::value == etl::alignment_of<short>::value);
CHECK_EQUAL(std::alignment_of<unsigned short>::value, etl::alignment_of<unsigned short>::value); CHECK(std::alignment_of<unsigned short>::value == etl::alignment_of<unsigned short>::value);
CHECK_EQUAL(std::alignment_of<int>::value, etl::alignment_of<int>::value); CHECK(std::alignment_of<int>::value == etl::alignment_of<int>::value);
CHECK_EQUAL(std::alignment_of<unsigned int>::value, etl::alignment_of<unsigned int>::value); CHECK(std::alignment_of<unsigned int>::value == etl::alignment_of<unsigned int>::value);
CHECK_EQUAL(std::alignment_of<long>::value, etl::alignment_of<long>::value); CHECK(std::alignment_of<long>::value == etl::alignment_of<long>::value);
CHECK_EQUAL(std::alignment_of<unsigned long>::value, etl::alignment_of<unsigned long>::value); CHECK(std::alignment_of<unsigned long>::value == etl::alignment_of<unsigned long>::value);
CHECK_EQUAL(std::alignment_of<long long>::value, etl::alignment_of<long long>::value); CHECK(std::alignment_of<long long>::value == etl::alignment_of<long long>::value);
CHECK_EQUAL(std::alignment_of<unsigned long long>::value, etl::alignment_of<unsigned long long>::value); CHECK(std::alignment_of<unsigned long long>::value == etl::alignment_of<unsigned long long>::value);
CHECK_EQUAL(std::alignment_of<float>::value, etl::alignment_of<float>::value); CHECK(std::alignment_of<float>::value == etl::alignment_of<float>::value);
CHECK_EQUAL(std::alignment_of<double>::value, etl::alignment_of<double>::value); CHECK(std::alignment_of<double>::value == etl::alignment_of<double>::value);
CHECK_EQUAL(std::alignment_of<Test>::value, etl::alignment_of<Test>::value); CHECK(std::alignment_of<Test>::value == etl::alignment_of<Test>::value);
} }
}; };
} }

View File

@ -179,6 +179,34 @@ namespace
CHECK(isEqual); CHECK(isEqual);
} }
//*************************************************************************
TEST_FIXTURE(SetupFixture, DataPointer)
{
TestData testData(initial_data.begin(), initial_data.end());
Data data(testData.begin(), testData.end());
bool isEqual = std::equal(data.data(),
data.data() + data.size(),
testData.begin());
CHECK(isEqual);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, DataConstPointer)
{
TestData testData(initial_data.begin(), initial_data.end());
const Data data(testData.begin(), testData.end());
bool isEqual = std::equal(data.data(),
data.data() + data.size(),
testData.begin());
CHECK(isEqual);
}
//************************************************************************* //*************************************************************************
TEST_FIXTURE(SetupFixture, ResizeUp) TEST_FIXTURE(SetupFixture, ResizeUp)
{ {
@ -235,7 +263,6 @@ namespace
//************************************************************************* //*************************************************************************
TEST_FIXTURE(SetupFixture, Indexing) TEST_FIXTURE(SetupFixture, Indexing)
{ {
const size_t INITIAL_SIZE = 5;
TestData testData(initial_data.begin(), initial_data.end()); TestData testData(initial_data.begin(), initial_data.end());
Data data(testData.begin(), testData.end()); Data data(testData.begin(), testData.end());
@ -249,7 +276,6 @@ namespace
//************************************************************************* //*************************************************************************
TEST_FIXTURE(SetupFixture, IndexingConst) TEST_FIXTURE(SetupFixture, IndexingConst)
{ {
const size_t INITIAL_SIZE = 5;
const TestData testData(initial_data.begin(), initial_data.end()); const TestData testData(initial_data.begin(), initial_data.end());
const Data data(testData.begin(), testData.end()); const Data data(testData.begin(), testData.end());
@ -263,7 +289,6 @@ namespace
//************************************************************************* //*************************************************************************
TEST_FIXTURE(SetupFixture, Clear) TEST_FIXTURE(SetupFixture, Clear)
{ {
const size_t INITIAL_SIZE = 5;
TestData testData(initial_data.begin(), initial_data.end()); TestData testData(initial_data.begin(), initial_data.end());
Data data(testData.begin(), testData.end()); Data data(testData.begin(), testData.end());
@ -275,7 +300,6 @@ namespace
//************************************************************************* //*************************************************************************
TEST_FIXTURE(SetupFixture, AssignRange) TEST_FIXTURE(SetupFixture, AssignRange)
{ {
const size_t INITIAL_SIZE = 5;
TestData testData(initial_data.begin(), initial_data.end()); TestData testData(initial_data.begin(), initial_data.end());
Data data; Data data;
@ -326,7 +350,6 @@ namespace
{ {
const size_t INITIAL_SIZE = 5; const size_t INITIAL_SIZE = 5;
const int INITIAL_VALUE = 1; const int INITIAL_VALUE = 1;
const int INSERT_VALUE = 2;
TestData testData(INITIAL_SIZE, INITIAL_VALUE); TestData testData(INITIAL_SIZE, INITIAL_VALUE);
Data data(INITIAL_SIZE, INITIAL_VALUE); Data data(INITIAL_SIZE, INITIAL_VALUE);
@ -370,7 +393,6 @@ namespace
{ {
const size_t INITIAL_SIZE = SIZE; const size_t INITIAL_SIZE = SIZE;
const int INITIAL_VALUE = 1; const int INITIAL_VALUE = 1;
const int INSERT_VALUE = 2;
Data data(INITIAL_SIZE, INITIAL_VALUE); Data data(INITIAL_SIZE, INITIAL_VALUE);
@ -393,7 +415,6 @@ namespace
const size_t INITIAL_SIZE = 5; const size_t INITIAL_SIZE = 5;
const size_t INSERT_SIZE = 3; const size_t INSERT_SIZE = 3;
const int INITIAL_VALUE = 1; const int INITIAL_VALUE = 1;
const int INSERT_VALUE = 2;
TestData testData; TestData testData;
Data data; Data data;
@ -443,7 +464,6 @@ namespace
const size_t INITIAL_SIZE = SIZE; const size_t INITIAL_SIZE = SIZE;
const size_t INSERT_SIZE = 4; const size_t INSERT_SIZE = 4;
const int INITIAL_VALUE = 1; const int INITIAL_VALUE = 1;
const int INSERT_VALUE = 2;
Data data(INITIAL_SIZE, INITIAL_VALUE); Data data(INITIAL_SIZE, INITIAL_VALUE);

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_type_traits__ #ifndef __ETL_TYPE_TRAITS__
#define __etl_type_traits__ #define __ETL_TYPE_TRAITS__
#include <cstddef> #include <cstddef>
#include "nullptr.h" #include "nullptr.h"
@ -225,7 +225,9 @@ namespace etl
template <typename T> struct make_signed { typedef T type; }; template <typename T> struct make_signed { typedef T type; };
template <> struct make_signed<char> { typedef signed char type; }; template <> struct make_signed<char> { typedef signed char type; };
template <> struct make_signed<unsigned char> { typedef signed char type; }; template <> struct make_signed<unsigned char> { typedef signed char type; };
#ifdef WIN32
template <> struct make_signed<wchar_t> { typedef short type; }; template <> struct make_signed<wchar_t> { typedef short type; };
#endif
template <> struct make_signed<unsigned short> { typedef short type; }; template <> struct make_signed<unsigned short> { typedef short type; };
template <> struct make_signed<unsigned int> { typedef int type; }; template <> struct make_signed<unsigned int> { typedef int type; };
template <> struct make_signed<unsigned long> { typedef long type; }; template <> struct make_signed<unsigned long> { typedef long type; };
@ -239,8 +241,10 @@ namespace etl
template <typename T> struct make_unsigned { typedef T type; }; template <typename T> struct make_unsigned { typedef T type; };
template <> struct make_unsigned<char> { typedef unsigned char type; }; template <> struct make_unsigned<char> { typedef unsigned char type; };
template <> struct make_unsigned<signed char> { typedef unsigned char type; }; template <> struct make_unsigned<signed char> { typedef unsigned char type; };
template <> struct make_unsigned<wchar_t> { typedef unsigned short type; };
template <> struct make_unsigned<short> { typedef unsigned short type; }; template <> struct make_unsigned<short> { typedef unsigned short type; };
#ifdef WIN32
template <> struct make_unsigned<wchar_t> { typedef unsigned short type; };
#endif
template <> struct make_unsigned<int> { typedef unsigned int type; }; template <> struct make_unsigned<int> { typedef unsigned int type; };
template <> struct make_unsigned<long> { typedef unsigned long type; }; template <> struct make_unsigned<long> { typedef unsigned long type; };
template <> struct make_unsigned<long long> { typedef unsigned long long type; }; template <> struct make_unsigned<long long> { typedef unsigned long long type; };
@ -297,13 +301,11 @@ namespace etl
/// These require compiler specific intrinsics. /// These require compiler specific intrinsics.
///\ingroup type_traits ///\ingroup type_traits
#ifdef _MSC_VER #ifdef _MSC_VER
// alignment_of
template <typename T> struct alignment_of : integral_constant <size_t, __alignof(T)> {}; template <typename T> struct alignment_of : integral_constant <size_t, __alignof(T)> {};
#endif #endif
#ifdef __GNUC__ #ifdef __GNUC__
// alignment_of template <typename T> struct alignment_of : integral_constant <size_t, size_t(__alignof__(T))> {};
template <typename T> struct alignment_of : integral_constant <size_t, __alignof__(T)> {};
#endif #endif
} }

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_vector__ #ifndef __ETL_VECTOR__
#define __etl_vector__ #define __ETL_VECTOR__
#include <cstddef> #include <cstddef>
#include <iterator> #include <iterator>

View File

@ -26,12 +26,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_in_ivector_h__ #ifndef __ETL_IN_IVECTOR_H__
#error This header is a private element of etl::vector & etl::ivector #error This header is a private element of etl::vector & etl::ivector
#endif #endif
#ifndef __etl_vector_base__ #ifndef __ETL_VECTOR_BASE__
#define __etl_vector_base__ #define __ETL_VECTOR_BASE__
#include <cstddef> #include <cstddef>

View File

@ -26,8 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
******************************************************************************/ ******************************************************************************/
#ifndef __etl_visitor__ #ifndef __ETL_VISITOR__
#define __etl_visitor__ #define __ETL_VISITOR__
//***************************************************************************** //*****************************************************************************
///\defgroup visitor visitor ///\defgroup visitor visitor