Я изо всех сил пытаюсь понять определение шаблонов. Мое основное понимание состоит в том, что определения шаблонов позволяют сделать тип данных либо для возврата, либо для аргументов как общие. Это аргумент шаблона - это дат данных, для которого компилятор создает и ссылается во время компиляции, < /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
Шаблоны C ++ Понимание шаблонов Определения ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Понимание шаблонов деконструкции кода Java (JEP 405: шаблоны записей и шаблоны массивов)
Anonymous » » в форуме JAVA - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-