c++ - 为什么 static_assert 在带有 const 参数的成员函数中不起作用?
问题描述
我目前正在玩static_assert
并遇到了这个问题:
class A
{
public:
void func( const int a ){
static_assert( a == 3 );
}
};
给我:
error: non-constant condition for static assertion static_assert( a == 3 );
为什么是这样?我的 a 是常量。我可以想象该值将被强制转换为 const 并且以前是非 const,那么是的,应该会出现错误。但仅在成员函数内部,我不会期望任何错误。
我该如何解决?如果无法解决,我也很高兴得到答案,这里有点好奇。
解决方案
a 中的表达式static_assert
必须是编译时常量。const
函数参数只是不可变的,但在编译时不知道。
推荐阅读
- javascript - 当 nextTick 不起作用时,如何让 Vue 从 .vue 文件中立即更新实际的 DOM?
- wpf - WPF - XAML - DataGridRow 样式触发器 IsMouseOver 工具提示数据绑定
- c - 将条件语句定义为变量
- c# - 嵌套异步导致 HttpContext Null
- python - 从 URL 内容中拆分文本
- java - Android GPS 定位未发现问题。如何更正此代码
- powershell - 连接 Select-Object 语句中的两个属性
- python - ansible 动态库存错误
- sql-server - Microsoft SQL Server 外键依赖项使用 sp_MSdependencies 显示,但未在 sys.foreign_keys 中列出
- google-compute-engine - Google Cloud Bigtable 的性能调优技巧