void foo(const char* i){
std::cout << i << std::endl;
}
int main(){
boost::bind(&foo, _1)("3");
return 0;
}

↑は正しくコンパイルされて動くんだけど、
↓(引数がint)はコンパイルエラーになるのはなぜですか?

void foo(int i){
   std::cout << i << std::endl;
}
int main(){
   boost::bind(&foo, _1)(3);
   return 0;
}

gcc3.4.4 boost1.33.0です