std::experimental::source_location
From cppreference.com
< cpp | experimental
| ヘッダー <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!