零初始化类型

Zero Initialize a Type

本文关键字:类型 初始化      更新时间:2023-10-16

给定一个无符号整型的变量:foo假设我想这样做:

const decltype<foo> bar{};
cout << (55834574890LL & ~bar) << endl;

这给了我预期的42。但是现在假设我想取消bar变量。所以像这样:

cout << (55834574890LL & ~decltype<foo>{}) << endl;

但我只是得到一个错误:

错误:decltype之前的预期主表达式

我也尝试过declval但这会返回一个引用,这也不好。有没有办法做到这一点?

你应该使用圆括号:

auto v = 55834574890LL & ~decltype(foo){};

这是一个演示。