Class template signal_type
boost::signals2::signal_type — Specify a the template type parameters of a boost::signals2::signal using named parameters.
Synopsis
template<typename A0, typename A1 = boost::parameter::void_,
typename A2 = boost::parameter::void_,
typename A3 = boost::parameter::void_,
typename A4 = boost::parameter::void_,
typename A5 = boost::parameter::void_,
typename A6 = boost::parameter::void_>
class signal_type {
public:
typedef implementation-detail signature_type;
typedef implementation-detail combiner_type;
typedef implementation-detail group_type;
typedef implementation-detail group_compare_type;
typedef implementation-detail slot_function_type;
typedef implementation-detail extended_slot_function_type;
typedef implementation-detail mutex_type;
typedef typename signal<signature_type, combiner_type, ..., mutex_type> type;
};
Description
Метафункция<signal_type
>использует ускорение. Библиотека параметров, позволяющая пользователям указывать параметры типа шаблонасигналов2::сигналс использованием названных параметров. Полученный тип сигнала обеспечивается посредством<signal_type::type
>typedef. Названные параметры типа шаблона могут повысить читаемость кода и обеспечить удобство для указания классов, которые имеют большое количество параметров шаблона.
Параметры типа шаблона могут передаваться позиционно, аналогично передаче их сигналам2::сигналКласс напрямую. Или они могут быть переданы в качестве именованных параметров шаблона, обернув их в один из классов ключевых слов шаблона, представленных в пространстве имен<boost::signals2::keywords
>. Поддерживаемые ключевые слова шаблона:Ключевые слова::signature_type,Ключевые слова::combiner_type,Ключевые слова::group_type,Ключевые слова:group_compare_type,Ключевые слова::slot_function_type,Ключевые слова::extended_slot_function_typeиключевые слова::mutex_type.
Типы по умолчанию для неопределенных параметров типов шаблонов такие же, как для классасигнала.
Названные параметры типа шаблона особенно удобны, когда вы хотите изменить только несколько параметров типа шаблона сигнала по умолчанию, а параметры, которые вы хотите изменить, находятся в конце списка параметров шаблона сигнала. Например, если вы хотите изменить параметр типа шаблона<Mutex
>сигнала, вы можете написать:
namespace bs2 = boost::signals2;
using bs2::keywords;
bs2::signal_type<void (), mutex_type<bs2::dummy_mutex> >::type sig;
Для сравнения, указать один и тот же тип с помощью класса сигнала напрямую выглядит так:
namespace bs2 = boost::signals2;
bs2::signal
<
void (),
bs2::optional_last_value<void>,
int,
std::less<int>,
boost::function<void ()>,
boost::function<void (const connection &)>,
bs2::dummy_mutex
> sig;