函数模板或类模板的成员函数的显式实例化不能使用 inline 或 constexpr
这些主题inline
和constexpr
似乎是独立且不相关的。为什么会有这个限制?
函数模板或类模板的成员函数的显式实例化不能使用 inline 或 constexpr
这些主题inline
和constexpr
似乎是独立且不相关的。为什么会有这个限制?
因为它们服务于相反的目的。
显式实例化的目的是在源文件中为您的项目需要的模板提供定义,这样您就不必在头文件中完全定义模板。
的重点inline
是允许在标题中定义函数 - 以便跨多个翻译单元的函数的多个定义可以折叠成一个。
constexpr
函数必须具有对编译器可见的定义,才能在编译时实际调用它们。没有链接时间constexpr
。
inline
显式实例化一个or函数是没有意义的constexpr
——这些函数模板必须已经在头文件中定义,因此能够按需隐式实例化。