170 похожих чатов

Привет, напомните, как создать вариадик макрос Логгера? типа int a =

5;
const char* b = "fsdfds";
LOG("hello",a,........,myType, b)

И ещё, в конце я енум добавлять должен, типа MessageType::Success

Тоесть в конце:

LOG(a,b,c,d,e,MessageType::Success)

9 ответов

6 просмотров

#define SOMETHING(a, b, ...) something<a>(b, __VA_ARGS__) ?

Павел- Автор вопроса
Arsenii es3n1n
#define SOMETHING(a, b, ...) something<a>(b, __VA_...

namespace LogHelper { template <typename... Args> void PrintErr(Args&&... args) { (std::cerr << RED_TEXT << "[ERROR]" << ... << std::forward<Args>(args)) << RESET_COLOR << std::endl; } template <typename... Args> void PrintWarn(Args&&... args) { (std::cerr << YELLOW_TEXT << "[WARN]" << ... << std::forward<Args>(args)) << RESET_COLOR << std::endl; } template <typename... Args> void PrintSucc(Args&&... args) { (std::cerr << GREEN_TEXT << "[WARN]" << ... << std::forward<Args>(args)) << RESET_COLOR << std::endl; } template <typename... Args> void printLog(Args&&... args) { (std::cout << ... << std::forward<Args>(args)) << std::endl; } } вот так придумал, что думаешь? #define LOG_ERROR(...) LogHelper::PrintErr(__VA__ARGS__) #define LOG_WARN(...) LogHelper::PrintErr(__VA__ARGS__) #define LOG_SUCCESS(...) LogHelper::PrintErr(__VA__ARGS__)

А зачем там макрос с вариадиком? В чем проблема раскрывать макрос в создание логера, у которого будет какой-нибудь оператор <<?

Павел- Автор вопроса
Павел- Автор вопроса
Павел
чтобы можно было на NDEBUG вырубать

это и так можно, но макросом удобнее

Павел
чтобы можно было на NDEBUG вырубать

Так вопрос не в отсутствии макроса

Андрей Будиловский
А зачем там макрос с вариадиком? В чем проблема ра...

Такой оператор в принципе крайне часто критикуется. Лучше делать по образу fmt::format

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта