Size: a a a

2020 April 21

AB

Artöm Bakri Al-Sarmini in pro.cxx
Один. Поправил
источник

A

Alex in pro.cxx
хм, понял, спасибо
источник

A

Alex in pro.cxx
большое)
источник

A

Alex in pro.cxx
Есть способ ещё короче написать static_assert, который всегда false?
template <typename T>
class S {
   static_assert(sizeof(T) == 0 && sizeof(T) != 0);
};

P. S. Любопытно, что специализация, вроде как, не нужна (нет других вариантов), а без неё не работает. Похоже на недоработку языка.
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Alex
Есть способ ещё короче написать static_assert, который всегда false?
template <typename T>
class S {
   static_assert(sizeof(T) == 0 && sizeof(T) != 0);
};

P. S. Любопытно, что специализация, вроде как, не нужна (нет других вариантов), а без неё не работает. Похоже на недоработку языка.
Заведи себе

template <typename>
inline constexpr bool dependent_false_v = false;
источник

A

Alex in pro.cxx
О, это дело. Моя мысль не пошла дальше, чем сделать такой же шаблон, но с моей проверкой sizeof.
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Я это у майков увидел
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
У остальных тоже есть такое, только с поправкой на 98
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
У майков вообще лафа в этом плане, они реализуют основные трейты через _v и _t, а не наоборот
источник

DF

Dollar Føølish in pro.cxx
Но ведь в 98 не было шаблонов значений🤓
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
В msvc stl и нет поддержки 98
источник

АК

Александр Караев in pro.cxx
Alex
Есть способ ещё короче написать static_assert, который всегда false?
template <typename T>
class S {
   static_assert(sizeof(T) == 0 && sizeof(T) != 0);
};

P. S. Любопытно, что специализация, вроде как, не нужна (нет других вариантов), а без неё не работает. Похоже на недоработку языка.
я юзаю static_assert(sizeof(T) == 0);
источник

AB

Artöm Bakri Al-Sarmini in pro.cxx
Александр Караев
я юзаю static_assert(sizeof(T) == 0);
С неполными типами не будет работать
источник

АК

Александр Караев in pro.cxx
Artöm Bakri Al-Sarmini
С неполными типами не будет работать
исходный вариант тоже
источник

A

Alex in pro.cxx
Александр Караев
исходный вариант тоже
почему это?
источник

АК

Александр Караев in pro.cxx
Alex
почему это?
sizeof(incomplete) - ill-formed
источник

v

vehlwn in pro.cxx
Александр Караев
sizeof(incomplete) - ill-formed
Хотел сделать зависимый фолзе, а получил свинью.
источник

v

vehlwn in pro.cxx
Alex
почему это?
источник

A

Alex in pro.cxx
Александр Караев
sizeof(incomplete) - ill-formed
а я почему-то думал, что будет 0. Спс, запомню на будущее.
источник

v

vehlwn in pro.cxx
Alex
а я почему-то думал, что будет 0. Спс, запомню на будущее.
В одном проекте я видел треит, который проверял, что Т полный или форвард декларед, как раз с помощью sizeof(T).
источник