Как определить функцию вызова, файл и строку конструктора класса?

Как?

Я старался:

#define Some(p1, p2) _Some(p1, p2, __FILE__, __func__, __LINE__)
Some _Some(int p1, int p2, const char* file, const char* func, int line) { ... }

но:

some.hpp:16:12: error: macro "Some" requires 3 arguments, but only 1 given
~Some();
^
some.hpp:16:5: error: invalid use of destructor ‘~Some’ as a type
~Some();
^

0

Решение

Определите совершенно отдельный класс, задачей которого является инкапсуляция позиций исходного кода. (Один класс, одна ответственность.) Этот класс может включать функции для форматирования информации по вашим предпочтениям.

Затем определите макрос с абсолютно уникальным именем, чтобы создать класс из __LINE__ и т.п.

Тогда ваш Some Конструктор класса может просто принять один параметр, который является исходной позицией, и вызывающие абоненты используют макрос в каждом вызове.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector