相关疑难解决方法(0)

显式实例化 - 何时使用?

几个星期休息之后,我正在尝试使用David Vandevoorde和Nicolai M. Josuttis 所着的模板 - 完整指南来扩展和扩展我的模板知识,我现在想要了解的是模板的显式实例化.

我实际上并没有这样的机制问题,但我无法想象我想要或想要使用此功能的情况.如果有人能向我解释,我将不仅仅是感激.

c++ templates

73
推荐指数
3
解决办法
5万
查看次数

如何强制实例化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 ...
}
Run Code Online (Sandbox Code Playgroud)

我当然可以引用库中的所有方法来强制它们进行编译和导出,但是不希望向库添加不需要的代码,比如项的参数格式和调用它们的代码等.

????? 具体来说,我正在为多个版本的MSC和GCC以及英特尔编译器构建库.

c++ templates instantiation

49
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×2

templates ×2

instantiation ×1