Subject: [Boost-bugs] [Boost C++ Libraries] #11387: list.emplace_back() broken on Visual Studio 2010
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-06-10 15:17:50
#11387: list.emplace_back() broken on Visual Studio 2010
------------------------------+-------------------------
Reporter: rafael.gago@⦠| Owner: igaztanaga
Type: Bugs | Status: new
Milestone: To Be Determined | Component: container
Version: Boost 1.58.0 | Severity: Showstopper
Keywords: |
------------------------------+-------------------------
The sample below fails to compile with 1.58. It has no problem with 1.57.
{{{
#include <boost/container/list.hpp>
#include <boost/container/vector.hpp>
struct simple_type {
simple_type (int a, int b, int c, int d, int e, int f, int g)
{
a_ = a;
b_ = b;
c_ = c;
d_ = d;
e_ = e;
f_ = f;
g_ = g;
};
int a_, b_, c_, d_, e_ , f_, g_;
};
int main()
{
boost::container::vector<simple_type> vector;
vector.emplace_back (1, 2, 3, 4, 5, 6, 7);
boost::container::list<simple_type> list;
list.emplace_back (1, 2, 3, 4, 5, 6, 7);
return 0;
}
}}}
The error reported:
{{{
1>------ Build started: Project: intrusive_list, Configuration: Debug
Win32 ------
1> stdafx.cpp
1> list_bug.cpp
1>c:\boost_versions\boost_1_58_0\boost\container\list.hpp(753): error
C2660:
'boost::container::container_detail::node_alloc_holder<Allocator,ICont>::create_node'
: function does not take 7 arguments
1> with
1> [
1> Allocator=boost::container::new_allocator<simple_type>,
1>
ICont=boost::intrusive::list_impl<boost::intrusive::bhtraits<boost::container::container_detail::list_node<simple_type,void
*>,boost::intrusive::list_node_traits<void
*>,normal_link,boost::intrusive::dft_tag,1>,unsigned
int,true,boost::intrusive::list_defaults::header_holder_type>
1> ]
1> c:\boost_versions\boost_1_58_0\boost\container\list.hpp(753) :
see reference to function template instantiation
'boost::container::container_detail::iterator_from_iiterator<IIterator,IsConst>
boost::container::list<T>::emplace<int,int,int,int,int,int,int>(boost::container::container_detail::iterator_from_iiterator<IIterator,true>,P0
&&,P1 &&,P2 &&,P3 &&,P4 &&,P5 &&,P6 &&)' being compiled
1> with
1> [
1>
IIterator=boost::intrusive::list_iterator<boost::intrusive::bhtraits<boost::container::container_detail::list_node<simple_type,void
*>,boost::intrusive::list_node_traits<void
*>,normal_link,boost::intrusive::dft_tag,1>,false>,
1> IsConst=false,
1> T=simple_type,
1> P0=int,
1> P1=int,
1> P2=int,
1> P3=int,
1> P4=int,
1> P5=int,
1> P6=int
1> ]
1>
c:\users\rafgag\vcb1000dd.git_migrated\build\intrusive_list\intrusive_list.cpp(31)
: see reference to function template instantiation 'void
boost::container::list<T>::emplace_back<int,int,int,int,int,int,int>(P0
&&,P1 &&,P2 &&,P3 &&,P4 &&,P5 &&,P6 &&)' being compiled
1> with
1> [
1> T=simple_type,
1> P0=int,
1> P1=int,
1> P2=int,
1> P3=int,
1> P4=int,
1> P5=int,
1> P6=int
1> ]
1>c:\boost_versions\boost_1_58_0\boost\container\list.hpp(753): fatal
error C1903: unable to recover from previous error(s); stopping
compilation
1> Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
==========
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11387> 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 : 2017-02-16 18:50:18 UTC