|
Boost : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-03-14 02:59:30
Jo?o Abecasis wrote:
> Vladimir Prus wrote:
>> Hi,
>> the above two tests fail on a number of compilers with what looks like a
>> two-phase lookup issue. See:
>>
>> http://tinyurl.com/jeakp
>> http://tinyurl.com/q3hbv
>>
>> I can reproduce this locally with g++ 3.4. Can somebody check if this is
>> a bug in the library, or some quirk with g++ 3.4?
>
> Bugs in the implementation, related to two-phase lookup, I guess. These
> should now be fixed in CVS.
I am afraid, this still doesn't work, though with a different error:
gcc.compile.c++ ../../../bin.v2/libs/spirit/test/ast_calc_tests.test/gcc-3.4/debug/ast_calc_tests.o
In file included from ../../../boost/spirit/tree/tree_to_xml.hpp:108,
from ast_calc_tests.cpp:13:
../../../boost/spirit/tree/impl/tree_to_xml.ipp: In static member function
`static const wchar_t*
boost::spirit::impl::string_lit<wchar_t>::to_wchar_t(const char*)':
../../../boost/spirit/tree/impl/tree_to_xml.ipp:66: error: cannot convert
`const char*' to `const wchar_t*' in return
"g++-3.4" -ftemplate-depth-100 -O0 -fno-inline -Wall -g -fPIC
-DBOOST_ALL_NO_LIB=1 -I"../../.." -c -o
"../../../bin.v2/libs/spirit/test/ast_calc_tests.test/gcc-3.4/debug/ast_calc_tests.o"
"ast_calc_tests.cpp"
I'm using up-to-date CVS as of now. The repeat_ast_test fails with the same
error.
Here's the code:
static wchar_t const* to_wchar_t(..........)
{
return std::use_facet<ctype_t>(std::locale())
.widen(source, source + len, result);
}
The problem is that the 'widen' method always returns char*, and return
value is equal to the second parameter. I guess the right code would be:
std::use_facet<ctype_t>(std::locale())
.widen(source, source + len, result);
return result;
but I'm not quite sure. Can you check if this works and is right
semantically?
Thanks,
Volodya
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk