2015-10-20 24 views
-1

我正在使用庫<functional>,它定義了類function。但是當我嘗試編譯代碼時,我得到一個錯誤,function沒有命名一個類型。'函數'沒有命名一個類型(在Eclipse中)

直到最近我使用Microsoft Visual Studio,並沒有問題。現在我有時使用Eclipse和g ++工作在Ubuntu 14.04上,並且在編譯相同的代碼(除了'main')時出現這個錯誤。

我在這裏發現了一些類似的問題,但沒有一個解決方案適用於我。

#include <functional> 
using namespace std; 

typedef function<double(double, double*)> t_function; 

錯誤的第三行,我也嘗試過不同的(沒有命名空間)以不同的使用並沒有工作

+1

'使用std :: function'?向我們顯示代碼 – SingerOfTheFall

+0

嘗試過,沒有幫助 – Michal

+1

@Michal請再次顯示[MCVE]。 –

回答

1

要麼你有一箇舊版本的GCC(不太可能),或者不是在C +編譯11模式(更可能),其與一個編譯器標誌被允許:

C++ 11功能都可用,如GCC的存儲庫中的和在4.3 GCC和後來的主幹「主線」 GCC的一部分。要啓用C++ 0x支持,請將命令行參數-std = C++ 0x添加到您的g ++命令行中。或者,要啓用除C++ 0x擴展外的GNU擴展,請添加-std = gnu ++ 0x。 GCC 4.7和更高版本支持-std = C++ 11和-std = gnu ++ 11。

This question描述了在Eclipse中詳細啓用C++ 11的過程,儘管它比較陳舊。

+0

我得到了一堆不同的錯誤,但沒有與'功能'原來的一個 – Michal