Skip to content

Commit

Permalink
Fixed vector of pointer typedefs
Browse files Browse the repository at this point in the history
  • Loading branch information
jwellbelove committed Jul 4, 2018
1 parent d958935 commit 5279ea1
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 25 deletions.
24 changes: 12 additions & 12 deletions include/etl/private/ivectorpointer.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
12 changes: 6 additions & 6 deletions include/etl/private/pvoidvector.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions include/etl/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

10 changes: 5 additions & 5 deletions src/private/pvoidvector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}

//*********************************************************************
Expand All @@ -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]);
}

//*********************************************************************
Expand All @@ -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]);
}

//*********************************************************************
Expand All @@ -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));
}

//*********************************************************************
Expand All @@ -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);
}

//*********************************************************************
Expand Down
4 changes: 4 additions & 0 deletions support/Release notes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
===============================================================================
11.13.1
Fixed vector of pointer typedefs

===============================================================================
11.13.0
Added specialisation for vector<const T*>
Expand Down
28 changes: 28 additions & 0 deletions test/test_vector_pointer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
};
}

0 comments on commit 5279ea1

Please sign in to comment.