
I use Dev-C++,and the snipet of the program is: #pragma hdrstop # include <iostream> # include <vector> # include <iterator> # include "boost/math/common_factor.hpp" # include "boost/lambda/lambda.hpp" # include "boost/lambda/bind.hpp" # include "boost/lambda/if.hpp" # include "boost/lambda/casts.hpp" # include "boost/lambda/construct.hpp" # include "boost/lambda/loops.hpp" # include "boost/lambda/switch.hpp" # include "boost/tuple/tuple.hpp" # include "boost/tuple/tuple_comparison.hpp" # include <string> # include <map> using namespace std; using namespace boost::lambda; using namespace boost; void a(){ std::cout<<std::pow(4,3); return; } ............... but the complier told me that: main2test.cpp: In function `void a()': main2test.cpp:69: call of overloaded `pow(int, int)' is ambiguous F:/CB2009/Dev-Cpp/include/math.h:162: candidates are: double pow(double, double) F:/CB2009/Dev-Cpp/include/c++/cmath:401: float std::pow(float, float) F:/CB2009/Dev-Cpp/include/c++/cmath:410: long double std::pow(long double, long double) F:/CB2009/Dev-Cpp/include/c++/cmath:419: double std::pow(double, int) F:/CB2009/Dev-Cpp/include/c++/cmath:423: float std::pow(float, int) F:/CB2009/Dev-Cpp/include/c++/cmath:427: long double std::pow(long double, int) And in my computer, the C++ libraries includes are F:\CB2009\Dev-Cpp\include\c++ F:\CB2009\Dev-Cpp\include\c++\mingw32 F:\CB2009\Dev-Cpp\include\c++\backward F:\CB2009\Dev-Cpp\include F:\CB2009\boost_1_34_1\boost_1_34_1 I do not know how to solve it.I do not use <math> or <cmath> yet. Why the complier told me such files? And whether the two files are included in other files or not? And can I use: bind(&std::pow,constant(-1),bind(&IIPrimemap::size,var(primemapvec))); in the program? where : typedef std::pair<int, int> IIPrimepair; std::vector<IIPrimepair> primepairvec; Can anyone with kindness help me?