Текущее место через std::source_location в C++
Тип std::source_location из C++20 хранит файл, функцию и строку вызова как данные времени компиляции, а не как текстовую подстановку.
Статический метод current собирает
координаты в точке, где его вызвали; это
альтернатива связке __FILE__ и
__LINE__ на уровне языка.
Подключим <source_location>
и выведем номер строки:
#include <iostream>
#include <source_location>
int main() {
auto here = std::source_location::current();
std::cout << here.line() << "\n";
return 0;
}
Сохраните std::source_location::current
в константу. Выведите file_name
и line через пробел.
Напишите void mark(), печатающую
line из current внутри
функции. Вызовите ее из main.