C++ Template Metaprogramming
Solutions to the exercises throughout the book
|
Weed out compile-time inefficiencies. More...
Files | |
file | exercise-4-3.hpp |
Solution to Exercise 4-3. | |
Namespaces | |
namespace | test_4_3 |
Tests functionality from Exercise 4-3. | |
namespace | exercise_4_3 |
Encapsulate solution for Exercise 4-3. | |
Weed out compile-time inefficiencies.
4-3. Eliminate the unnecessary instantiations in the following code snippets: 1: template <typename N, typename Predicate> struct next_if : mpl::if_< typename mpl::apply<Predicate,N>::type, typename mpl::next<N>::type, N > { }; 2: template <typename N1, typename N2> struct formula : mpl::if_< mpl::not_equal_to<N1,N2>, typename mpl::if_< mpl::greater<N1,N2>, typename mpl::minus<N1,N2>::type, N1 >::type, typename mpl::plus< N1, typename mpl::multiplies< N1, mpl::int_<2> >::type >::type >::type { };