/* * Copyright 2014 Daniel Vrátil * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library. If not, see . */ #ifndef ASYNC_IMPL_H #define ASYNC_IMPL_H #include "async.h" namespace Async { namespace detail { template struct identity { typedef T type; }; template struct isIterable { enum { value = 0 }; }; template struct isIterable::type> { enum { value = 1 }; }; template struct prevOut { using type = typename std::tuple_element<0, std::tuple>::type; }; } // namespace Detail } // namespace Async #endif // ASYNC_IMPL_H