/////////////////////////////////////////////////////////////////////////////// /// \file expand_pack.hpp /// Contains helpers for pseudo-pack expansion. // // Copyright 2012 Eric Niebler. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) template struct expand_pattern_helper { typedef Ret (*type)(); typedef mpl::bool_< false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; }; template struct expand_pattern_helper { typedef Ret (*type)(typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type , typename expand_pattern_helper::type); typedef mpl::bool_::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || expand_pattern_helper::applied::value || false> applied; };