diff --git a/fixed_iterator.h b/fixed_iterator.h index 97ad5ac9..ca3a0fe0 100644 --- a/fixed_iterator.h +++ b/fixed_iterator.h @@ -32,90 +32,125 @@ SOFTWARE. #include +///\defgroup iterator Iterator types + namespace etl { + /// A fixed iterator class. + /// This iterator can be given an iterator value, which will not be allowed to be incremented or decremented. + /// This can be useful when using STL algorithms to interact with fixed memory locations such as registers. + ///\ingroup iterator template - class fixed_iterator : public std::iterator + class fixed_iterator : std::iterator::iterator_category, typename std::iterator_traits::value_type> { public: + //*************************************************************************** + /// Default constructor. //*************************************************************************** fixed_iterator() : it(TIterator()) - {} + { + } + //*************************************************************************** + /// Construct from iterator. //*************************************************************************** fixed_iterator(TIterator it) : it(it) { } + //*************************************************************************** + /// Increment (Does nothing). //*************************************************************************** fixed_iterator& operator ++() { return *this; } + //*************************************************************************** + /// Increment (Does nothing). //*************************************************************************** fixed_iterator operator ++(int) { return *this; } + //*************************************************************************** + /// Decrement (Does nothing). //*************************************************************************** fixed_iterator& operator --() { return *this; } + //*************************************************************************** + /// Decrement (Does nothing). //*************************************************************************** fixed_iterator operator --(int) { return *this; } + //*************************************************************************** + /// Dereference operator. //*************************************************************************** typename std::iterator_traits::value_type operator *() { return *it; } + //*************************************************************************** + /// Dereference operator. //*************************************************************************** const typename std::iterator_traits::value_type operator *() const { return *it; } + //*************************************************************************** + /// -> operator. //*************************************************************************** TIterator operator ->() { return it; } + //*************************************************************************** + /// -> operator. //*************************************************************************** const TIterator operator ->() const { return it; } + //*************************************************************************** + /// Conversion operator. //*************************************************************************** operator TIterator() const { return it; } + //*************************************************************************** + /// += operator. //*************************************************************************** fixed_iterator& operator +=(typename std::iterator_traits::difference_type offset) { return *this; } + //*************************************************************************** + /// -= operator. //*************************************************************************** fixed_iterator& operator -=(typename std::iterator_traits::difference_type offset) { return *this; } + //*************************************************************************** + /// Assignment from iterator. //*************************************************************************** fixed_iterator& operator =(TIterator new_it) { @@ -124,23 +159,22 @@ namespace etl } //*************************************************************************** - void set(TIterator new_it) - { - it = new_it; - } - + /// Assignment from fixed_iterator. //*************************************************************************** - const TIterator& get() const + fixed_iterator& operator =(fixed_iterator other) { - return it; + it = other.it; + return *this; } - + private: TIterator it; ///< The underlying iterator. }; - //***************************************************************************** + //*************************************************************************** + /// Makes a fixed_iterator from an iterator. + //*************************************************************************** template fixed_iterator make_fixed_iterator(TIterator it) { @@ -148,6 +182,8 @@ namespace etl } } +//***************************************************************************** +/// + difference operator. //***************************************************************************** template etl::fixed_iterator& operator +(etl::fixed_iterator& lhs, @@ -156,6 +192,8 @@ etl::fixed_iterator& operator +(etl::fixed_iterator& lhs, return lhs; } +//***************************************************************************** +/// - difference operator. //***************************************************************************** template etl::fixed_iterator& operator -(etl::fixed_iterator& lhs, @@ -164,39 +202,49 @@ etl::fixed_iterator& operator -(etl::fixed_iterator& lhs, return lhs; } +//***************************************************************************** +/// - fixed_iterator operator. //***************************************************************************** template typename std::iterator_traits::difference_type operator -(etl::fixed_iterator& lhs, etl::fixed_iterator& rhs) { - return lhs.get() - rhs.get(); + return TIterator(lhs) - TIterator(rhs); } +//***************************************************************************** +/// Equality operator. fixed_iterator == fixed_iterator. //***************************************************************************** template bool operator ==(const etl::fixed_iterator& lhs, const etl::fixed_iterator& rhs) { - return lhs.get() == rhs.get(); + return TIterator(lhs) == TIterator(rhs); } +//***************************************************************************** +/// Equality operator. fixed_iterator == iterator. //***************************************************************************** template bool operator ==(const etl::fixed_iterator& lhs, TIterator rhs) { - return lhs.get() == rhs; + return TIterator(lhs) == rhs; } +//***************************************************************************** +/// Equality operator. iterator == fixed_iterator. //***************************************************************************** template bool operator ==(TIterator lhs, const etl::fixed_iterator& rhs) { - return lhs == rhs.get(); + return lhs == TIterator(rhs); } +//***************************************************************************** +/// Inequality operator. fixed_iterator == fixed_iterator. //***************************************************************************** template bool operator !=(const etl::fixed_iterator& lhs, @@ -205,6 +253,8 @@ bool operator !=(const etl::fixed_iterator& lhs, return !(lhs == rhs); } +//***************************************************************************** +/// Inequality operator. fixed_iterator == iterator. //***************************************************************************** template bool operator !=(const etl::fixed_iterator& lhs, @@ -213,6 +263,8 @@ bool operator !=(const etl::fixed_iterator& lhs, return !(lhs == rhs); } +//***************************************************************************** +/// Inequality operator. iterator == fixed_iterator. //***************************************************************************** template bool operator !=(TIterator& lhs, diff --git a/io_port.h b/io_port.h index 99112309..72b22881 100644 --- a/io_port.h +++ b/io_port.h @@ -54,6 +54,62 @@ namespace etl public: + class iterator + { + typedef io_port_rw iop_t; + + public: + + iterator(iop_t& iop) + : p_iop(&iop) + { + } + + iterator(const iterator& other) + : p_iop(other) + { + } + + iterator& operator =(const iterator& other) + { + p_iop = other.p_iop; + } + + iop_t& operator *() + { + return *p_iop; + } + + const iop_t& operator *() const + { + return *p_iop; + } + + iterator& operator ++() + { + return *this; + } + + iterator operator ++(int) + { + return *this; + } + + iterator& operator --() + { + return *this; + } + + iterator operator --(int) + { + return *this; + } + + private: + + iop_t* p_iop; + }; + /// Read. operator T() volatile const { @@ -78,6 +134,12 @@ namespace etl { return reinterpret_cast(ADDRESS); } + + /// Get the iterator. + iterator get_iterator() + { + return iterator(*this); + } }; //*************************************************************************** diff --git a/ipool.h b/ipool.h index c7b50c50..faadd6a5 100644 --- a/ipool.h +++ b/ipool.h @@ -457,7 +457,7 @@ namespace etl /// \param p_object A pointer to the object to be checked. /// \return true<\b> if it does, otherwise false //************************************************************************* - bool is_in_pool(const T* const p_object) const + bool is_in_pool(const T* p_object) const { // Does this object belong to this pool? typename std::iterator_traits::difference_type distance = p_object - p_buffer; @@ -466,6 +466,61 @@ namespace etl return ((distance >= 0) && (distance < static_cast::difference_type>(MAX_SIZE))); } + //************************************************************************* + /// Gets the iterator to the object. + /// If the object is not in the pool then end() is returned. + /// \param object A const reference to the object to be checked. + /// \return An iterator to the object or end(). + //************************************************************************* + iterator get_iterator(T& object) + { + if (is_in_pool(object)) + { + iterator i_object = begin(); + + while (i_object != end()) + { + // Same one? + if (&object == &*i_object) + { + return i_object; + } + + ++i_object; + } + } + + return end(); + } + + //************************************************************************* + /// Gets the const_iterator to the object. + /// If the object is not in the pool then end() is returned. + /// \param object A const reference to the object to be checked. + /// \return An const_iterator to the object or end(). + //************************************************************************* + const_iterator get_iterator(const T& object) const + { + if (is_in_pool(object)) + { + const_iterator i_object = begin(); + + while (i_object != end()) + { + // Same one? + if (&object == &*i_object) + { + return i_object; + } + + ++i_object; + } + } + + return end(); + } + + protected: //************************************************************************* diff --git a/test/codeblocks/ETL.depend b/test/codeblocks/ETL.depend index 14000035..e28b5e1b 100644 --- a/test/codeblocks/ETL.depend +++ b/test/codeblocks/ETL.depend @@ -2621,3 +2621,941 @@ 1424726109 /mnt/hgfs/Programming/GitHub/etl/visitor.h +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\assertexception.cpp + "AssertException.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\assertexception.h + "Config.h" + "HelperMacros.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\config.h + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\helpermacros.h + "Config.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\checks.cpp + "Checks.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\checks.h + "Config.h" + "TestResults.h" + "MemoryOutStream.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testresults.h + "HelperMacros.h" + +1417973669 d:\users\john\documents\programming\github\unittest-cpp\unittest++\memoryoutstream.h + "Config.h" + "HelperMacros.h" + + + +1417973661 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\compositetestreporter.cpp + "CompositeTestReporter.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\compositetestreporter.h + "TestReporter.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testreporter.h + "HelperMacros.h" + +1417973667 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\currenttest.cpp + "CurrentTest.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\currenttest.h + "HelperMacros.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\deferredtestreporter.cpp + "Config.h" + "DeferredTestReporter.h" + "TestDetails.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\deferredtestreporter.h + "Config.h" + "TestReporter.h" + "DeferredTestResult.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\deferredtestresult.h + "Config.h" + "HelperMacros.h" + + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testdetails.h + "HelperMacros.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\deferredtestresult.cpp + "Config.h" + "DeferredTestResult.h" + + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\memoryoutstream.cpp + "MemoryOutStream.h" + + + +1417875047 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\posix\signaltranslator.cpp + "SignalTranslator.h" + +1417875049 d:\users\john\documents\programming\github\unittest-cpp\unittest++\posix\signaltranslator.h + + + +1417875051 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\posix\timehelpers.cpp + "TimeHelpers.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\posix\timehelpers.h + + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\reportassert.cpp + "ReportAssert.h" + "ReportAssertImpl.h" + "AssertException.h" + "CurrentTest.h" + "TestResults.h" + "TestDetails.h" + "ReportAssertImpl.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\reportassert.h + "HelperMacros.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\reportassertimpl.h + "Config.h" + "HelperMacros.h" + + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\test.cpp + "Config.h" + "Test.h" + "TestList.h" + "TestResults.h" + "AssertException.h" + "MemoryOutStream.h" + "ExecuteTest.h" + "Posix/SignalTranslator.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\test.h + "TestDetails.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testlist.h + "HelperMacros.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\executetest.h + "Config.h" + "ExceptionMacros.h" + "TestDetails.h" + "TestResults.h" + "MemoryOutStream.h" + "AssertException.h" + "CurrentTest.h" + "ReportAssertImpl.h" + "Posix/SignalTranslator.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\exceptionmacros.h + "Config.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\testdetails.cpp + "TestDetails.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\testlist.cpp + "TestList.h" + "Test.h" + + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\testreporter.cpp + "TestReporter.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\testreporterstdout.cpp + "TestReporterStdout.h" + + "TestDetails.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testreporterstdout.h + "TestReporter.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\testresults.cpp + "TestResults.h" + "TestReporter.h" + "TestDetails.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\testrunner.cpp + "TestRunner.h" + "TestResults.h" + "TestReporter.h" + "TestReporterStdout.h" + "TimeHelpers.h" + "MemoryOutStream.h" + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testrunner.h + "Test.h" + "TestList.h" + "CurrentTest.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\timehelpers.h + "Config.h" + "Posix/TimeHelpers.h" + "Win32/TimeHelpers.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\win32\timehelpers.h + "../Config.h" + "../HelperMacros.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\timeconstraint.cpp + "TimeConstraint.h" + "TestResults.h" + "MemoryOutStream.h" + "CurrentTest.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\timeconstraint.h + "TimeHelpers.h" + "HelperMacros.h" + +1414849210 source:d:\users\john\documents\programming\github\unittest-cpp\unittest++\xmltestreporter.cpp + "Config.h" + "XmlTestReporter.h" + + + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\xmltestreporter.h + "Config.h" + "DeferredTestReporter.h" + + +1424729709 source:d:\users\john\documents\programming\github\etl\crc16.cpp + + +1424729709 source:d:\users\john\documents\programming\github\etl\crc16_ccitt.cpp + + +1424729709 source:d:\users\john\documents\programming\github\etl\crc16_kermit.cpp + + +1424729709 source:d:\users\john\documents\programming\github\etl\crc32.cpp + + +1424729709 source:d:\users\john\documents\programming\github\etl\crc64_ecma.cpp + + +1424729709 source:d:\users\john\documents\programming\github\etl\crc8_ccitt.cpp + + +1424729709 source:d:\users\john\documents\programming\github\etl\error_handler.cpp + "error_handler.h" + "nullptr.h" + +1440541180 d:\users\john\documents\programming\github\etl\error_handler.h + "exception.h" + "function.h" + +1424729709 d:\users\john\documents\programming\github\etl\exception.h + +1424729709 d:\users\john\documents\programming\github\etl\function.h + +1424729709 d:\users\john\documents\programming\github\etl\nullptr.h + +1424729709 source:d:\users\john\documents\programming\github\etl\test\main.cpp + + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\unittest++.h + "UnitTestPP.h" + +1414849210 d:\users\john\documents\programming\github\unittest-cpp\unittest++\unittestpp.h + "Config.h" + "TestMacros.h" + "CheckMacros.h" + "TestRunner.h" + "TimeConstraint.h" + "ReportAssert.h" + +1416833504 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testmacros.h + "Config.h" + "TestSuite.h" + "ExceptionMacros.h" + "ExecuteTest.h" + "AssertException.h" + "TestDetails.h" + "MemoryOutStream.h" + "Posix/SignalTranslator.h" + +1416833496 d:\users\john\documents\programming\github\unittest-cpp\unittest++\testsuite.h + +1414931290 d:\users\john\documents\programming\github\unittest-cpp\unittest++\checkmacros.h + "HelperMacros.h" + "ExceptionMacros.h" + "Checks.h" + "AssertException.h" + "MemoryOutStream.h" + "TestDetails.h" + "CurrentTest.h" + "ReportAssertImpl.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_algorithm.cpp + + "../algorithm.h" + "../container.h" + + + + + +1424729709 d:\users\john\documents\programming\github\etl\algorithm.h + + + + + "type_traits.h" + +1440542177 d:\users\john\documents\programming\github\etl\type_traits.h + + "nullptr.h" + +1424729709 d:\users\john\documents\programming\github\etl\container.h + + + +1427743929 source:d:\users\john\documents\programming\github\etl\test\test_alignment.cpp + + "../alignment.h" + "../type_traits.h" + + + + + +1428248631 d:\users\john\documents\programming\github\etl\alignment.h + + "type_traits.h" + "static_assert.h" + +1424729709 d:\users\john\documents\programming\github\etl\static_assert.h + +1428231585 source:d:\users\john\documents\programming\github\etl\test\test_array.cpp + + "../array.h" + + + + "../integral_limits.h" + +1424729709 d:\users\john\documents\programming\github\etl\array.h + + + + + "exception.h" + "type_traits.h" + "parameter_type.h" + "static_assert.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\parameter_type.h + "type_traits.h" + +1424729709 d:\users\john\documents\programming\github\etl\integral_limits.h + + + "type_traits.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_binary.cpp + + + "../binary.h" + "../bitset.h" + "../fnv_1.h" + "../integral_limits.h" + +1427743929 d:\users\john\documents\programming\github\etl\binary.h + "type_traits.h" + "integral_limits.h" + "static_assert.h" + +1427743929 d:\users\john\documents\programming\github\etl\bitset.h + + + + + + "integral_limits.h" + "smallest.h" + "array.h" + "nullptr.h" + "log.h" + "ibitset.h" + "binary.h" + +1424729709 d:\users\john\documents\programming\github\etl\smallest.h + + "integral_limits.h" + +1424729709 d:\users\john\documents\programming\github\etl\log.h + + +1427743929 d:\users\john\documents\programming\github\etl\ibitset.h + "integral_limits.h" + +1439929652 d:\users\john\documents\programming\github\etl\fnv_1.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1424729709 d:\users\john\documents\programming\github\etl\endian.h + + "enum_type.h" + +1424729709 d:\users\john\documents\programming\github\etl\enum_type.h + +1439929669 d:\users\john\documents\programming\github\etl\ihash.h + + + "exception.h" + "endian.h" + +1427743929 source:d:\users\john\documents\programming\github\etl\test\test_bitset.cpp + + + + + "../bitset.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_bloom_filter.cpp + + + + "../bloom_filter.h" + "../fnv_1.h" + "../crc16.h" + "../crc16_ccitt.h" + "../crc32.h" + +1424729709 d:\users\john\documents\programming\github\etl\bloom_filter.h + "parameter_type.h" + "bitset.h" + "type_traits.h" + "log.h" + "power.h" + +1424729709 d:\users\john\documents\programming\github\etl\power.h + + "log.h" + +1439929651 d:\users\john\documents\programming\github\etl\crc16.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1439929651 d:\users\john\documents\programming\github\etl\crc16_ccitt.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1439929652 d:\users\john\documents\programming\github\etl\crc32.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_checksum.cpp + + + + + + "../checksum.h" + "../endian.h" + +1439929651 d:\users\john\documents\programming\github\etl\checksum.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_container.cpp + + "../container.h" + + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_crc.cpp + + + + + + "../crc8_ccitt.h" + "../crc16.h" + "../crc16_ccitt.h" + "../crc16_kermit.h" + "../crc32.h" + "../crc64_ecma.h" + "../endian.h" + +1439929651 d:\users\john\documents\programming\github\etl\crc8_ccitt.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1439929652 d:\users\john\documents\programming\github\etl\crc16_kermit.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1439929652 d:\users\john\documents\programming\github\etl\crc64_ecma.h + + "static_assert.h" + "type_traits.h" + "endian.h" + "ihash.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_cyclic_value.cpp + + "../cyclic_value.h" + +1424729709 d:\users\john\documents\programming\github\etl\cyclic_value.h + + + "static_assert.h" + "exception.h" + +1427745462 source:d:\users\john\documents\programming\github\etl\test\test_deque.cpp + + "ExtraCheckMacros.h" + "../deque.h" + "data.h" + + + + + + +1421966497 d:\users\john\documents\programming\github\etl\test\extracheckmacros.h + + + + + + + + + +1427743929 d:\users\john\documents\programming\github\etl\deque.h + + + + + "ideque.h" + "container.h" + "alignment.h" + "array.h" + +1424729709 d:\users\john\documents\programming\github\etl\ideque.h + + + "algorithm.h" + "type_traits.h" + "deque_base.h" + "parameter_type.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\deque_base.h + + "exception.h" + +1424729709 d:\users\john\documents\programming\github\etl\test\data.h + + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_endian.cpp + + + "../endian.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_enum_type.cpp + + + "../enum_type.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_error_handler.cpp + + "../error_handler.h" + "../exception.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_exception.cpp + + + "../exception.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_flat_map.cpp + + + + + + + + + "data.h" + "../flat_map.h" + +1427743929 d:\users\john\documents\programming\github\etl\flat_map.h + + + + "iflat_map.h" + "vector.h" + +1427743929 d:\users\john\documents\programming\github\etl\iflat_map.h + + + + + + "flat_map_base.h" + "type_traits.h" + "parameter_type.h" + "ivector.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\flat_map_base.h + + "exception.h" + "ivector.h" + "error_handler.h" + +1440534443 d:\users\john\documents\programming\github\etl\ivector.h + + + + + "algorithm.h" + "vector_base.h" + "type_traits.h" + "parameter_type.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\vector_base.h + + "exception.h" + "error_handler.h" + +1427743930 d:\users\john\documents\programming\github\etl\vector.h + + + + "ivector.h" + "container.h" + "alignment.h" + "array.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_flat_set.cpp + + + + + + + + + "data.h" + "../flat_set.h" + +1427743929 d:\users\john\documents\programming\github\etl\flat_set.h + + + + "iflat_set.h" + "vector.h" + +1427743929 d:\users\john\documents\programming\github\etl\iflat_set.h + + + + + + "flat_set_base.h" + "type_traits.h" + "parameter_type.h" + "ivector.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\flat_set_base.h + + "exception.h" + "ivector.h" + "error_handler.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_fnv_1.cpp + + + + + + "../fnv_1.h" + "../endian.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_forward_list.cpp + + "ExtraCheckMacros.h" + "data.h" + "../forward_list.h" + + + + + + +1424729709 d:\users\john\documents\programming\github\etl\forward_list.h + + "pool.h" + "iforward_list.h" + "container.h" + +1427743929 d:\users\john\documents\programming\github\etl\pool.h + "alignment.h" + "array.h" + "bitset.h" + "ipool.h" + + +1432558133 d:\users\john\documents\programming\github\etl\ipool.h + + "pool_base.h" + "nullptr.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\pool_base.h + + "exception.h" + "error_handler.h" + +1427743929 d:\users\john\documents\programming\github\etl\iforward_list.h + + + + + "pool.h" + "nullptr.h" + "forward_list_base.h" + "type_traits.h" + "parameter_type.h" + +1424729709 d:\users\john\documents\programming\github\etl\forward_list_base.h + + "exception.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_function.cpp + + "../function.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_functional.cpp + + "../functional.h" + + + + +1424729709 d:\users\john\documents\programming\github\etl\functional.h + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_hash.cpp + + + + + + "../hash.h" + +1424729709 d:\users\john\documents\programming\github\etl\hash.h + + "fnv_1.h" + "type_traits.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_instance_count.cpp + + "../instance_count.h" + + + + +1424729709 d:\users\john\documents\programming\github\etl\instance_count.h + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_integral_limits.cpp + + + + + "../integral_limits.h" + +1427743929 source:d:\users\john\documents\programming\github\etl\test\test_io_port.cpp + + "../io_port.h" + + +1440542211 d:\users\john\documents\programming\github\etl\io_port.h + + "nullptr.h" + "parameter_type.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_largest.cpp + + "../largest.h" + + +1424729709 d:\users\john\documents\programming\github\etl\largest.h + "type_traits.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_list.cpp + + "ExtraCheckMacros.h" + "../list.h" + "data.h" + + + + + +1424729709 d:\users\john\documents\programming\github\etl\list.h + + "ilist.h" + "container.h" + "pool.h" + +1427743929 d:\users\john\documents\programming\github\etl\ilist.h + + + + + "nullptr.h" + "list_base.h" + "type_traits.h" + "parameter_type.h" + "pool.h" + +1424729709 d:\users\john\documents\programming\github\etl\list_base.h + + "exception.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_maths.cpp + + "../log.h" + "../power.h" + "../fibonacci.h" + "../factorial.h" + +1424729709 d:\users\john\documents\programming\github\etl\fibonacci.h + + +1424729709 d:\users\john\documents\programming\github\etl\factorial.h + + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_numeric.cpp + + "../numeric.h" + + + +1424729709 d:\users\john\documents\programming\github\etl\numeric.h + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_observer.cpp + + "../observer.h" + +1424729709 d:\users\john\documents\programming\github\etl\observer.h + + "vector.h" + "exception.h" + "error_handler.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_queue.cpp + + + "../queue.h" + +1435086822 d:\users\john\documents\programming\github\etl\queue.h + + + "iqueue.h" + "container.h" + "alignment.h" + "array.h" + +1435086822 d:\users\john\documents\programming\github\etl\iqueue.h + + "queue_base.h" + "type_traits.h" + "parameter_type.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\queue_base.h + + "exception.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_smallest.cpp + + "../smallest.h" + + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_stack.cpp + + + "data.h" + "../stack.h" + +1427743929 d:\users\john\documents\programming\github\etl\stack.h + + + + "istack.h" + "container.h" + "alignment.h" + "array.h" + +1424729709 d:\users\john\documents\programming\github\etl\istack.h + + "stack_base.h" + "type_traits.h" + "parameter_type.h" + "error_handler.h" + +1424729709 d:\users\john\documents\programming\github\etl\stack_base.h + + "exception.h" + +1426202987 source:d:\users\john\documents\programming\github\etl\test\test_vector.cpp + + + + + "../vector.h" + +1424729709 source:d:\users\john\documents\programming\github\etl\test\test_visitor.cpp + + "../visitor.h" + +1424729709 d:\users\john\documents\programming\github\etl\visitor.h + +1439930014 source:d:\users\john\documents\programming\github\etl\test\test_fixed_iterator.cpp + + + + "../fixed_iterator.h" + +1439929885 d:\users\john\documents\programming\github\etl\fixed_iterator.h + + diff --git a/test/codeblocks/ETL.layout b/test/codeblocks/ETL.layout index 7fdd6f07..4baeaa99 100644 --- a/test/codeblocks/ETL.layout +++ b/test/codeblocks/ETL.layout @@ -1,279 +1,284 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/test_fixed_iterator.cpp b/test/test_fixed_iterator.cpp index 175e7d47..13ece2be 100644 --- a/test/test_fixed_iterator.cpp +++ b/test/test_fixed_iterator.cpp @@ -34,7 +34,7 @@ SOFTWARE. template std::ostream& operator << (std::ostream& os, const etl::fixed_iterator& fi) { - os << fi.get(); + os << TIterator(fi); return os; } @@ -48,7 +48,7 @@ namespace { etl::fixed_iterator fi; - CHECK_EQUAL((int*)0, fi.get()); + CHECK_EQUAL((int*)0, fi); } //************************************************************************* @@ -69,7 +69,7 @@ namespace etl::fixed_iterator fi(&a); - CHECK_EQUAL(&a, fi.get()); + CHECK_EQUAL(&a, fi); } //************************************************************************* @@ -79,7 +79,7 @@ namespace etl::fixed_iterator fi = etl::make_fixed_iterator(&a); - CHECK_EQUAL(&a, fi.get()); + CHECK_EQUAL(&a, fi); } //************************************************************************* @@ -202,11 +202,11 @@ namespace etl::fixed_iterator fi = etl::make_fixed_iterator(&a); fi = &b; - CHECK_EQUAL(&b, fi.get()); + CHECK_EQUAL(&b, fi); - fi.set(&a); + fi = &a; - CHECK_EQUAL(&a, fi.get()); + CHECK_EQUAL(&a, fi); } //************************************************************************* diff --git a/test/vs2015/etl.vcxproj b/test/vs2015/etl.vcxproj index 4695b560..b16f9ae7 100644 --- a/test/vs2015/etl.vcxproj +++ b/test/vs2015/etl.vcxproj @@ -259,6 +259,7 @@ + @@ -284,6 +285,7 @@ + diff --git a/test/vs2015/etl.vcxproj.filters b/test/vs2015/etl.vcxproj.filters index c4eabea8..72325d60 100644 --- a/test/vs2015/etl.vcxproj.filters +++ b/test/vs2015/etl.vcxproj.filters @@ -405,39 +405,27 @@ ETL\Maths + + ETL\Maths + ETL\Maths ETL\Maths - - ETL\Maths - - - ETL\Maths - ETL\Maths + + ETL\Maths + + + ETL\Maths + Source Files - - ETL\Maths - - - ETL\Maths - - - ETL\Containers - - - ETL\Containers - - - ETL\Containers - @@ -656,13 +644,22 @@ Source Files + + ETL\Maths + + + Source Files + + + Source Files + Source Files Source Files - + Source Files @@ -672,6 +669,5 @@ - \ No newline at end of file diff --git a/type_traits.h b/type_traits.h index 1dafbf99..41746503 100644 --- a/type_traits.h +++ b/type_traits.h @@ -209,7 +209,7 @@ namespace etl ///\ingroup type_traits template struct is_fundamental : integral_constant::value || is_void::value || - is_same::type>::value> {}; /// is_compound