c++ - C++ 变量模板是内联的吗?
问题描述
我注意到 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
又constexpr
是隐含的类成员inline
。非会员没有这个属性。并且变量模板不是隐式的inline
。
事实上,非static
、非成员模板函数和变量必须显式声明inline
。
推荐阅读
- google-apps-script - 通过脚本的 Google 表格计算方法
- php - 如何使用 whereIn 和 take 函数从 laravel 中的 SQL 获取数据?
- java - 战争文件自动化部署
- xml - XML解析属性
- sql-server - 如何在 SQL Server 中多选筛选 EAV 表
- python - 合并列和索引以创建列表 - Python
- c - 我将如何使用 SSE 使稀疏浮点矩阵卷积更快?
- fullcalendar - 有没有办法在不触发弹出窗口的情况下在 FullCalendar 上的选定日期槽中添加文本?
- interface - 实现一个 ODE 积分器,它可以将一般 f(x,t) 作为 fortran 中的输入
- pyspark - Pyspark user_agent 解析