#ifndef TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_DROP_WHILE_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_DROP_WHILE_H_ #include "conditional/if.h" namespace tav { namespace detail { template < template class Predicate, typename Current > struct DropWhile { typedef If< Eval>>, Eval>>, Current > type; }; template < template class Predicate > struct DropWhile { typedef void type; }; } template < template class Predicate, typename Current > using DropWhile = Eval>; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_DROP_WHILE_H_