Próba określenia „nowoczesne” implementację następującego kodu C-style:Przechwytywanie __LINE__ i __FILE__ bez #define
#define logError(...) log(__FILE__, __LINE__, __VA_ARGS__)
Czy jest możliwe, aby uchwycić to za pomocą zmiennej liczbie argumentów szablonów lub coś podobnego, że nie opierają się na a #define
?
Pożądany przypadek użycia:
logError("Oh no! An error occurred!");
Gdzie __FILE__
i __LINE__
są ujęte pod maską, ale odzwierciedlać nazwę pliku i numer wiersza, gdzie logError
nazwano od.
Nie sądzę, że to możliwe. Makro istnieje z jakiegoś powodu i możesz go użyć w razie potrzeby. –
Prosisz o tworzenie miękkich punktów przerwania przy takim logowaniu. – tadman