C++使用静态内联声明模板函数是否有意义?

0xb*_*00d 3 c++ standards templates inline

我们没有'extern模板','模板'函数总是'隐式内联'.这还有意义吗?

Joh*_*itb 5

这对我来说没有意义.函数模板不是"隐式内联".您必须明确声明它"内联"以使其内联.

这并不意味着对它的调用是否被内联.这完全是编译器的决定.由于模板可以在多个翻译单元中定义(假设每个定义为模板提供相同的行为)inline,根据我的看法,放置这样的模板没有太大的影响.唯一的结果是告诉优化器你希望从我能看到的内联调用函数模板.

制作功能模板static是完全合理的.这使得您可以在多个翻译单元中定义模板,每个定义具有不同的行为.由于static模板将具有内部链接,这意味着它们是翻译单元的本地链接并且不会发生冲突.

但是,放置static功能和功能模板完全独立于穿上inline它们.static并且inline不像C99那样依赖于C++ .