Boost logo

Boost Users :

From: Sohail Somani (s.somani_at_[hidden])
Date: 2006-07-25 13:00:15


Sorry, I should have sent this email here:

---
Hi,
With the following test case:
#include <boost/array.hpp>
template<typename T,size_t N>
std::ostream operator<<(const std::ostream & os, const boost::array<T,N> & arr)
{
    os << "[ ";
    for(size_t i = 0 ; i < N-1; ++i)
    {
        os << arr[i] << ", ";
    }
    os << arr[N-1] << " ]";
    return os;
}
BOOST_AUTO_UNIT_TEST ( test_boost_test_array )
{
    boost::array<double,3> arr1[] = {
        {{1,0,0}},
        {{1,2,2}}
    };
    boost::array<double,3> arr2[] = {
        {{1,0,0}},
        {{1,2,2}}
    };
    BOOST_REQUIRE_EQUAL_COLLECTIONS(arr1,arr1+2,
                                    arr2,arr2+2);
}
I'm getting odd compile errors at this line:
res.message() << "\nMismatch in a position " << pos << ": "  << *left_begin << " != " << *right_begin;
gcc.compile.c++ bjam-build/gcc/release/unit_tests/data_utils.o
external/boost/include/boost/test/utils/wrap_stringstream.hpp: In function âboost::basic_wrap_stringstream<CharT>& boost::operator<<(boost::basic_wrap_stringstream<CharT>&, const T&) [with CharT = char, T = boost::array<double, 3u>]â:
external/boost/include/boost/test/test_tools.hpp:495:   instantiated from âboost::test_tools::predicate_result boost::test_tools::tt_detail::equal_coll_impl(Left, Left, Right, Right) [with Left = boost::array<double, 3u>*, Right = boost::array<double, 3u>*]â
unit_tests/data_utils.cpp:62:   instantiated from here
external/boost/include/boost/test/utils/wrap_stringstream.hpp:66: error: no match for âoperator<<â in â(+ targ)->boost::basic_wrap_stringstream<CharT>::stream [with CharT = char]() << tâ
What am I missing here?
Sorry for the long email!
TIA,
Sohail

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