Почему c ++ не предоставляет возможность объединять несколько определений функций / классов в рамках одного и того же объявления шаблона? - PullRequest
3 голосов
/ 03 апреля 2019

Я писал код для шаблонного класса и понял, что для каждой функции мы должны написать объявление шаблона для каждой функции-члена при ее определении. Например.

template <typename T>
class A {
  public:
    T func1();
    T func2();
};

template<typename T>
T A<T>::func1() {/* code */}
template<typename T>
T A<T>::func2() {/* code */}

Существует ли какая-либо конкретная причина, по которой c ++ не предоставляет функциональности для написания этого с использованием синтаксиса, подобного приведенному ниже:

template <typename T> { // start of Templated block
class A {
  public:
    T func1();
    T func2();
};

T A<T>::func1() {/* code */}
T A<T>::func2() {/* code */}
} // This closing brace marks the end of templated block. one template declaration for multiple definitions.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...