Struct template pack_options
boost::intrusive::pack_options
Synopsis
template<typename DefaultOptions, class... Options>
struct pack_options {
typedef unspecified_type type;
};
Description
Этот класс является полезностью, которая требует:
класс опций по умолчанию, определяющий начальную статическую константу
несколько вариантов, определяемых как BOOST_INTRUSIVE_OPTION_CONSTANT и BOOST_INTRUSIVE_OPTION_TYPE
и упаковывает их вместе в новый тип, который определяет все опции как статичные постоянные значения. Приведенные варианты формы:
BOOST_INTRUSIVE_OPTION_TYPE(my_pointer, VoidPointer, VoidPointer, my_pointer_type)
BOOST_INTRUSIVE_OPTION_CONSTANT(incremental, bool, Enabled, is_incremental)
Следующее выражение
struct default_options
{
typedef long int_type;
static const int int_constant = -1;
};
pack_options< default_options, my_pointer<void*>, incremental<true> >::type
создаст тип, который будет содержать следующие типдефы/константы
struct unspecified_type
{
typedef long int_type;
static const int int_constant = -1;
typedef void* my_pointer_type;
static const bool is_incremental = true;
};
Если опцион указан в аргументе опционов по умолчанию и позже переопределен как опцион, последнее определение будет преобладать.