#pragma once #include #include "chat_messages.hpp" /* SFINAE compile-type checker for receive policies (as defined in chat_networking.hpp) * it checks whether PolicyCandidate supplies all of the following methods: * - void message_do_what(chat_message) */ template struct is_valid_policy : std::false_type {}; template struct is_valid_policy< PolicyCandidate, typename std::enable_if< std::is_same< decltype(PolicyCandidate ::message_do_what(std::declval())), void >::value >::type> : std::true_type {};