C++函数声明错误;未声明的标识符

C++ function declaration error; undeclared identifier

背景: 通过 Bjarne Stroustrup,使用 C++ 的编程原理和实践,第 2 版工作。我正在尝试这个 4.6.4。我在各个方面都坚持这一点,例如sort 和 vector 不像 txt 书中那样工作:

sort()
vector<string> bad_word_list =  {"buck", "Buck", "idiot"};

我的系统: xcode6.3.2 C++ 标准库 - libc++(支持 C++ 11 的 LLVM C++ 标准库)

  #include "std_lib_facilities.h"
 int main()
{
vector<string> words;
for (string temp; cin>>temp;) {
    words.push_back(temp);
    cout << "Number of words: "<<words.size()<<'\n';
 }
sort(words.begin(), words.end());

for (int i=0; i<words.size(); ++i) {
    int bad_word;
    bad_word = check_word(words[i]); // <----
    if (bad_word == 1) {
        cout << "BEEP";
    } else
        cout << words[i] << '\n';
}


return 0;
 }

int check_word(string x)
{
vector<string> bad_word_list;
bad_word_list.push_back("duck");
for (int i=0; i<bad_word_list.size(); ++i) {
    if (x == bad_word_list[i]) {
        return 1;
    } 

}
return 0;
}

当前的问题是 check_word 作为未声明的标识符出现。当我删除 main 中的所有代码并直接调用 check_word 时,仍然会发生这种情况。

注意:当我输入 check_word 时,自动 prompt/filler 会检测该功能。

使用前必须声明check_word。