template <class T>
struct is_stateless : public true_type-or-false_type
{};
Наследники:Если T является типом без состояния, то наследуется оттипа true_type.В противном случаеФальшивый_тип.
Тип Т должен быть полным типом.
Безгосударственный тип - это тип, который не имеет хранилища и чьи конструкторы и разрушители тривиальны. Это означает, что<is_stateless
>наследует только отtrue_type, если следующее выражение<true
>:
::boost::has_trivial_constructor<T>::value
&& ::boost::has_trivial_copy<T>::value
&& ::boost::has_trivial_destructor<T>::value
&& ::boost::is_class<T>::value
&& ::boost::is_empty<T>::value
C++ Стандартная ссылка:3.9p10.
Заголовок:<#include
<boost/type_traits/is_stateless.hpp>
>или<#include<boost/type_traits.hpp>
>
Совместимость с компилятором:Без некоторой (пока еще не указанной) помощи от компилятора is_stateless никогда не сообщит, что класс или структура не имеют состояния; это всегда безопасно, если возможно, неоптимально. В настоящее время (июнь 2015 года) компиляторы более поздние, чем Visual C++ 8, Clang, GCC-4.3, Greenhills 6.0, Intel-11.0 и Codegear, имеют необходимый компиляторвстроенных, чтобы гарантировать, что эта черта «просто работает».