diff --git a/sprout/array.hpp b/sprout/array.hpp index 60b06f0b..250e0768 100644 --- a/sprout/array.hpp +++ b/sprout/array.hpp @@ -51,22 +51,22 @@ namespace sprout { } } iterator begin() SPROUT_NOEXCEPT { - return elems; + return &elems[0]; } SPROUT_CONSTEXPR const_iterator begin() const SPROUT_NOEXCEPT { - return elems; + return &elems[0]; } SPROUT_CONSTEXPR const_iterator cbegin() const SPROUT_NOEXCEPT { - return elems; + return &elems[0]; } iterator end() SPROUT_NOEXCEPT { - return elems + size(); + return &elems[0] + size(); } SPROUT_CONSTEXPR const_iterator end() const SPROUT_NOEXCEPT { - return elems + size(); + return &elems[0] + size(); } SPROUT_CONSTEXPR const_iterator cend() const SPROUT_NOEXCEPT { - return elems + size(); + return &elems[0] + size(); } reverse_iterator rbegin() SPROUT_NOEXCEPT { return reverse_iterator(begin()); @@ -113,13 +113,13 @@ namespace sprout { return elems[size() - 1]; } pointer data() SPROUT_NOEXCEPT { - return elems; + return &elems[0]; } SPROUT_CONSTEXPR const_pointer data() const SPROUT_NOEXCEPT { - return elems; + return &elems[0]; } pointer c_array() SPROUT_NOEXCEPT { - return elems; + return &elems[0]; } void assign(const_reference value) { fill(value); @@ -222,7 +222,7 @@ namespace sprout { // template SPROUT_CONSTEXPR inline sprout::array make_array(T const& head, Tail const&... tail) { - return sprout::array{head, tail...}; + return sprout::array{{head, tail...}}; } template SPROUT_CONSTEXPR inline sprout::array make_array() { @@ -236,7 +236,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::array{arr[Indexes]...}; + return sprout::array{{arr[Indexes]...}}; } } // namespace detail // diff --git a/sprout/fixed_container/begin.hpp b/sprout/fixed_container/begin.hpp index 31300e26..7ab6484e 100644 --- a/sprout/fixed_container/begin.hpp +++ b/sprout/fixed_container/begin.hpp @@ -14,7 +14,7 @@ namespace sprout { return range.begin(); } template - typename sprout::fixed_container_traits::iterator begin(T (& arr)[N]) { + typename sprout::fixed_container_traits::iterator begin(T (& arr)[N]) { return arr; } // diff --git a/sprout/fixed_container/traits.hpp b/sprout/fixed_container/traits.hpp index 3e1cce04..07765328 100644 --- a/sprout/fixed_container/traits.hpp +++ b/sprout/fixed_container/traits.hpp @@ -119,7 +119,7 @@ namespace sprout { public: template SPROUT_CONSTEXPR typename sprout::fixed_container_traits::clone_type operator()(Args const&... args) const { - return typename sprout::fixed_container_traits::clone_type{args...}; + return typename sprout::fixed_container_traits::clone_type{{args...}}; } }; diff --git a/sprout/string.hpp b/sprout/string.hpp index 72829ee5..52a61a32 100644 --- a/sprout/string.hpp +++ b/sprout/string.hpp @@ -292,7 +292,7 @@ namespace sprout { sprout::index_tuple ) { - return sprout::basic_string{arr[Indexes]...}; + return sprout::basic_string{{arr[Indexes]...}}; } } // namespace detail //