template <class T>
struct is_empty : public true_type-or-false_type {};
Наследники: Если T является пустым типом класса (а не типом союза), то наследуется от true_type, в противном случае наследуется от false_type.
С++ Стандартная ссылка: 10p5.
Руководитель: type_traits пустой.hpp>>>type_traitshpp
Совместимость компилятора: Для правильного обнаружения пустых классов эта черта опирается либо на:
- компилятор, реализующий пустые базовые классы нулевого размера, или
- компилятор, предоставляющий intrinsics для обнаружения пустых классов - этот последний случай можно проверить, проверив, является ли макрос BOOST_IS_EMPTY - это метод.
Нельзя использовать с неполными типами.
Примеры:
Дано: struct empty_class {};
is_empty<empty_class> наследует от true_type.
is_empty<empty_class const>::type является типом true_type.
is_empty<empty_class>::value является интегральным постоянным выражением, которое оценивает до true.
is_empty<T>::value_type является типом bool.