привет, не въеду, как его развернуть
namespace bs2 = boost::signals2;
template<typename return_type, typename ... args>
struct sig_wrap
{
typedef bs2::signal_type<return_type (args...)>::type signal_t;
};
error C2146: syntax error : missing ';' before identifier 'signal_t'
error C4430: missing type specifier — int assumed. Note: C++ does not support default-int
как?
VS 2013
Здравствуйте, Logot, Вы писали:
Как минимум тут первая проблема:
typedef typename bs2::signal_type<return_type (args...)>::type signal_t;
Здравствуйте, watchmaker, Вы писали:
W>Здравствуйте, Logot, Вы писали:
W>Как минимум тут первая проблема:
W>W> typedef typename bs2::signal_type<return_type (args...)>::type signal_t;
W>
и похоже единственная
Здравствуйте, Logot, Вы писали:
L>привет, не въеду, как его развернуть
Встречный вопрос: а зачем sig_wrap принимает <return_type, arg1, arg2, etc...>, вместо того, чтобы сделать так же, как bs2?
L>namespace bs2 = boost::signals2;
L>template<typename function_signature>
L>struct sig_wrap
L>{
L> typedef typename bs2::signal_type<function_signature>::type signal_t;
L>};
Здравствуйте, Кодт, Вы писали:
К>Встречный вопрос: а зачем sig_wrap принимает <return_type, arg1, arg2, etc...>, вместо того, чтобы сделать так же, как bs2?
К>L>>namespace bs2 = boost::signals2;
L>>template<typename function_signature>
L>>struct sig_wrap
L>>{
L>> typedef typename bs2::signal_type<function_signature>::type signal_t;
L>>};
К>
та да, я потом покрутил и сделал примерно так
typedef bs2::keywords::mutex_type<bs2::dummy_mutex> dummy_mutex;
template<typename signature_type, typename mutex_type = dummy_mutex>
struct sig_wrap
{
typedef typename bs2::signal_type<signature_type, mutex_type>::type signal_t;
typedef typename signal_t::slot_type slot_t;
};