|
Boost : |
From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2004-09-19 10:25:43
>From: "Tobias Schwinger" <tschwinger_at_[hidden]>
> I attached some experimental source code for the prefiltering of an
> operator+ check to clearify the basic idea (compiles with GCC and MSVC
> and CVS version of boost).
It works indeed with GCC and MSVC, but Intel C++ 7.1 had some serious
problems with it. The following is one of several of the same kind of error
messages I got:
op_test_prefilter_test.cpp(72): error: more than one instance of overloaded
function "filter" matches the argument list:
function "filter(integral, integral)"
function "filter(integral, real)"
function "filter(real, integral)"
function "filter(real, real)"
argument types are: (int, int)
BOOST_STATIC_CONSTANT(int, state = ( sizeof(filter(arg1, arg2)) ));
^
detected during instantiation of class "op_test_input_filter<T1,
T2, Operation> [with T1=int, T2=int, Operation=always]" at line 162
I haven't had a chance to examine the implementation, yet (but intend to),
but maybe the above error could be of help to point out any problem.
"BOOST_STATIC_ASSERT(false);" also had to be changed to
"BOOST_STATIC_ASSERT((T1 *) 0);", in order to avoid premature instantiation,
since "false" is not dependent on the template arguments.
Regards,
Terje
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk