Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace detail {
- struct any { template<typename T> any(T &&) {} };
- template<typename T, typename U> struct fst { typedef T type; };
- template<typename ...Ts> struct select_impl {
- template<typename U, typename ...Vs>
- static U &&select(typename fst<any, Ts>::type..., U &&u, Vs &&...) {
- return static_cast<U&&>(u);
- }
- };
- }
- template<typename T, typename ...Ts>
- auto back(T &&t, Ts &&...ts) -> decltype(detail::select_impl<Ts...>::select(static_cast<T&&>(t), static_cast<Ts&&>(ts)...)) {
- return detail::select_impl<Ts...>::select(static_cast<T&&>(t), static_cast<Ts&&>(ts)...);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement