Fix LLVM & GCC highlighted error for initialisation order.

This commit is contained in:
John Wellbelove 2019-11-16 19:06:30 +00:00
parent aafb6ecf9b
commit 7a4c74f8df
7 changed files with 15 additions and 13 deletions

View File

@ -1166,7 +1166,6 @@ namespace etl
: lookup(lookup_)
, storage(storage_)
{
ETL_ASSERT(lookup.capacity() <= storage.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
}
//*********************************************************************
@ -1374,7 +1373,6 @@ namespace etl
indirect_vector()
: etl::iindirect_vector<T>(lookup_vector, storage_pool)
{
this->initialise();
}
//*************************************************************************
@ -1384,7 +1382,6 @@ namespace etl
explicit indirect_vector(size_t initial_size)
: etl::iindirect_vector<T>(lookup_vector, storage_pool)
{
this->initialise();
this->resize(initial_size);
}
@ -1396,7 +1393,6 @@ namespace etl
indirect_vector(size_t initial_size, typename etl::iindirect_vector<T>::parameter_t value)
: etl::iindirect_vector<T>(lookup_vector, storage_pool)
{
this->initialise();
this->resize(initial_size, value);
}
@ -1498,7 +1494,7 @@ namespace etl
indirect_vector(etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
this->initialise();
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
}
//*************************************************************************
@ -1508,7 +1504,7 @@ namespace etl
explicit indirect_vector(size_t initial_size, etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
this->initialise();
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
this->resize(initial_size);
}
@ -1520,7 +1516,7 @@ namespace etl
indirect_vector(size_t initial_size, typename etl::iindirect_vector<T>::parameter_t value, etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
this->initialise();
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
this->resize(initial_size, value);
}
@ -1534,6 +1530,7 @@ namespace etl
indirect_vector(TIterator first, TIterator last, etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
this->assign(first, last);
}
@ -1544,6 +1541,7 @@ namespace etl
indirect_vector(std::initializer_list<T> init, etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
this->assign(init.begin(), init.end());
}
#endif
@ -1554,6 +1552,7 @@ namespace etl
indirect_vector(const indirect_vector& other, etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
this->assign(other.begin(), other.end());
}
@ -1577,6 +1576,7 @@ namespace etl
indirect_vector(indirect_vector&& other, etl::ivector<T*>& lookup_, etl::ipool& pool_)
: etl::iindirect_vector<T>(lookup_, pool_)
{
ETL_ASSERT(lookup_.capacity() <= pool_.capacity(), ETL_ERROR(indirect_vector_buffer_missmatch));
this->move_container(std::move(other));
}

View File

@ -38,7 +38,7 @@ SOFTWARE.
///\ingroup utilities
#define ETL_VERSION_MAJOR 14
#define ETL_VERSION_MINOR 36
#define ETL_VERSION_MINOR 37
#define ETL_VERSION_PATCH 0
#define ETL_VERSION ETL_STRINGIFY(ETL_VERSION_MAJOR) "." ETL_STRINGIFY(ETL_VERSION_MINOR) "." ETL_STRINGIFY(ETL_VERSION_PATCH)

View File

@ -1,6 +1,6 @@
{
"name": "Embedded Template Library",
"version": "14.36.0",
"version": "14.37.0",
"authors": {
"name": "John Wellbelove",
"email": "<john.wellbelove@etlcpp.com>"

View File

@ -1,5 +1,5 @@
name=Embedded Template Library
version=14.36.0
version=14.37.0
author= John Wellbelove <john.wellbelove@etlcpp.com>
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
license=MIT

View File

@ -1,3 +1,7 @@
===============================================================================
14.37.0
Added etl::indirect_vector
===============================================================================
14.36.0
Added wchar_t, u16 and u32 version of the 'set from string' function.

View File

@ -227,7 +227,6 @@ namespace
//*************************************************************************
TEST(test_move_constructor)
{
const size_t SIZE = 10U;
typedef etl::indirect_vector<std::unique_ptr<uint32_t>, SIZE> Data;
std::unique_ptr<uint32_t> p1(new uint32_t(1U));
@ -275,7 +274,6 @@ namespace
//*************************************************************************
TEST(test_move_assignment)
{
const size_t SIZE = 10U;
typedef etl::indirect_vector<std::unique_ptr<uint32_t>, SIZE> Data;
std::unique_ptr<uint32_t> p1(new uint32_t(1U));
@ -327,7 +325,6 @@ namespace
//*************************************************************************
TEST(test_move_assignment_interface)
{
const size_t SIZE = 10U;
typedef etl::indirect_vector<std::unique_ptr<uint32_t>, SIZE> Data;
typedef etl::iindirect_vector<std::unique_ptr<uint32_t>> IData;

View File

@ -223,6 +223,7 @@
<MultiProcessorCompilation>false</MultiProcessorCompilation>
<LanguageStandard>stdcpp17</LanguageStandard>
<SupportJustMyCode>false</SupportJustMyCode>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>