#ifndef TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_TAKE_WHILE_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_TAKE_WHILE_H_ #include "conditional/if.h" namespace tav { template < template class Predicate, typename Current > struct TakeWhile { typedef Eval>>, Eval, Eval>> >>, void >> type; }; template < template class Predicate > struct TakeWhile { typedef void type; }; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_TAKE_WHILE_H_