diff --git a/include/boost/fusion/container/map/detail/at_impl.hpp b/include/boost/fusion/container/map/detail/at_impl.hpp
index c2a565e..ce9d7a6 100644
a
|
b
|
|
9 | 9 | |
10 | 10 | #include <boost/fusion/support/config.hpp> |
11 | 11 | #include <boost/fusion/support/detail/access.hpp> |
| 12 | #include <boost/utility/declval.hpp> |
12 | 13 | |
13 | 14 | namespace boost { namespace fusion |
14 | 15 | { |
… |
… |
namespace boost { namespace fusion
|
27 | 28 | { |
28 | 29 | typedef mpl::int_<N::value> index; |
29 | 30 | typedef |
30 | | decltype(std::declval<Sequence>().get(index())) |
| 31 | decltype(boost::declval<Sequence>().get(index())) |
31 | 32 | type; |
32 | 33 | |
33 | 34 | BOOST_FUSION_GPU_ENABLED |
… |
… |
namespace boost { namespace fusion
|
43 | 44 | { |
44 | 45 | typedef mpl::int_<N::value> index; |
45 | 46 | typedef |
46 | | decltype(std::declval<Sequence const>().get(index())) |
| 47 | decltype(boost::declval<Sequence const>().get(index())) |
47 | 48 | type; |
48 | 49 | |
49 | 50 | BOOST_FUSION_GPU_ENABLED |
diff --git a/include/boost/fusion/container/map/detail/at_key_impl.hpp b/include/boost/fusion/container/map/detail/at_key_impl.hpp
index 5b57c4b..81ca615 100644
a
|
b
|
|
12 | 12 | #include <boost/type_traits/is_const.hpp> |
13 | 13 | #include <boost/mpl/at.hpp> |
14 | 14 | #include <boost/mpl/identity.hpp> |
| 15 | #include <boost/utility/declval.hpp> |
15 | 16 | |
16 | 17 | namespace boost { namespace fusion |
17 | 18 | { |
… |
… |
namespace boost { namespace fusion
|
29 | 30 | struct apply |
30 | 31 | { |
31 | 32 | typedef |
32 | | decltype(std::declval<Sequence>().get(mpl::identity<Key>())) |
| 33 | decltype(boost::declval<Sequence>().get(mpl::identity<Key>())) |
33 | 34 | type; |
34 | 35 | |
35 | 36 | BOOST_FUSION_GPU_ENABLED |
… |
… |
namespace boost { namespace fusion
|
44 | 45 | struct apply<Sequence const, Key> |
45 | 46 | { |
46 | 47 | typedef |
47 | | decltype(std::declval<Sequence const>().get(mpl::identity<Key>())) |
| 48 | decltype(boost::declval<Sequence const>().get(mpl::identity<Key>())) |
48 | 49 | type; |
49 | 50 | |
50 | 51 | BOOST_FUSION_GPU_ENABLED |
diff --git a/include/boost/fusion/container/map/detail/value_at_impl.hpp b/include/boost/fusion/container/map/detail/value_at_impl.hpp
index f98c580..c51cc12 100644
a
|
b
|
|
9 | 9 | |
10 | 10 | #include <boost/fusion/support/config.hpp> |
11 | 11 | #include <boost/mpl/at.hpp> |
| 12 | #include <boost/utility/declval.hpp> |
12 | 13 | |
13 | 14 | namespace boost { namespace fusion |
14 | 15 | { |
… |
… |
namespace boost { namespace fusion
|
27 | 28 | { |
28 | 29 | typedef mpl::int_<N::value> index; |
29 | 30 | typedef |
30 | | decltype(std::declval<Sequence>().get_val(index())) |
| 31 | decltype(boost::declval<Sequence>().get_val(index())) |
31 | 32 | type; |
32 | 33 | }; |
33 | 34 | }; |
diff --git a/include/boost/fusion/container/map/detail/value_at_key_impl.hpp b/include/boost/fusion/container/map/detail/value_at_key_impl.hpp
index 00a54c4..94d2da4 100644
a
|
b
|
|
12 | 12 | #include <boost/type_traits/is_const.hpp> |
13 | 13 | #include <boost/mpl/at.hpp> |
14 | 14 | #include <boost/mpl/identity.hpp> |
| 15 | #include <boost/utility/declval.hpp> |
15 | 16 | |
16 | 17 | namespace boost { namespace fusion |
17 | 18 | { |
… |
… |
namespace boost { namespace fusion
|
29 | 30 | struct apply |
30 | 31 | { |
31 | 32 | typedef |
32 | | decltype(std::declval<Sequence>().get_val(mpl::identity<Key>())) |
| 33 | decltype(boost::declval<Sequence>().get_val(mpl::identity<Key>())) |
33 | 34 | type; |
34 | 35 | }; |
35 | 36 | }; |
diff --git a/include/boost/fusion/container/map/map_iterator.hpp b/include/boost/fusion/container/map/map_iterator.hpp
index 1c03d8e..db89738 100644
a
|
b
|
|
12 | 12 | #include <boost/fusion/iterator/iterator_facade.hpp> |
13 | 13 | #include <boost/mpl/minus.hpp> |
14 | 14 | #include <boost/mpl/equal_to.hpp> |
| 15 | #include <boost/utility/declval.hpp> |
15 | 16 | |
16 | 17 | namespace boost { namespace fusion |
17 | 18 | { |
… |
… |
namespace boost { namespace fusion
|
37 | 38 | typedef typename Iterator::sequence sequence; |
38 | 39 | typedef typename Iterator::index index; |
39 | 40 | typedef |
40 | | decltype(std::declval<sequence>().get_val(index())) |
| 41 | decltype(boost::declval<sequence>().get_val(index())) |
41 | 42 | type; |
42 | 43 | }; |
43 | 44 | |
… |
… |
namespace boost { namespace fusion
|
47 | 48 | typedef typename Iterator::sequence sequence; |
48 | 49 | typedef typename Iterator::index index; |
49 | 50 | typedef |
50 | | decltype(std::declval<sequence>().get_val(index()).second) |
| 51 | decltype(boost::declval<sequence>().get_val(index()).second) |
51 | 52 | type; |
52 | 53 | }; |
53 | 54 | |
… |
… |
namespace boost { namespace fusion
|
56 | 57 | { |
57 | 58 | typedef typename Iterator::sequence sequence; |
58 | 59 | typedef typename Iterator::index index; |
59 | | typedef decltype(std::declval<sequence>().get_key(index())) key_identity_type; |
| 60 | typedef decltype(boost::declval<sequence>().get_key(index())) key_identity_type; |
60 | 61 | typedef typename key_identity_type::type type; |
61 | 62 | }; |
62 | 63 | |
… |
… |
namespace boost { namespace fusion
|
66 | 67 | typedef typename Iterator::sequence sequence; |
67 | 68 | typedef typename Iterator::index index; |
68 | 69 | typedef |
69 | | decltype(std::declval<sequence>().get(index())) |
| 70 | decltype(boost::declval<sequence>().get(index())) |
70 | 71 | type; |
71 | 72 | |
72 | 73 | BOOST_FUSION_GPU_ENABLED |
… |
… |
namespace boost { namespace fusion
|
83 | 84 | typedef typename Iterator::sequence sequence; |
84 | 85 | typedef typename Iterator::index index; |
85 | 86 | typedef |
86 | | decltype(std::declval<sequence>().get(index()).second) |
| 87 | decltype(boost::declval<sequence>().get(index()).second) |
87 | 88 | type; |
88 | 89 | |
89 | 90 | BOOST_FUSION_GPU_ENABLED |