我最近開始使用NDK將應用程序移植到Android和我遇到了以下錯誤:Visual Studio如何使用boost :: function和/ GR-而GCC不能使用-fno-rtti?
boost/function/function_base.hpp:220: error: cannot use typeid with -fno-rtti.
通常情況下,我會毫不猶豫地有關的錯誤,但Visual Studio項目文件中設置/GR-
,禁用RTTI並且使用boost :: function沒有問題。
我的理論是這樣的,因爲當靜態類型可以被確定時,typeid被編譯器忽略,所以在應用程序中每次使用boost :: function都必須是這種情況。 Visual Studio必須首先嚐試確定靜態類型,而GCC會在嘗試評估它之前立即在typeid上引發錯誤。
這聽起來沒錯嗎?如果不是,發生了什麼事?
BOOST_NO_TYPEID是否在兩個不同的編譯器之間一致定義? – selbie
你爲什麼要嘗試? – wilx
@selbie這兩種情況都沒有定義。我看了一下function.hpp和function/function_base.hpp,並沒有檢查那個符號。我嘗試添加它,但沒有什麼區別。 – IronMensan