Шаблоны C ++ Понимание шаблонов ОпределенияC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Шаблоны C ++ Понимание шаблонов Определения

Сообщение Гость »

Я изо всех сил пытаюсь понять определение шаблонов. Мое основное понимание состоит в том, что определения шаблонов позволяют сделать тип данных либо для возврата, либо для аргументов как общие. Это аргумент шаблона - это дат данных, для которого компилятор создает и ссылается во время компиляции, < /p>
Но я не могу понять сложные определения, как ниже: < /p>
#include
#include

template
struct factorial : std::integral_constant {};

template
struct factorial : std::integral_constant {};

int main() {
std::cout
где < /p>
template
struct integral_constant {
static constexpr T value = v;
typedef T value_type;
typedef integral_constant type;
constexpr operator T() { return v; }
};
< /code>
output: < /p>
120
< /code>
Действительно сложно визуализировать, как шаблоны устанавливаются: < /p>
template
struct integral_constant {
static constexpr int value = 5 * factorial::value;
typedef int value_type;
typedef integral_constant type;
constexpr operator int() { return 5 * factorial::value; }
};


Подробнее здесь: https://stackoverflow.com/questions/795 ... efinitions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»