2

Linux で GCC 4.1.2 を使用しており、STL は SGI STL でなければなりません。私が書いた後:

#include <functional>
 std::find_if(PirateFlush, PirateFlush + size,
                compose2(std::logical_and<bool>(), bind2nd(std::greater<UInt32>(), time),
                    bind2nd(std::less<UInt32>(), now)));

コンパイラは言った:

エラー: 'compose2' はこのスコープで宣言されていません

どうしたの?

4

1 に答える 1

6

compose2は標準ではなく、グローバルにもstd名前空間にもありません。

__gnu_cxxgcc は、名前空間に非標準の SGI 拡張機能をいくつか同梱しています。

Use __gnu_cxx::compose2、または boost には、これらの多くが事前定義されています。

-ニック

于 2012-08-30T05:19:24.053 に答える