名稱空間
變體
操作

std::experimental::source_location

來自 cppreference.com
< cpp‎ | 實驗性
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
 
定義於標頭檔案 <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!