Skip to content

Instantly share code, notes, and snippets.

@tenpercent
Created July 7, 2015 10:13
Show Gist options
  • Save tenpercent/58e0c65e4674f2d4260a to your computer and use it in GitHub Desktop.
Save tenpercent/58e0c65e4674f2d4260a to your computer and use it in GitHub Desktop.
#include <iostream>
template<typename TNum>
constexpr TNum min2 (TNum first, TNum second)
{
return (first < second) ? first : second;
}
template<typename TNum, typename... Args>
constexpr TNum
min_of (TNum first, Args... args);
template<typename TNum>
constexpr TNum
min_of (TNum first);
template<typename TNum>
constexpr TNum
min_of (TNum first)
{
return first;
}
template<typename TNum, typename... Args>
constexpr TNum
min_of (TNum first, Args... other)
{
return min2 (first, min_of<Args...> (other...));
}
int main ()
{
constexpr int val = min_of (-100500, -14, 0);
static_assert (val == -100500, "");
std::cout << val << std::endl;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment