on 1.43 boost似乎BOOST_STATIC_ASSERT只允許放置一個布爾值,是否有一些替代方案允許我在編譯錯誤上顯示消息?用消息提升static_assert?
3
A
回答
5
MPL有BOOST_MPL_ASSERT_MSG
。例如。使用GCC 4.2。與此:
BOOST_MPL_ASSERT_MSG(false, THIS_DOESNT_WORK, (void));
...結果:
/path/to/file.cpp:42: error: no matching function for call to
'assertion_failed(mpl_::failed************ (function()::THIS_DOESNT_WORK::************)())'
3
你有沒有嘗試過這樣的:
BOOST_STATIC_ASSERT(sizeof(long) == 64 && "Must have 64-bit long!")
如果你的編譯器支持的C++ 0x static_assert,你可以做:
static_assert(sizeof(long) == 64, "Must have 64-bit long!")
0
Boost 1.47 and later sup港口BOOST_STATIC_ASSERT_MSG
。用法:
#include <boost/static_assert.hpp>
BOOST_STATIC_ASSERT_MSG(condition, msg)
如果C++ 11是可用的,或編譯器支持static_assert()
,該錯誤消息將是msg
字符串。否則宏被視爲BOOST_STATIC_ASSERT(condition)
相關問題
- 1. 提升日誌消減長日誌消息
- 2. 消息數據屬性<提升屬性>不消息<messagename>
- 3. 關閉htmlpurifier升級消息
- 4. 有沒有任何方法可以提升單向消息,如工作者消息或WebSocket消息?
- 5. 通知消息/提醒消息和UICollectionView:
- 6. 獲取接收到的消息的IP地址在提升中
- 7. 當模板返回類型阻止它實例化時,如何給用戶提供很好的static_assert消息?
- 8. svn提交消息
- 9. Launchpad提交消息
- 10. 提示消息框
- 11. C#能提供一個static_assert嗎?
- 12. 隱祕流浪升級消息
- 13. 升壓線不打印退出消息
- 14. Firebase雲消息停止升級到Oreo
- 15. JBOSS 5.1升級 - 消息發送問題
- 16. 瀏覽器升級警告消息
- 17. 從Gradle調用Ant任務時如何攔截或提升日誌消息
- 18. 用box2d提升
- 19. 無法提示javaFX中的信息消息或警告消息/
- 20. 等待事件提升線程取消
- 21. 雙重提醒消息
- 22. System.InvalidOperationException:當提交消息
- 23. 不顯示提示消息
- 24. 強制SVN提交「消息」?
- 25. Github提交消息鏈接
- 26. 參考消息提交
- 27. 提示消息不彈出
- 28. Iphone彈出提醒消息
- 29. SVN提交與消息
- 30. 提取ping消息的值
我試過,但我得到這個錯誤: 錯誤:「的sizeof」不完全型「的boost :: STATIC_ASSERTION_FAILURE」 –
lurscher
2010-07-13 21:56:56
的無效申請@lurscher這是BOOST_STATIC_ASSERT總是給人消息。像喬治說的那樣使用BOOST_MPL_ASSERT_MSG – KitsuneYMG 2010-07-14 12:00:28