我在OpenSUSE和Boost 1.55上使用QT-Creator。所需的所有二進制文件都已構建在boost線程中出現「表達式不能用作函數」的錯誤?
該程序很容易測試Boost線程功能。只聲明一個線程。
當生成程序,我有以下錯誤
/home/esys/Documents/Boost/headers/boost/thread/detail/thread.hpp:117: error: expression cannot be used as a function
f();
^
在thread.hpp它看起來像這樣:
void run()
{
f();// line 117
}
private:
F f;
};
我很困惑,因爲這個問題似乎是標題本身的代碼不是構建設置的東西!
如何解決這個問題?當然我可以換成另一個Boost版本,但我對這個錯誤很好奇。這是大Boost庫,帥哥!
任何想法,將不勝感激:)
_your_代碼是怎麼樣的? – Scis
看起來像這樣: 'boost :: thread * p = new boost :: thread(「thread1」);' – Tiana987642
'F'的類型是什麼?基於編譯器錯誤,它既不是函數指針也不是帶有函數調用操作符的類型。 「F」碰巧是成員函數指針嗎?顯然,這些不能稱之爲正常功能。 –