Faheem Mitha
Hi,
The following bit of code using Boost Function compiles fine with gcc 3.3 or later, but has problems with the Intel C++ compiler version 9.1, which produces the following error message.
Is this a compiler bug, or is there something wrong with the code?
Looks like a compiler bug.
If the former, I'd be grateful for suggestions of a workaround
Maybe
boost::function
Note that the corresponding version with no templates compiles without problems.
**************************************************************************
icpc -o foo.o -c -Wall -Werror -g -wd383,810,981,1418 cxxlib-icc -DBOOST_RAND -I/usr/local/include/boost-1_33_1 \foo.cpp
foo.cpp(12): error: no operator "=" matches these operands operand types are: boost::function
= <unknown-type> choice = &rchoice<dim>; ^ ************************************************************* #include template<int dim> int rchoice() { return 1; }
template<int dim> int foo(void) { boost::function
choice; choice = &rchoice<dim>; return choice(); } int main() { return foo<2>(); } ***************************************************************
-- Dave Abrahams Boost Consulting www.boost-consulting.com