此代碼給我錯誤在VS2015更新1:不能調用的std ::功能
錯誤C2893:無法專注函數模板「未知類型 的std ::調用(_Callable & &,_types & & ...)」
#include <iostream>
#include <functional>
using std::cout;
class A
{
public:
virtual void init()
{
cout << "A";
};
};
class B
{
public:
virtual void init()
{
cout << "B";
};
};
class C : private A, private B
{
std::function<void()> a_init = &A::init;
std::function<void()> b_init = &B::init;
public:
void call()
{
a_init();
b_init();
}
};
int main()
{
C c;
c.call();
return 0;
}
如果這是VS的編譯器是車還是我的代碼的任何想法?
編輯
#include "stdafx.h"
#include <functional>
class A
{
public:
virtual void inita()
{
cout << "A";
};
};
class B
{
public:
virtual void initb()
{
cout << "B";
};
};
class C : private virtual A, private virtual B
{
/*std::function<void()> a_init = &A::init;
std::function<void()> b_init = &B::init;*/
public:
void call()
{
inita();
}
};
這是你的代碼。你期望如何調用'&A :: init'? –
@KerrekSB通過用()調用它? –
@Thereisnothingwecando什麼樣的'A'實例? – TartanLlama