diff --git a/src/thread_private_spike_store.hpp b/src/thread_private_spike_store.hpp index 1e14ab104619a42b8aa9f014172bb5716576017c..3f320fdd93709c622696e889f80c16588eb5ad66 100644 --- a/src/thread_private_spike_store.hpp +++ b/src/thread_private_spike_store.hpp @@ -69,6 +69,18 @@ private : threading::enumerable_thread_specific<std::vector<spike_type>>; local_spike_store_type buffers_; + +public : + using iterator = typename local_spike_store_type::iterator; + using const_iterator = typename local_spike_store_type::const_iterator; + + // make the container iterable + // we iterate of threads, not individual containers + + iterator begin() { return buffers_.begin(); } + iterator end() { return buffers_.begin(); } + const_iterator begin() const { return buffers_.begin(); } + const_iterator end() const { return buffers_.begin(); } }; } // namespace mc diff --git a/src/threading/serial.hpp b/src/threading/serial.hpp index c18d4800e3c457e140f0fe6d2ca671aa6ccac241..da2740a6b7bb8909f0c4ded32262f157cef7541d 100644 --- a/src/threading/serial.hpp +++ b/src/threading/serial.hpp @@ -19,10 +19,10 @@ namespace threading { template <typename T> class enumerable_thread_specific { std::array<T, 1> data; - using iterator_type = typename std::array<T, 1>::iterator; - using const_iterator_type = typename std::array<T, 1>::const_iterator; - public : +public : + using iterator = typename std::array<T, 1>::iterator; + using const_iterator = typename std::array<T, 1>::const_iterator; enumerable_thread_specific() = default; @@ -39,14 +39,14 @@ class enumerable_thread_specific { auto size() -> decltype(data.size()) const { return data.size(); } - iterator_type begin() { return data.begin(); } - iterator_type end() { return data.end(); } + iterator begin() { return data.begin(); } + iterator end() { return data.end(); } - const_iterator_type begin() const { return data.begin(); } - const_iterator_type end() const { return data.end(); } + const_iterator begin() const { return data.begin(); } + const_iterator end() const { return data.end(); } - const_iterator_type cbegin() const { return data.cbegin(); } - const_iterator_type cend() const { return data.cend(); } + const_iterator cbegin() const { return data.cbegin(); } + const_iterator cend() const { return data.cend(); } };