최대 1 분 소요

개요

  • 파일 이름, 소스 라인 번호, 함수 이름 등 소스 코드에 대한 특정 정보를 나타내는 클래스
  • 기존의 __LINE__, __FILE__ 등에 대한 더 나은 대안


예제

  • 코드
    #include <iostream>
    #include <source_location>

    using namespace std;

    int main() {
    	auto print = [](source_location sl = source_location::current()) {
    		cout << sl.line() << endl;
    		cout << sl.column() << endl;
    		cout << sl.file_name() << endl;
    		cout << sl.function_name() << endl;
    	};
    	print();

    	cout << "------" << endl;

    	auto func1 = [print]() { print(); };
    	func1();

    	cout << "------" << endl;

    	auto func2 = [print](int i) { print(); };
    	func2(1);

    	return 0;
    }
  • 실행 결과
    13
    7
    main.cpp
    int main()
    ------
    17
    32
    main.cpp
    main()::<lambda()>
    ------
    22
    37
    main.cpp
    main()::<lambda(int)>