std::experimental::source_location
出自cppreference.com
< cpp | experimental
struct source_location; |
(庫基礎 TS v2) | |
source_location
類表示關於源碼的某些信息,例如文件名、行號和函數名。之前,欲獲得關於調用點的此信息(為了記錄、測試或調試的目的)的函數必須用宏將如 __LINE__ 和 __FILE__ 的預定義宏展開於調用方的環境。 source_location
類提供一個更好的替用品。
目錄 |
[編輯] 成員函數
創建 | |
創建擁有實現定義值的新 source_location (公開成員函數) | |
[靜態] |
創建新的 source_location (公開靜態成員函數) |
其他特殊成員函數 | |
(析構函數) (隱式聲明) |
析構 source_location (公開成員函數) |
operator= (隱式聲明) |
隱式聲明的複製/移動賦值運算符 (公開成員函數) |
域訪問 | |
返回此對象所表示的行號 (公開成員函數) | |
返回此對象所表示的列號 (公開成員函數) | |
返回此對象所表示的文件名 (公開成員函數) | |
返回此對象所表示的函數名,若它存在 (公開成員函數) |
[編輯] 示例
運行此代碼
#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!