use c++11 std::all_of and std::any_of
first attempt tot remove boost.utility