summaryrefslogtreecommitdiff
path: root/boost/fusion/sequence/intrinsic/at.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/sequence/intrinsic/at.hpp')
-rw-r--r--boost/fusion/sequence/intrinsic/at.hpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/boost/fusion/sequence/intrinsic/at.hpp b/boost/fusion/sequence/intrinsic/at.hpp
index fdfa72a60a..a103e078a2 100644
--- a/boost/fusion/sequence/intrinsic/at.hpp
+++ b/boost/fusion/sequence/intrinsic/at.hpp
@@ -10,12 +10,13 @@
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/if.hpp>
+#include <boost/mpl/or.hpp>
#include <boost/mpl/less.hpp>
#include <boost/mpl/empty_base.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/support/category_of.hpp>
namespace boost { namespace fusion
{
@@ -64,7 +65,10 @@ namespace boost { namespace fusion
template <typename Sequence, typename N, typename Tag>
struct at_impl
: mpl::if_<
- mpl::less<N, typename extension::size_impl<Tag>::template apply<Sequence>::type>
+ mpl::or_<
+ mpl::less<N, typename extension::size_impl<Tag>::template apply<Sequence>::type>
+ , traits::is_unbounded<Sequence>
+ >
, typename extension::at_impl<Tag>::template apply<Sequence, N>
, mpl::empty_base
>::type