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