1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jackarain-avhttp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
handler_type_check.hpp 1.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Jack Отправлено 01.02.2013 15:49 e28ebff
//
// Copyright (C) 2019 Jack.
//
// Author: jack
// Email: jack.wgm at gmail dot com
//
#pragma once
#include <type_traits>
#include <boost/asio/async_result.hpp>
namespace avhttp {
namespace detail {
template<class R, class C, class ...A>
auto is_invocable_test(C&& c, int, A&& ...a)
-> decltype(std::is_convertible<decltype(c(std::forward<A>(a)...)), R>::value
|| std::is_same<R, void>::value, std::true_type());
template<class R, class C, class ...A>
std::false_type
is_invocable_test(C&& c, long, A&& ...a);
template<class C, class F>
struct is_invocable : std::false_type
{};
template<class C, class R, class ...A>
struct is_invocable<C, R(A...)>
: decltype(is_invocable_test<R>(
std::declval<C>(), 1, std::declval<A>()...))
{};
template<class T, class Signature>
using is_completion_handler = std::integral_constant<bool,
std::is_move_constructible<typename std::decay<T>::type>::value &&
detail::is_invocable<T, Signature>::value>;
#define AVHTTP_HANDLER_TYPE_CHECK(type, sig) \
static_assert(avhttp::detail::is_completion_handler< \
BOOST_ASIO_HANDLER_TYPE(type, sig), sig>::value, \
"CompletionHandler signature requirements not met")
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jackarain-avhttp.git
git@api.gitlife.ru:oschina-mirror/jackarain-avhttp.git
oschina-mirror
jackarain-avhttp
jackarain-avhttp
master