#ifndef TYPEASVALUE_SRC_FUNCTION_DETAIL_PLACEHOLDER_H_ #define TYPEASVALUE_SRC_FUNCTION_DETAIL_PLACEHOLDER_H_ #include #include "list/list.h" #include "list/operation/nth.h" #include "list/operation/higher/query.h" namespace tav { namespace detail { struct placeholder_tag { }; template struct placeholder : placeholder_tag { }; template using is_placeholder = Eval>; template using count_placeholders = Count>; template struct resolve_placeholder { typedef Argument type; }; template < typename Partials, int Index > struct resolve_placeholder> { typedef Nth, Partials> type; }; } } #endif // TYPEASVALUE_SRC_FUNCTION_DETAIL_PLACEHOLDER_H_