diff options
author | Josh Blum <josh@joshknows.com> | 2011-02-10 16:16:40 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-02-10 16:16:40 -0800 |
commit | 4addf2a48646f5b0faa5f42b35a5735d40d8b4f0 (patch) | |
tree | 475d735bede768e45f89872c0b71f25c2d98a940 | |
parent | 5845c437dddb1e6d661054a4388c9db6f6f06e73 (diff) | |
download | uhd-4addf2a48646f5b0faa5f42b35a5735d40d8b4f0.tar.gz uhd-4addf2a48646f5b0faa5f42b35a5735d40d8b4f0.tar.bz2 uhd-4addf2a48646f5b0faa5f42b35a5735d40d8b4f0.zip |
uhd: reference vector fix revealed when building w/ debug
-rw-r--r-- | host/include/uhd/types/ref_vector.hpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/host/include/uhd/types/ref_vector.hpp b/host/include/uhd/types/ref_vector.hpp index ef970802f..efd4b8f89 100644 --- a/host/include/uhd/types/ref_vector.hpp +++ b/host/include/uhd/types/ref_vector.hpp @@ -29,29 +29,22 @@ namespace uhd{ */ template <typename T> class ref_vector{ public: - //! Create a reference vector of length one from a pointer - template <typename Ptr> ref_vector(Ptr *ptr): - _mem(memp_t(&ptr)), _size(1) + //! Create a reference vector from a pointer and size + template <typename Ptr> ref_vector(Ptr *ptr, size_t size = 1): + _mem(T(ptr)), _size(size) { /* NOP */ } //! Create a reference vector from a std::vector container template <typename Range> ref_vector(const Range &range): - _mem(memp_t(&range[0])), _size(range.size()) + _mem(T(range.front())), _size(range.size()) { /* NOP */ } - //! Create a reference vector from a memory pointer and size - ref_vector(T *mem, size_t size): - _mem(mem), _size(size) - { - /* NOP */ - } - - T &operator[](size_t index) const{ - return _mem[index]; + const T &operator[](size_t index) const{ + return (&_mem)[index]; } size_t size(void) const{ @@ -59,8 +52,7 @@ public: } private: - typedef T* memp_t; - const memp_t _mem; + const T _mem; const size_t _size; }; |