名前空間
変種
操作

std::experimental::source_location

From cppreference.com
 
 
 
 
 
ヘッダー <experimental/source_location> で定義されています
struct source_location;
(Library Fundamentals TS v2)

source_location クラスは、ファイル名、行番号、関数名などのソースコードに関する特定の情報を表します。以前は、この情報を呼び出し元のコンテキストで展開される __LINE____FILE__ のような事前定義マクロを使用する必要がありました。source_location クラスは、より良い代替手段を提供します。

目次

[編集] メンバー関数

生成
実装定義の値で新しい source_location を構築する
(public メンバー関数) [編集]
[static]
新しいsource_locationを構築します
(public static メンバー関数) [編集]
その他の特殊メンバー関数
(デストラクタ)
(暗黙的に宣言)
source_locationを破棄します
(public メンバー関数) [編集]
operator=
(暗黙的に宣言)
暗黙宣言されたコピー/ムーブ代入演算子
(public メンバー関数) [編集]
フィールドアクセス
このオブジェクトが表す行番号を返す
(public メンバー関数) [編集]
このオブジェクトが表す列番号を返す
(public メンバー関数) [編集]
このオブジェクトが表すファイル名を返す
(public メンバー関数) [編集]
このオブジェクトが表す関数名を返す(もしあれば)
(public メンバー関数) [編集]

[編集]

#include <experimental/source_location>
#include <iostream>
#include <string_view>
 
void log(const std::string_view message,
         const std::experimental::source_location location =
               std::experimental::source_location::current())
{
    std::cout << "info:"
              << location.file_name() << ':'
              << location.line() << ' '
              << message << '\n';
}
 
int main()
{
    log("Hello world!");
}

実行結果の例

info:main.cpp:15 Hello world!
English 日本語 中文(简体) 中文(繁體)