summaryrefslogtreecommitdiff
path: root/boost/fusion/adapted/boost_array
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/adapted/boost_array')
-rw-r--r--boost/fusion/adapted/boost_array/array_iterator.hpp17
-rw-r--r--boost/fusion/adapted/boost_array/detail/at_impl.hpp4
-rw-r--r--boost/fusion/adapted/boost_array/detail/begin_impl.hpp6
-rw-r--r--boost/fusion/adapted/boost_array/detail/end_impl.hpp6
4 files changed, 21 insertions, 12 deletions
diff --git a/boost/fusion/adapted/boost_array/array_iterator.hpp b/boost/fusion/adapted/boost_array/array_iterator.hpp
index 0e39d45709..ca8da0a22c 100644
--- a/boost/fusion/adapted/boost_array/array_iterator.hpp
+++ b/boost/fusion/adapted/boost_array/array_iterator.hpp
@@ -32,7 +32,7 @@ namespace boost { namespace fusion
typedef mpl::int_<Pos> index;
typedef Array array_type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
array_iterator(Array& a)
: array(a) {}
@@ -57,7 +57,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const & it)
{
@@ -72,7 +72,7 @@ namespace boost { namespace fusion
typedef typename Iterator::array_type array_type;
typedef array_iterator<array_type, index::value + N::value> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -95,7 +95,7 @@ namespace boost { namespace fusion
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(I1 const&, I2 const&)
{
@@ -109,4 +109,13 @@ namespace boost { namespace fusion
};
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Array, int Pos>
+ struct iterator_traits< ::boost::fusion::array_iterator<Array, Pos> >
+ { };
+}
+#endif
+
#endif
diff --git a/boost/fusion/adapted/boost_array/detail/at_impl.hpp b/boost/fusion/adapted/boost_array/detail/at_impl.hpp
index 15235e8e57..e355d02240 100644
--- a/boost/fusion/adapted/boost_array/detail/at_impl.hpp
+++ b/boost/fusion/adapted/boost_array/detail/at_impl.hpp
@@ -14,7 +14,7 @@
#include <boost/mpl/if.hpp>
namespace boost { namespace fusion {
-
+
struct boost_array_tag;
namespace extension
@@ -33,7 +33,7 @@ namespace boost { namespace fusion {
typename Sequence::const_reference,
typename Sequence::reference>::type type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& seq)
{
diff --git a/boost/fusion/adapted/boost_array/detail/begin_impl.hpp b/boost/fusion/adapted/boost_array/detail/begin_impl.hpp
index 5e0752c145..8481b765af 100644
--- a/boost/fusion/adapted/boost_array/detail/begin_impl.hpp
+++ b/boost/fusion/adapted/boost_array/detail/begin_impl.hpp
@@ -24,11 +24,11 @@ namespace boost { namespace fusion {
struct begin_impl<boost_array_tag>
{
template <typename Sequence>
- struct apply
+ struct apply
{
typedef array_iterator<Sequence, 0> type;
-
- BOOST_FUSION_GPU_ENABLED
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& v)
{
diff --git a/boost/fusion/adapted/boost_array/detail/end_impl.hpp b/boost/fusion/adapted/boost_array/detail/end_impl.hpp
index 13ed1e3e3d..7574b36405 100644
--- a/boost/fusion/adapted/boost_array/detail/end_impl.hpp
+++ b/boost/fusion/adapted/boost_array/detail/end_impl.hpp
@@ -24,11 +24,11 @@ namespace boost { namespace fusion {
struct end_impl<boost_array_tag>
{
template <typename Sequence>
- struct apply
+ struct apply
{
typedef array_iterator<Sequence, Sequence::static_size> type;
-
- BOOST_FUSION_GPU_ENABLED
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Sequence& v)
{