Boost logo

Boost Users :

From: Paul S. Strauss (pss_at_[hidden])
Date: 2008-06-09 19:26:43


I can't seem to get BOOST_CHECK_EQUAL with std::type_info
instances to compile with g++,
version (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)

Here's a simple test case:

------------------
#include <iostream>
#include <typeinfo>

#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>

std::ostream &
operator<<(std::ostream &out, const std::type_info &info) {
     return out << info.name();
}

BOOST_AUTO_TEST_CASE(Foo) {
     std::cout << "Typeid of int is " << typeid(int) << "\n";
     BOOST_CHECK_EQUAL(typeid(int), typeid(float));
}
------------------

g++ complains that there isn't an operator<< for type_info
in the BOOST_CHECK_EQUAL, even though it is used just fine
on the previous line.

Output:

g++ -o ti ti.cpp
/usr/include/boost/test/test_tools.hpp: In member function ‘void
boost::test_tools::tt_detail::print_log_value<T>::operator()(std::ostream&,
const T&) [with T = std::type_info]’:
/usr/include/boost/test/test_tools.hpp:404: instantiated from
‘std::ostream& boost::test_tools::tt_detail::operator<<(std::ostream&,
const boost::test_tools::tt_detail::print_helper_t<T>&) [with T =
std::type_info]’
/usr/include/boost/test/utils/wrap_stringstream.hpp:66: instantiated
 from ‘boost::basic_wrap_stringstream<CharT>&
boost::operator<<(boost::basic_wrap_stringstream<CharT>&, const T&) [with
CharT = char, T =
boost::test_tools::tt_detail::print_helper_t<std::type_info>]’
/usr/include/boost/test/test_tools.hpp:460: instantiated from ‘void
boost::test_tools::tt_detail::check_frwd(Pred, boost::wrap_stringstream&,
boost::test_tools::const_string, size_t,
boost::test_tools::tt_detail::tool_level,
boost::test_tools::tt_detail::check_type, const Arg0&, const char*, const
Arg1&, const char*) [with Pred =
boost::test_tools::tt_detail::equal_impl_frwd, Arg0 = std::type_info, Arg1
= std::type_info]’
ti.cpp:14: instantiated from here
/usr/include/boost/test/test_tools.hpp:298: error: no match for
‘operator<<’ in ‘ostr << t’

<List of candidates removed, but type_info isn't one of them>

Anyone know why this is?

-- 
Paul S. Strauss                             pss_at_[hidden]

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