diff --git a/include/mapnik/json/feature_grammar_x3_def.hpp b/include/mapnik/json/feature_grammar_x3_def.hpp index d6432c5d6..d05219350 100644 --- a/include/mapnik/json/feature_grammar_x3_def.hpp +++ b/include/mapnik/json/feature_grammar_x3_def.hpp @@ -164,6 +164,8 @@ struct geometry_type_ : x3::symbols } } geometry_type_symbols; +namespace { + auto assign_name = [](auto const& ctx) { std::get<0>(_val(ctx)) = std::move(_attr(ctx)); @@ -173,6 +175,8 @@ auto assign_value = [](auto const& ctx) std::get<1>(_val(ctx)) = std::move(_attr(ctx)); }; +} // VS2017 + auto const assign_geometry_type = [] (auto const& ctx) { std::get<0>(_val(ctx)) = _attr(ctx); diff --git a/include/mapnik/json/generic_json_grammar_x3_def.hpp b/include/mapnik/json/generic_json_grammar_x3_def.hpp index 8c30cb37d..c16d9477a 100644 --- a/include/mapnik/json/generic_json_grammar_x3_def.hpp +++ b/include/mapnik/json/generic_json_grammar_x3_def.hpp @@ -31,6 +31,8 @@ namespace mapnik { namespace json { namespace grammar { namespace x3 = boost::spirit::x3; +namespace { + auto make_null = [] (auto const& ctx) { _val(ctx) = mapnik::value_null{}; @@ -48,19 +50,20 @@ auto make_false = [] (auto const& ctx) auto assign = [](auto const& ctx) { - _val(ctx) = _attr(ctx); + _val(ctx) = std::move(_attr(ctx)); }; auto assign_key = [](auto const& ctx) { - std::get<0>(_val(ctx)) = _attr(ctx); + std::get<0>(_val(ctx)) = std::move(_attr(ctx)); }; auto assign_value = [](auto const& ctx) { - std::get<1>(_val(ctx)) = _attr(ctx); + std::get<1>(_val(ctx)) = std::move(_attr(ctx)); }; +} // VS2017 using x3::lit; using x3::string;