【发布时间】:2014-01-16 16:01:54
【问题描述】:
假设我有这个程序
#include <iostream>
using namespace std;
template<typename T>
class A {
public:
void foo() { cout << "Inside foo" << endl; }
void bar() { cout << "Inside bar" << endl; }
};
int main() {
A<int> a;
a.foo();
return 0;
}
g++ 和 clang++ 都只为A<int>::foo() 生成代码,而不为A<int>::bar() 生成代码。当您想在调试时调用此函数时,这很烦人。 (例如vector<T>::at())。
是否有一些标志或其他方法可以在每次实例化模板时强制为所有成员函数生成代码?
【问题讨论】:
标签: c++ instantiation