Нулевая инициализация типа

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

const decltype<foo> bar{};

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

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

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

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

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

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

0

Решение

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

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

Вот демо.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]