|
Boost Users : |
Subject: [Boost-users] [lambda] Using Boost.Lambda with overloaded operators on user defined types
From: DeVill (devillmeister_at_[hidden])
Date: 2011-11-19 04:44:20
Hi!
I can work around this one easily, but I'm really interested what's wrong
with it, and spent 2 days searching in vain.
I have in SnakeCube.h the following:
typedef boost::multi_array<int, 3> SnakeCubeSolution_t;
typedef std::tr1::function<void(const SnakeCubeSolution_t&)>
SnakeCubeSolutionCallback_t;
typedef std::vector<int> SnakeCubeConstraint_t;
void solveSnakeCube( const SnakeCubePosition_t& constraint,
SnakeCubeSolutionCallback_t callback);
std::ostream& operator<< (std::ostream& out, SnakeCubeSolution_t solution);
I included <vector> <ostream> <boost/tr1/functional.hpp>
<boost/multi_array.hpp>
Function implementations do not seem important, since the problem persists
with empty functions.
--- The part that won't compile is the last line of main.cpp (Error message at the end of the post) #include <algorithm> #include <iostream> #include <boost/assign/std/vector.hpp> #include <boost/lambda/lambda.hpp> #include "SnakeCube.h" using namespace std; using namespace boost::assign; int main(int argc, char* argv[]) { using boost::lambda::_1; SnakeCubeConstraint_t constraint; constraint += 0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,1,0,1,0,1,0,1,0,0; solveSnakeCube( constraint, cout << _1); // Other versions I tried: //solveSnakeCube( constraint, boost::ref(cout) << _1); //solveSnakeCube( constraint, boost::lambda::ret<ostream&>( cout << _1 ) ); } The easy way out is renaming the operator to printSoution, and use bind(printSolution, boost::ref(cout), _1) instead of cout << _1. Can someone please point me in the right direction on this matter? Thanks, Rafael --------------- g++ -Wall --pedantic -ansi -O3 -o snakecube main.cpp SnakeCube.o In file included from /usr/include/boost/lambda/lambda.hpp:22:0, from main.cpp:6: /usr/include/boost/lambda/detail/operator_lambda_func_base.hpp: In member function RET boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, Args>::call(A&, B&, C&, Env&) const [with RET = std::basic_ostream<char>&, A = const boost::multi_array<int, 3ul>, B = const boost::tuples::null_type, C = const boost::tuples::null_type, Env = const boost::tuples::null_type, Args = boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>]: /usr/include/boost/lambda/detail/lambda_functors.hpp:202:50: instantiated from typename boost::lambda::lambda_functor<Base>::inherited::sig<boost::tuples::tuple<const A&> >::type boost::lambda::lambda_functor<Base>::operator()(const A&) const [with A = boost::multi_array<int, 3ul>, T = boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, typename boost::lambda::lambda_functor<Base>::inherited::sig<boost::tuples::tuple<const A&> >::type = std::basic_ostream<char>&] /usr/include/boost/function/function_template.hpp:153:11: instantiated from static void boost::detail::function::void_function_obj_invoker1<FunctionObj, R, T0>::invoke(boost::detail::function::function_buffer&, T0) [with FunctionObj = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, R = void, T0 = const boost::multi_array<int, 3ul>&] /usr/include/boost/function/function_template.hpp:913:60: instantiated from void boost::function1<R, T1>::assign_to(Functor) [with Functor = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, R = void, T0 = const boost::multi_array<int, 3ul>&] /usr/include/boost/function/function_template.hpp:722:7: instantiated from boost::function1<R, T1>::function1(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, R = void, T0 = const boost::multi_array<int, 3ul>&, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int] /usr/include/boost/function/function_template.hpp:1064:16: instantiated from boost::function<R(T0)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, R = void, T0 = const boost::multi_array<int, 3ul>&, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int] main.cpp:28:44: instantiated from here /usr/include/boost/lambda/detail/operator_lambda_func_base.hpp:212:1: error: no match for operator<< in boost::lambda::detail::select [with Any = std::basic_ostream<char>, A = const boost::multi_array<int, 3ul>, B = const boost::tuples::null_type, C = const boost::tuples::null_type, Env = const boost::tuples::null_type]((* & boost::tuples::get [with int N = 0, HT = std::basic_ostream<char>&, TT = boost::tuples::cons<boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type>, typename boost::tuples::access_traits<typename boost::tuples::element<N, boost::tuples::cons<HT, TT> >::type>::const_type = std::basic_ostream<char>&]((* &((const boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >*)this)->boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::args.boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>::<anonymous>))), (* & a), (* & b), (* & c), (* & env)) << boost::lambda::detail::select [with Arg = boost::lambda::placeholder<1>, A = const boost::multi_array<int, 3ul>, B = const boost::tuples::null_type, C = const boost::tuples::null_type, Env = const boost::tuples::null_type, typename Arg::sig<boost::tuples::tuple<A&, B&, C&, Env&> >::type = const boost::multi_array<int, 3ul>&]((* & boost::tuples::get [with int N = 1, HT = std::basic_ostream<char>&, TT = boost::tuples::cons<boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type>, typename boost::tuples::access_traits<typename boost::tuples::element<N, boost::tuples::cons<HT, TT> >::type>::const_type = const boost::lambda::lambda_functor<boost::lambda::placeholder<1> >&]((* &((const boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >*)this)->boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::args.boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>::<anonymous>))), (* & a), (* & b), (* & c), (* & env)) /usr/include/boost/lambda/detail/operator_lambda_func_base.hpp:212:1: note: candidates are: /usr/include/c++/4.6/ostream:110:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:110:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to std::basic_ostream<char>::__ostream_type& (*)(std::basic_ostream<char>::__ostream_type&) {aka std::basic_ostream<char>& (*)(std::basic_ostream<char>&)} /usr/include/c++/4.6/ostream:119:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ios_type& (*)(std::basic_ostream<_CharT, _Traits>::__ios_type&)) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>, std::basic_ostream<_CharT, _Traits>::__ios_type = std::basic_ios<char>] /usr/include/c++/4.6/ostream:119:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to std::basic_ostream<char>::__ios_type& (*)(std::basic_ostream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)} /usr/include/c++/4.6/ostream:129:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:129:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to std::ios_base& (*)(std::ios_base&) /usr/include/c++/4.6/ostream:167:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:167:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to long int /usr/include/c++/4.6/ostream:171:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:171:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to long unsigned int /usr/include/c++/4.6/ostream:175:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:175:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to bool /usr/include/c++/4.6/bits/ostream.tcc:93:5: note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char, _Traits = std::char_traits<char>] /usr/include/c++/4.6/bits/ostream.tcc:93:5: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to short int /usr/include/c++/4.6/ostream:182:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:182:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to short unsigned int /usr/include/c++/4.6/bits/ostream.tcc:107:5: note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>] /usr/include/c++/4.6/bits/ostream.tcc:107:5: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to int /usr/include/c++/4.6/ostream:193:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:193:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to unsigned int /usr/include/c++/4.6/ostream:202:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:202:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to long long int /usr/include/c++/4.6/ostream:206:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:206:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to long long unsigned int /usr/include/c++/4.6/ostream:211:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:211:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to double /usr/include/c++/4.6/ostream:215:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:215:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to float /usr/include/c++/4.6/ostream:223:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:223:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to long double /usr/include/c++/4.6/ostream:227:7: note: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] /usr/include/c++/4.6/ostream:227:7: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to const void* /usr/include/c++/4.6/bits/ostream.tcc:121:5: note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>] /usr/include/c++/4.6/bits/ostream.tcc:121:5: note: no known conversion for argument 1 from const boost::multi_array<int, 3ul> to std::basic_ostream<char>::__streambuf_type* {aka std::basic_streambuf<char>*} /usr/include/boost/lambda/detail/operators.hpp:114:1: note: template<class Arg, class B> const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor<Arg>, typename boost::lambda::const_copy_argument<const B>::type> > > boost::lambda::operator<<(const boost::lambda::lambda_functor<Arg>&, const B&) /usr/include/boost/lambda/detail/operators.hpp:114:1: note: template<class A, class Arg> const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<typename boost::lambda::const_copy_argument<const A>::type, boost::lambda::lambda_functor<Arg> > > > boost::lambda::operator<<(const A&, const boost::lambda::lambda_functor<Arg>&) /usr/include/boost/lambda/detail/operators.hpp:114:1: note: template<class ArgA, class ArgB> const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor<Arg>, boost::lambda::lambda_functor<Arg> > > > boost::lambda::operator<<(const boost::lambda::lambda_functor<Arg>&, const boost::lambda::lambda_functor<Arg>&) /usr/include/boost/lambda/detail/operators.hpp:205:1: note: template<class A, class Arg> const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<typename boost::lambda::detail::convert_ostream_to_ref_others_to_c_plain_by_default<A>::type, boost::lambda::lambda_functor<Arg> > > > boost::lambda::operator<<(A&, const boost::lambda::lambda_functor<Arg>&) /usr/include/boost/lambda/detail/operators.hpp:222:1: note: template<class Arg, class Ret, class ManipArg> const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor<Arg>, Ret (&)(ManipArg)> > > boost::lambda::operator<<(const boost::lambda::lambda_functor<Arg>&, Ret (&)(ManipArg)) /usr/include/c++/4.6/complex:521:5: note: template<class _Tp, class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::complex<_Tp>&) /usr/include/c++/4.6/ostream:528:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*) /usr/include/c++/4.6/ostream:523:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*) /usr/include/c++/4.6/ostream:510:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*) /usr/include/c++/4.6/bits/ostream.tcc:323:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*) /usr/include/c++/4.6/ostream:493:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*) /usr/include/c++/4.6/ostream:473:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char) /usr/include/c++/4.6/ostream:468:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char) /usr/include/c++/4.6/ostream:462:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char) /usr/include/c++/4.6/ostream:456:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char) /usr/include/c++/4.6/ostream:451:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT) /usr/include/c++/4.6/bits/basic_string.h:2693:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&)
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net