查看标题。我有一个模板。我想强制一个模板的特定实例实例化。我该怎么做呢?如何强制C++模板的特定实例实例化?
更具体地说,可以迫使一个抽象的模板类实例化?
我可能会详细说明,因为我有同样的问题。在我的情况下,我正在构建一个库,一些模板实现很大,并包含很多东西,但只生成几种类型。我想在库中编译它们并导出所有的方法,但不包含任何地方的代码头。
即:
template<class T>
OS_EXPORT_DECL class MyTmpl
{
T *item1;
public:
inline T *simpleGetT() { return(item1); } /* small inline code in here */ }
T *doSomeReallyBigMergeStuff(T *b); // note only declaration here
};
// *** implementation source file only seen inside library
template<class T>
MyTmpl<T>::doSomeReallyBigMergeStuff(T *b)
{
... a really big method, but don't want to duplicate it,
so it is a template ...
}
我当然可以参考所有的库里面的方法,这将迫使他们来编译和出口,但不是非所需的代码添加到资料库,如参数的欲望格式化的项目和代码来调用它们等
?????具体而言,我正在为MSC和GCC以及英特尔编译器的几个版本构建库。
你能提供一个例子吗? “实例化抽象模板类”是什么意思? – jalf 2010-01-28 05:06:34