零初始化类型
Zero Initialize a Type
给定一个无符号整型的变量:foo
假设我想这样做:
const decltype<foo> bar{};
cout << (55834574890LL & ~bar) << endl;
这给了我预期的42。但是现在假设我想取消bar
变量。所以像这样:
cout << (55834574890LL & ~decltype<foo>{}) << endl;
但我只是得到一个错误:
错误:
decltype
之前的预期主表达式
我也尝试过declval
但这会返回一个引用,这也不好。有没有办法做到这一点?
你应该使用圆括号:
auto v = 55834574890LL & ~decltype(foo){};
这是一个演示。
相关文章:
- 尝试了解C++指针和数据类型初始化
- C++ 基元类型初始化与对象初始化
- C++ 2D shared_ptr数组使用抽象多态类型初始化
- 如何根据构造函数参数使用超类类型初始化成员变量?
- 使用没有默认构造函数的类/类型初始化自定义容器
- Visual C 新类型初始化
- 如何创建一个编译时静态类类型,该类型初始化具有特定值的成员容器
- 使用初始化列表的 POD 类型初始化不起作用
- 大括号之间的自定义类型初始化数组
- std::数组类型初始化
- 错误:类型初始化无效
- 基本类型初始化C++
- 使用派生类类型初始化模板类的静态数组
- 部分默认使用内部类型初始化模板模板参数
- 类型初始化使用 OpenSsl.net 异常
- 存储可以使用不同派生类型初始化的基类型成员变量时,请避免使用new
- 向量和基元类型初始化
- 基元类型初始化的构造函数语法和赋值语法之间的差异
- 是否可以从大括号类型初始化中推断出元组的模板参数
- 可从任何序列类型初始化的c++类