Merge remote-tracking branch 'origin/development'

# Conflicts:
#	include/etl/private/ivectorpointer.h
#	include/etl/version.h
#	src/private/pvoidvector.cpp
#	support/Release notes.txt
#	test/test_vector_pointer.cpp
This commit is contained in:
John Wellbelove 2018-07-04 20:26:34 +01:00
parent 58f10b305d
commit 90bc895cce
6 changed files with 57 additions and 25 deletions

View File

@ -50,12 +50,12 @@ namespace etl
public:
typedef T* value_type;
typedef T*& reference;
typedef const T* const & const_reference;
typedef T** pointer;
typedef const T* const * const_pointer;
typedef T** iterator;
typedef const T* const * const_iterator;
typedef value_type& reference;
typedef const value_type& const_reference;
typedef value_type* pointer;
typedef const value_type* const_pointer;
typedef value_type* iterator;
typedef const value_type* const_iterator;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef size_t size_type;
@ -452,12 +452,12 @@ namespace etl
public:
typedef const T* value_type;
typedef const T*& reference;
typedef const T* const & const_reference;
typedef const T** pointer;
typedef const T* const * const_pointer;
typedef const T** iterator;
typedef const T* const * const_iterator;
typedef value_type& reference;
typedef const value_type& const_reference;
typedef value_type* pointer;
typedef const value_type* const_pointer;
typedef value_type* iterator;
typedef const value_type* const_iterator;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef size_t size_type;

View File

@ -61,12 +61,12 @@ namespace etl
public:
typedef void* value_type;
typedef void*& reference;
typedef const void*& const_reference;
typedef void** pointer;
typedef const void** const_pointer;
typedef void** iterator;
typedef const void** const_iterator;
typedef value_type& reference;
typedef const value_type& const_reference;
typedef value_type* pointer;
typedef const value_type* const_pointer;
typedef value_type* iterator;
typedef const value_type* const_iterator;
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef size_t size_type;

View File

@ -37,10 +37,10 @@ SOFTWARE.
/// Definitions of the ETL version
///\ingroup utilities
#define ETL_VERSION "11.13.0"
#define ETL_VERSION "11.13.1"
#define ETL_VERSION_MAJOR 11
#define ETL_VERSION_MINOR 13
#define ETL_VERSION_PATCH 0
#define ETL_VERSION_PATCH 1
#endif

View File

@ -181,7 +181,7 @@ void etl::pvoidvector::resize(size_t new_size, etl::pvoidvector::value_type valu
//*********************************************************************
etl::pvoidvector::reference etl::pvoidvector::operator [](size_t i)
{
return p_buffer[i];
return reference(p_buffer[i]);
}
//*********************************************************************
@ -203,7 +203,7 @@ etl::pvoidvector::const_reference etl::pvoidvector::operator [](size_t i) const
etl::pvoidvector::reference etl::pvoidvector::at(size_t i)
{
ETL_ASSERT(i < size(), ETL_ERROR(vector_out_of_bounds));
return p_buffer[i];
return reference(p_buffer[i]);
}
//*********************************************************************
@ -224,7 +224,7 @@ etl::pvoidvector::const_reference etl::pvoidvector::at(size_t i) const
//*********************************************************************
etl::pvoidvector::reference etl::pvoidvector::front()
{
return p_buffer[0];
return reference(p_buffer[0]);
}
//*********************************************************************
@ -242,7 +242,7 @@ etl::pvoidvector::const_reference etl::pvoidvector::front() const
//*********************************************************************
etl::pvoidvector::reference etl::pvoidvector::back()
{
return *(p_end - 1);
return reference(*(p_end - 1));
}
//*********************************************************************
@ -260,7 +260,7 @@ etl::pvoidvector::const_reference etl::pvoidvector::back() const
//*********************************************************************
etl::pvoidvector::pointer etl::pvoidvector::data()
{
return p_buffer;
return pointer(p_buffer);
}
//*********************************************************************

View File

@ -1,3 +1,7 @@
===============================================================================
11.13.1
Fixed vector of pointer typedefs
===============================================================================
11.13.0
Added specialisation for vector<const T*>

View File

@ -1813,5 +1813,33 @@ namespace
CHECK(!is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_const_ivector_of_pointer_to_pointer)
{
int i1 = 1;
etl::vector<int*, 10> consttest;
consttest.push_back(&i1);
const etl::ivector<int*>& ct = consttest;
int* i2 = ct[0];
CHECK(i1 == *i2);
CHECK(&i1 == i2);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_const_ivector_of_pointer_to_const_pointer)
{
int i1 = 1;
etl::vector<const int*, 10> consttest;
consttest.push_back(&i1);
const etl::ivector<const int*>& ct = consttest;
const int* i2 = ct[0];
CHECK(i1 == *i2);
CHECK(&i1 == i2);
}
};
}