Удобные макросы в C++

  1. Версия компилятора: __VERSION__
    #include <iostream> int main(){ std::cout << "Версия компилятора: " << __VERSION__ << std::endl; }

  2. Дата: __DATE__
    #include <iostream> int main(){ std::cout << "Дата: " << __DATE__ << std::endl; }

  3. Время: __TIME__
    #include <iostream> int main(){ std::cout << "Время: " << __TIME__ << std::endl; }

  4. Название файла: __FILE__
    #include <iostream> int main(){ std::cout << "Название файла: " << __FILE__ << std::endl; }

  5. Время последнего изменения файла: __TIMESTAMP__
    #include <iostream> int main(){ std::cout << "Время последнего изменения файла: " << __TIMESTAMP__ << std::endl; }

  6. Номер строки: __LINE__
    #include <iostream> int main(){ std::cout << "Номер строки: " << __LINE__ << std::endl; }

  7. Полное название функции с аргументами: __PRETTY_FUNCTION__
    #include <iostream> int main(){ std::cout << "Полное название функции с аргументами: " << __PRETTY_FUNCTION__ << std::endl; }

  8. Название функции: __FUNCTION__ или __func__
    #include <iostream> int main(){ std::cout << "Название функции: " << __FUNCTION__ << " или " << __func__ << std::endl; }

  9. Счетчик: __COUNTER__
    #include <iostream> int main(){ std::cout << "Счетчик: " << __COUNTER__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; }

Пример:

#include <iostream> class A{ public: void f(double, int, int){ std::cout << "Версия компилятора: " << __VERSION__ << std::endl; std::cout << "Дата: " << __DATE__ << std::endl; std::cout << "Время: " << __TIME__ << std::endl; std::cout << "Название файла: " << __FILE__ << std::endl; std::cout << "Время последнего изменения файла: " << __TIMESTAMP__ << std::endl; std::cout << "Номер строки: " << __LINE__ << std::endl; std::cout << "Полное название функции с аргументами: " << __PRETTY_FUNCTION__ << std::endl; std::cout << "Название функции: " << __FUNCTION__ << " или "<< __func__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; std::cout << "Счетчик: " << __COUNTER__ << std::endl; } }; int main(){ A a; a.f(1, 2, 3); }

Вывод программы:

Версия компилятора: 4.8.4

Дата: Feb 8 2017

Время: 21:35:06

Название файла: func.cpp

Время последнего изменения файла: Wed Feb 8 21:35:05 2017

Номер строки: 14

Полное название функции с аргументами: void A::f(double, int, int)

Название функции: f или f

Счетчик: 0

Счетчик: 1

Счетчик: 2

Счетчик: 3