一 举例:
vs:
#include <iostream>
class Demo {
public:
template<typename T>
void f(T&& t) {
std::cout << "Demo:f " << std::endl;
}
};
int main() {
const Demo t;
t.f<int>(1); // error
std::cin.get();
return 0;
}
g++:
二 C2662
Compiler Error C2662:
'function' : cannot convert 'this' pointer from 'type1' to 'type2'
The compiler could not convert the this pointer from type1to type2.
This error can be caused by invoking a non-const member function on a const object. Possible resolutions:
- Remove the const from the object declaration.
- Add const to the member function.
此错误可能是由对 const 对象调用非 const 成员函数引起的。 可能的解决方案:
- 从对象声明中移除 const。
- 将 const 添加到成员函数中。
在sdk接口返回类实例时特别要注意该错误。
三 参考