std::experimental::source_location
來自 cppreference.com
定義於標頭檔案 <experimental/source_location> |
||
struct source_location; |
(庫基礎 TS v2) | |
source_location
類表示關於原始碼的某些資訊,例如檔名、行號和函式名。此前,需要獲取關於呼叫站點的此資訊(用於日誌記錄、測試或除錯目的)的函式必須使用宏,以便在呼叫者的上下文中擴充套件預定義宏(如 __LINE__ 和 __FILE__)。source_location
類提供了一個更好的替代方案。
目錄 |
[編輯] 成員函式
建立 | |
使用實現定義的值構造新的 source_location (public 成員函式) | |
[靜態] |
構造新的 source_location (public 靜態成員函式) |
其他特殊成員函式 | |
(解構函式) (隱式宣告) |
銷燬 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!