Нулевая инициализация типа - PullRequest
0 голосов
/ 02 июня 2018

Учитывая переменную целого типа без знака: foo Допустим, я хочу сделать это:

const decltype<foo> bar{};

cout << (55834574890LL & ~bar) << endl;

Это дает мне ожидаемые 42. Но теперь давайте скажем, что я хочу покончить спеременная bar.Так что-то вроде этого:

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

Но я просто получаю сообщение об ошибке:

ошибка: ожидаемое первичное выражение до decltype

IЯ также пытался declval, но это возвращает ссылку, которая также не годится.Есть ли способ, которым я могу сделать это?

1 Ответ

0 голосов
/ 02 июня 2018

Вы должны использовать круглые скобки:

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

Вот демонстрация.

...