2
我試圖做first tutorial of ROS在Windows在Visual Studio 2015年標識符「__builtin_expect」未定義(ROS期間雙贏教程講話者爲例)
首先,我創建了一個新的WIN 32控制檯應用程序和複製的代碼從here。 然後我按照指南中所述配置項目。雖然調試出現了幾個錯誤:
- 標識符「
__builtin_expect
」中的文件service_client.h
和TestTalker.cpp
未定義(這是我的程序的名稱)。 - 無法打開源文件 「SYS/time.h中」
從wiki.ros.org運行的SDK,我測試了它。 我不知道什麼是錯的。 我希望有人能幫助我。
預先感謝您!
這些是不同的:'__builtin_expect'給編譯器提示一個表達式最有可能或更經常是真,而'__assume'在提示錯誤時導致UB。從['__assume' doc](https://msdn.microsoft.com/en-us/library/1b3fsfxw%28VS.80%29.aspx):「_因爲編譯器生成基於'__assume'的代碼,該代碼可能如果'__assume'語句中的表達式在運行時爲false,則不會正確運行._「 – YSC
我建議只調用'#define __builtin_expect(x,y)'並讓優化和分支預測完成工作。相關:[爲已知的更常用路徑優化分支](http://stackoverflow.com/q/35938249/5470596)。 – YSC
@YSC標識符中的雙下劃線是爲實現保留的。 – jotik