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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk