E2316 'any_of' 不是 'std' 的成员

E2316 'any_of' is not a member of 'std'

所以我正在尝试使用 std::any_of() 函数,但是 C++ Builder 6 说有一个错误:

[C++ Error] Unit1.cpp(93): E2316 'any_of' is not a member of 'std'


但我的 Unit1.h

中有 #include <algorithm>
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <set>
#include <algorithm>    // std::set_union, std::sort, etc
#include <vector>       // std::vector
#include <math.h>
//--------------------------------------------------------------------------

我的Unit1.cpp:

void __fastcall TForm1::Button7Click(TObject *Sender)
{
        int el = StrToInt(LabeledEdit1->Text);
        if ( std::any_of(A.begin(), A.end(), (*MyIteratorA==el)) ){
                ShowMessage("true");
        }else{
                ShowMessage("false");
        }

}

这很奇怪,因为我在同一个程序中使用了 std::set_union()std::set_intersection()std::set_difference() 等函数,并且一切正常,直到 std::any_of

抱歉英语不好。

C++ Builder 32 位不兼容 C++11。对于所有 c++11 功能,您需要使用 64 位版本。

std::set_unionstd::set_intersectionstd::set_difference 不是 c++11 特性,这就是它们起作用的原因。