2整数の最大公約数を求めます。以下の条件を満たせば、必ずしも整数型でなくてもかまいません。

  • 代入可能である
  • <演算子が使用可能
  • %演算子が使用可能

以下は、再帰を利用したメタ関数版です。

今回はせっかくなので、C++11向けのconstexpr版も作ってみましょう。なお、C++14以降であれば、最初に掲載したgcd関数にconstexprを付けるだけでOKです。


元ネタ

↑ 1. 整数型に関するテンプレート