簡體   English   中英

BOOST.Test的測試功能

[英]Testing function with BOOST.Test

我有一個fnc:

template<class T, T constraint>
inline void CheckSize(const T& value)
{
 if (value < constraint)
 {
  throw BadSize_ex(value);
 }
}

但我無法使用Boost進行測試。 我正在做的是這個():

BOOST_REQUIRE_THROW(CheckSize<int,2>(1),std::BadSize_ex);

問題出在哪兒? 但我遇到了很多類型為','的缺失挖掘錯誤,在';'之前丟失。

錯誤 (部分錯誤 ,但全部來自棒球場)
錯誤5錯誤C2143:語法錯誤:在';'之前缺少','
錯誤6錯誤C2143:語法錯誤:“ {”之前缺少“>”
錯誤7錯誤C2143:語法錯誤:缺少';' 在“ {”之前
錯誤8錯誤C2143:語法錯誤:在')'之前缺少','
錯誤45錯誤C2143:語法錯誤:缺少';' 在“}”之前
錯誤46錯誤C1004:發現意外的文件結尾

它是模板參數之間的逗號。 嘗試使用其他括號:

BOOST_REQUIRE_THROW( (CheckSize<int,2>(1)),std::BadSize_ex);

如果要在參數內傳遞逗號而不是定界參數,則需要使用BOOST_PP_COMMA()代替。 這基本上是因為預處理程序無法識別模板參數定界,而不是宏參數定界。

暫無
暫無

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

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