c++ - C++ 变量模板是内联的吗?

标签 c++ c++17

这个问题在这里已经有了答案:





Why does cppreference define type_traits xxx_v shortcuts as inline constexpr and not just constexpr?

(2 个回答)


9 个月前关闭。




我注意到 C++ 标准库通过变量模板定义特征,这些模板显式声明为内联:

      template <class T> inline constexpr bool is_void_v = is_void<T>::value;
      template <class T> inline constexpr bool is_null_pointer_v = is_null_pointer<T>::value;
      template <class T> inline constexpr bool is_integral_v = is_integral<T>::value;
我认为默认情况下所有变量模板都是内联的。在这种情况下,是否有任何特殊原因将它们声明为内联?

最佳答案

都是 static 的类(class)成员和 constexpr也隐含 inline .非成员(member)没有此属性。并且变量模板不是隐式 inline .
确实,非static , 非成员模板函数和变量必须显式声明 inline .

关于c++ - C++ 变量模板是内联的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66283355/

相关文章:

c++ - 分配 vector

c++ - 从 mfc 向导中删除水平分隔线

c++ - EnumChildWindows 中的 MoveWindow 对对话框内 ListView 的影响 : Why ListView Header is not correctly scrolling

c++ - 对 float 求和的最佳 OpenCL 2 内核是什么?

c++ - 一元 * 运算符的操作数是否期望纯右值

c++ - 分隔文本文件中的数据

c++ - 此代码是否应该无法在 C++17 中编译?

c++ - 使用带有 std::optional 参数的 std::function 重载歧义

c++ - 如何共享运营商返回的数据

c++ - 类与命名空间范围