下面的代碼工作正常的std ::綁定重載
#include <functional>
using namespace std;
using namespace std::placeholders;
class A
{
int operator()(int i, int j) { return i - j; }
};
A a;
auto aBind = bind(&A::operator(), ref(a), _2, _1);
這不
#include <functional>
using namespace std;
using namespace std::placeholders;
class A
{
int operator()(int i, int j) { return i - j; }
int operator()(int i) { return -i; }
};
A a;
auto aBind = bind(&A::operator(), ref(a), _2, _1);
我曾嘗試與語法玩弄嘗試和明確解決哪些功能我想在到目前爲止沒有運氣的代碼。如何編寫綁定行以選擇使用兩個整數參數的調用?
'A ::運算符()'並不是指單一功能,但一個家庭的功能:我認爲你必須施展才能「選擇」正確的過載。由於我不熟悉C++ 0x,因此我沒有將其驗證爲答案,我可能不知道更優雅的解決方案。 – icecrime 2010-11-11 21:40:24