как создать переменную-шаблон? - PullRequest
1 голос
/ 08 мая 2020
#include <iostream>
using namespace std;

template<int base, int x>
struct Power {


    static constexpr int a = base * (Power<base, x - 1>::a);

};

template<int base>
struct Power<base, 0> {


static constexpr int a = 1;

};

///////////////////////////////// Мне не удалось создать здесь шаблон переменной.

template<int base, int x>       
using power_v = typename Power<base, x>::a;

/////////////////////////////////

int main()
{
    constexpr int y = power_v<3, 2>;

    cout << y;
}

1 Ответ

0 голосов
/ 08 мая 2020

using используется для объявления псевдонима типа .

Псевдоним типа - это имя, которое относится к ранее определенному типу (аналогично typedef ).

Шаблон псевдонима - это имя, которое относится к семейству типов.

As variable_template должно быть

template<int base, int x>       
constexpr int power_v = Power<base, x>::a;

LIVE

...