私はテンプレートメタプログラミングを知りたいと思っています。これは参考のために以下に示す再帰的ユークリッドのアルゴリズムを使って2つの数のGCDを見つける問題です。C++でのテンプレートメタプログラミングを使って、2つの整数のGCDを見つけよう
function gcd(a, b)
if b = 0
return a;
else
return gcd(b, a mod b);
ご協力いただけると助かります。
私はテンプレートメタプログラミングを知りたいと思っています。これは参考のために以下に示す再帰的ユークリッドのアルゴリズムを使って2つの数のGCDを見つける問題です。C++でのテンプレートメタプログラミングを使って、2つの整数のGCDを見つけよう
function gcd(a, b)
if b = 0
return a;
else
return gcd(b, a mod b);
ご協力いただけると助かります。
このようなものはありますか?
#include <utility>
#include <iostream>
template<int a, int b> struct gcd
{
static constexpr auto value = gcd<b, a % b>::value;
};
template<int a>
struct gcd<a, 0>
{
static constexpr auto value = a;
};
int main()
{
auto x = gcd<10,5>::value;
std::cout << x << std::endl;
}
特殊なバージョンでは、どうしてstruct gcd
@ VarunRaoそれはテンプレートパラメータの使い方ではないからです。 'printf(const char *" My Text ");' – Caleth
@ VarunRaoを試してみてください。 –
問題を解決するコードを提供するための努力をしていない、コードのリクエストであるため、この質問をトピックとしてクローズすることにしました。 OPは、スプーンフィードの場合よりも、解決策を講じてより多くを学ぶでしょう。 – Peter