fix compile error for subscribing functions #6
This commit is contained in:
parent
d8a538f143
commit
9ce5e34153
35
Artnet.h
35
Artnet.h
@ -358,15 +358,40 @@ namespace arx
|
|||||||
return packet[HEADER_SIZE + i];
|
return packet[HEADER_SIZE + i];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void subscribe(const uint32_t universe, const CallbackType& func)
|
template <typename F>
|
||||||
|
inline auto subscribe(const uint32_t universe, F&& func)
|
||||||
|
-> std::enable_if_t<arx::is_callable<F>::value>
|
||||||
{
|
{
|
||||||
callbacks.insert(make_pair(universe, func));
|
callbacks.insert(make_pair(universe, arx::function_traits<F>::cast(func)));
|
||||||
}
|
}
|
||||||
inline void subscribe(const CallbackAllType& func)
|
template <typename F>
|
||||||
|
inline auto subscribe(const uint32_t universe, F* func)
|
||||||
|
-> std::enable_if_t<arx::is_callable<F>::value>
|
||||||
{
|
{
|
||||||
callback_all = func;
|
callbacks.insert(make_pair(universe, arx::function_traits<F>::cast(func)));
|
||||||
}
|
}
|
||||||
inline void subscribe(const uint8_t net, const uint8_t subnet, const uint8_t universe, const CallbackType& func)
|
template <typename F>
|
||||||
|
inline auto subscribe(F&& func)
|
||||||
|
-> std::enable_if_t<arx::is_callable<F>::value>
|
||||||
|
{
|
||||||
|
callback_all = arx::function_traits<F>::cast(func);
|
||||||
|
}
|
||||||
|
template <typename F>
|
||||||
|
inline auto subscribe(F* func)
|
||||||
|
-> std::enable_if_t<arx::is_callable<F>::value>
|
||||||
|
{
|
||||||
|
callback_all = arx::function_traits<F>::cast(func);
|
||||||
|
}
|
||||||
|
template <typename F>
|
||||||
|
inline auto subscribe(const uint8_t net, const uint8_t subnet, const uint8_t universe, F&& func)
|
||||||
|
-> std::enable_if_t<arx::is_callable<F>::value>
|
||||||
|
{
|
||||||
|
uint32_t u = ((uint32_t)net << 8) | ((uint32_t)subnet << 4) | (uint32_t)universe;
|
||||||
|
subscribe(u, func);
|
||||||
|
}
|
||||||
|
template <typename F>
|
||||||
|
inline auto subscribe(const uint8_t net, const uint8_t subnet, const uint8_t universe, F* func)
|
||||||
|
-> std::enable_if_t<arx::is_callable<F>::value>
|
||||||
{
|
{
|
||||||
uint32_t u = ((uint32_t)net << 8) | ((uint32_t)subnet << 4) | (uint32_t)universe;
|
uint32_t u = ((uint32_t)net << 8) | ((uint32_t)subnet << 4) | (uint32_t)universe;
|
||||||
subscribe(u, func);
|
subscribe(u, func);
|
||||||
|
Loading…
Reference in New Issue
Block a user