std::function にラップして渡したいオーバーロードされた関数があります。GCC4.6 は「一致する関数」を見つけられません。ここでいくつかの質問を見つけましたが、答えは私が望むほど明確ではありません. 次のコードが正しいオーバーロードを差し引くことができない理由と、それを (エレガントに) 回避する方法を誰か教えてもらえますか?
int test(const std::string&) {
return 0;
}
int test(const std::string*) {
return 0;
}
int main() {
std::function<int(const std::string&)> func = test;
return func();
}