summaryrefslogtreecommitdiff
path: root/boost/fusion/container/deque/deque_iterator.hpp
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-03-21 15:45:20 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-03-21 15:46:37 +0900
commit733b5d5ae2c5d625211e2985ac25728ac3f54883 (patch)
treea5b214744b256f07e1dc2bd7273035a7808c659f /boost/fusion/container/deque/deque_iterator.hpp
parent08c1e93fa36a49f49325a07fe91ff92c964c2b6c (diff)
downloadboost-733b5d5ae2c5d625211e2985ac25728ac3f54883.tar.gz
boost-733b5d5ae2c5d625211e2985ac25728ac3f54883.tar.bz2
boost-733b5d5ae2c5d625211e2985ac25728ac3f54883.zip
Imported Upstream version 1.58.0upstream/1.58.0
Change-Id: If0072143aa26874812e0db6872e1efb10a3e5e94 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/fusion/container/deque/deque_iterator.hpp')
-rw-r--r--boost/fusion/container/deque/deque_iterator.hpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/boost/fusion/container/deque/deque_iterator.hpp b/boost/fusion/container/deque/deque_iterator.hpp
index c61d6f97f0..c2203796f8 100644
--- a/boost/fusion/container/deque/deque_iterator.hpp
+++ b/boost/fusion/container/deque/deque_iterator.hpp
@@ -11,9 +11,14 @@
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/iterator/iterator_facade.hpp>
#include <boost/fusion/container/deque/detail/keyed_element.hpp>
+#include <boost/mpl/int.hpp>
#include <boost/mpl/minus.hpp>
#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/add_reference.hpp>
namespace boost { namespace fusion {
@@ -26,7 +31,7 @@ namespace boost { namespace fusion {
typedef Seq sequence;
typedef mpl::int_<Pos> index;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
deque_iterator(Seq& seq)
: seq_(seq)
{}
@@ -49,7 +54,7 @@ namespace boost { namespace fusion {
add_const<element_type>,
mpl::identity<element_type> >::type>::type type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& it)
{
@@ -64,7 +69,7 @@ namespace boost { namespace fusion {
typedef typename Iterator::sequence sequence;
typedef deque_iterator<sequence, index::value + N::value> type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(Iterator const& i)
{
@@ -91,7 +96,7 @@ namespace boost { namespace fusion {
>::type
type;
- BOOST_FUSION_GPU_ENABLED
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
static type
call(I1 const&, I2 const&)
{
@@ -113,4 +118,13 @@ namespace boost { namespace fusion {
}}
+#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
+namespace std
+{
+ template <typename Seq, int Pos>
+ struct iterator_traits< ::boost::fusion::deque_iterator<Seq, Pos> >
+ { };
+}
+#endif
+
#endif