Subject: [Boost-bugs] [Boost C++ Libraries] #13629: boost::fusion::make_map cannot be called with boost::fusion::vector
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-07-07 05:48:09
#13629: boost::fusion::make_map cannot be called with boost::fusion::vector
-------------------------------------------------+-------------------------
Reporter: Shintaro Sakahara <shintaro- | Owner: Joel de
sakahara@â¦> | Guzman
Type: Bugs | Status: new
Milestone: To Be Determined | Component: fusion
Version: Boost 1.67.0 | Severity: Problem
Keywords: |
-------------------------------------------------+-------------------------
The following code cannot be compiled on MSVC2017.
{{{
struct Z;
boost::fusion::make_map<Z>(boost::fusion::make_vector(1, 2));
}}}
Error is like this
{{{
1>d:\libraries\boost_1_67_0\boost\fusion\container\map\detail\map_impl.hpp(112):
error C2664: 'boost::fusion::pair<test_main::test_method::Z,T>::pair(const
boost::fusion::pair<test_main::test_method::Z,T> &)': cannot convert
argument 1 from 'const int' to 'const boost::fusion::vector<int,int> &'
1> with
1> [
1> T=boost::fusion::vector<int,int>
1> ]
1>d:\libraries\boost_1_67_0\boost\fusion\container\map\detail\map_impl.hpp(113):
note: Reason: cannot convert from 'const int' to 'const
boost::fusion::vector<int,int>'
1>d:\libraries\boost_1_67_0\boost\fusion\container\map\detail\map_impl.hpp(113):
note: No constructor could take the source type, or constructor overload
resolution was ambiguous
1>d:\libraries\boost_1_67_0\boost\fusion\container\map\map.hpp(74): note:
see reference to function template instantiation
'boost::fusion::detail::map_impl<0,boost::fusion::pair<test_main::test_method::Z,T>>::map_impl<boost::fusion::vector_iterator<Sequence,0>>(const
Iterator &,boost::fusion::detail::map_impl_from_iterator)' being compiled
1> with
1> [
1> T=boost::fusion::vector<int,int>,
1> Sequence=boost::fusion::vector<int,int>,
1> Iterator=boost::fusion::vector_iterator<const
boost::fusion::vector<int,int>,0>
1> ]
1>d:\libraries\boost_1_67_0\boost\fusion\container\map\map.hpp(73): note:
see reference to function template instantiation
'boost::fusion::detail::map_impl<0,boost::fusion::pair<test_main::test_method::Z,T>>::map_impl<boost::fusion::vector_iterator<Sequence,0>>(const
Iterator &,boost::fusion::detail::map_impl_from_iterator)' being compiled
1> with
1> [
1> T=boost::fusion::vector<int,int>,
1> Sequence=boost::fusion::vector<int,int>,
1> Iterator=boost::fusion::vector_iterator<const
boost::fusion::vector<int,int>,0>
1> ]
1>d:\libraries\boost_1_67_0\boost\fusion\container\generation\make_map.hpp(59):
note: see reference to function template instantiation
'boost::fusion::map<boost::fusion::pair<test_main::test_method::Z,T>>::map<boost::fusion::vector<int,int>,void>(const
Sequence &)' being compiled
1> with
1> [
1> T=boost::fusion::vector<int,int>,
1> Sequence=boost::fusion::vector<int,int>
1> ]
1>d:\libraries\boost_1_67_0\boost\fusion\container\generation\make_map.hpp(59):
note: see reference to function template instantiation
'boost::fusion::map<boost::fusion::pair<test_main::test_method::Z,T>>::map<boost::fusion::vector<int,int>,void>(const
Sequence &)' being compiled
1> with
1> [
1> T=boost::fusion::vector<int,int>,
1> Sequence=boost::fusion::vector<int,int>
1> ]
1>d:\path\to\my_code.cpp(LINE): note: see reference to function template
instantiation
'boost::fusion::map<boost::fusion::pair<test_main::test_method::Z,T>>
boost::fusion::make_map<test_main::test_method::Z,boost::fusion::vector<int,int>>(const
boost::fusion::vector<int,int> &)' being compiled
1> with
1> [
1> T=boost::fusion::vector<int,int>
1> ]
-- Ticket URL: <https://svn.boost.org/trac10/ticket/13629> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2018-07-07 05:52:40 UTC