[英]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.