簡體   English   中英

具有通用格式說明符的Printf

[英]Printf with general format specifier

我使用模板t創建了一個c ++類,我想知道是否有任何格式說明符可以打印或將任何值轉換為其格式

template <typename T>
void AssertAreEqual(T t_Expected,T t_Actual, int line){
if (t_Expected != t_Actual)
    printf("FAIL - Line < %d > - Expected value does not match with expected\tExpected: < %d > Actual < %d >\n",line,t_Expected,t_Actual); 
}

例如:我想要一個全局或通用格式說明符,而不是%d,以便能夠同時打印字符串或char *

隨着printf ,它取決於您告訴您要打印的內容。 據我所知,還沒有辦法說出來。

您可以使用標准庫的streams來解決問題 所有內置類型的operator <<都已重載,並且將為您選擇正確的重載。 您可以將代碼更改為

template <typename T>
void AssertAreEqual(T t_Expected,T t_Actual, int line){
if (t_Expected != t_Actual)
    std::cerr << "FAIL - Line < " << line << " > - Expected value does not match with expected\tExpected: < " << t_Expected << " > Actual < " t_Actual << " >\n";
}

這也允許代碼與提供operator !=operator <<任何類型一起使用operator !=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM