Это называется минимум двумя числами, и вам не нужна всемирная библиотека тяжеловесов, такая как mpl
, чтобы сделать такую вещь:
template <int M, int N>
struct compile_time_min
{
static const int smaller = M < N ? M : N;
};
int main()
{
const int smaller = compile_time_min<10, 5>::smaller;
}
Конечно, если бы это был C ++ 0x, вы могли бы легко сказать:
constexpr int compile_time_min(int M, int N)
{
return M < N ? M : N;
}
int main()
{
constexpr int smaller = compile_time_min(10, 5);
}