[Boost-bugs] [Boost C++ Libraries] #13629: boost::fusion::make_map cannot be called with boost::fusion::vector

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