1
0
Fork 0
mirror of https://github.com/bolero-MURAKAMI/Sprout synced 2025-08-03 12:49:50 +00:00

add identity

This commit is contained in:
bolero-MURAKAMI 2013-03-21 22:11:40 +09:00
parent 2cb55b6b6c
commit a2b368a7cc
11 changed files with 85 additions and 63 deletions

View file

@ -12,6 +12,7 @@
#include <sprout/utility/swap.hpp>
#include <sprout/tuple/tuple.hpp>
#include <sprout/tuple/functions.hpp>
#include <sprout/type_traits/common_decay.hpp>
#include <sprout/type/type_tuple.hpp>
#include <sprout/type/algorithm/find_index.hpp>
#include <sprout/functional/type_traits/has_type.hpp>
@ -89,10 +90,8 @@ namespace sprout {
template<typename Visitor, typename Tuple, sprout::index_t... Indexes>
struct visitor_result_impl_1<Visitor, Tuple, sprout::index_tuple<Indexes...> > {
public:
typedef typename std::decay<
typename std::common_type<
decltype((std::declval<Visitor>())(sprout::tuples::get<Indexes>(std::declval<Tuple>())))...
>::type
typedef typename sprout::common_decay<
decltype((std::declval<Visitor>())(sprout::tuples::get<Indexes>(std::declval<Tuple>())))...
>::type type;
};
template<typename Visitor, typename Tuple, typename = void>