summaryrefslogtreecommitdiff
path: root/boost/spirit/home/x3/core/detail/parse_into_container.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/spirit/home/x3/core/detail/parse_into_container.hpp')
-rw-r--r--boost/spirit/home/x3/core/detail/parse_into_container.hpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/boost/spirit/home/x3/core/detail/parse_into_container.hpp b/boost/spirit/home/x3/core/detail/parse_into_container.hpp
index 4f2310a8e5..979238cff3 100644
--- a/boost/spirit/home/x3/core/detail/parse_into_container.hpp
+++ b/boost/spirit/home/x3/core/detail/parse_into_container.hpp
@@ -21,6 +21,7 @@
#include <boost/fusion/include/front.hpp>
#include <boost/fusion/include/back.hpp>
#include <boost/variant/apply_visitor.hpp>
+#include <iterator> // for std::make_move_iterator
namespace boost { namespace spirit { namespace x3 { namespace detail
{
@@ -99,7 +100,7 @@ namespace boost { namespace spirit { namespace x3 { namespace detail
return false;
// push the parsed value into our attribute
- traits::push_back(attr, val);
+ traits::push_back(attr, static_cast<value_type&&>(val));
return true;
}
@@ -262,7 +263,8 @@ namespace boost { namespace spirit { namespace x3 { namespace detail
Attribute rest;
bool r = parser.parse(first, last, context, rcontext, rest);
if (r)
- traits::append(attr, rest.begin(), rest.end());
+ traits::append(attr, std::make_move_iterator(rest.begin()),
+ std::make_move_iterator(rest.end()));
return r;
}