Макрос C++ расширяется неправильноC++

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

Сообщение Anonymous »

Код для COUNT_ARGS_IMPL:
#define COUNT_ARGS_IMPL(macro, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, N, ...) _1

Почему компилятор Visual Studio получает всю var_args предыдущего макроса в первом аргументе? Если я попробую тот же код, но не вложенный, он работает нормально. Обычно предполагается, что он возвращает макрос ##N, но я сделал это во время тестирования, и это не имеет смысла.
Я тестировал, не передавая имя макроса для подсчета аргументов и имея счетчик предварительно рассчитывается перед запуском макросаshader_program, но проблема сохраняется.
Изображение
Изображение

если вам нужен весь файл, то это так.#pragma once
#define GLAD_GL_IMPLEMENTATION
#include
#include
#include
#include
#include
#include

static std::string readShader(const char const* location)
{
char fileName[256] = "shaders\\";
strcat_s(fileName, location);
std::ifstream stream(fileName);

if (!stream)
{
std::cerr

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

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

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

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

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

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