Что важнее — создание экземпляра шаблона или расширение макроса?

Рассмотрим такой пример кода (это просто искусственный пример объединения defineи template, не ищите в этом смысла):

#define COMMA ,

template  class Test
{
public:
    Test(){}

    void Foo(A var COMMA int test);
};

Test Knarz;

Вопрос :

Верно ли мое предположение, что во-первыхпрепроцессор будет искать/заменять все вхождения COMMA и во-вторыхкомпилятор будет создавать экземпляры любых шаблонов в этом порядке?

Дополнение:

Если вышеприведенный ответ «да», как я надеюсь, может быть, вы можете объяснить, почему это решение с использованием шаблонов и определенийработает?

]

8
задан Community 23 May 2017 в 10:28
поделиться