Tôi nhận được một số lỗi khá lạ khi biên dịch mã theo gcc. Nó cho tôi biết rằng std::function
không tồn tại.không phải là một phần tử của std
tôi có thể tái tạo lại lỗi với đoạn mã sau:
#include <functional>
#include <stdio.h>
void test(){ printf ("test"); }
int main() {
std::function<void()> f;
f = test;
f();
}
Nếu tôi chạy gcc (từ Cygwin):. (Thông báo lỗi của tôi là Đức, vì vậy tôi dịch nó Nó có thể là âm thanh khác nhau trên một Tiếng Anh gcc)
$ gcc test.cpp
test.cpp: in function "int main():
test.cpp:7:3: Error: "function" is not an element of "std"«
test.cpp:7:25: Error: "f" was not defined in this scope
Với MSVC nó được biên dịch thành công. Hãy cho tôi biết những gì tôi đang làm sai trong mã của tôi.
Johannes
Bạn có đang biên dịch bằng C++ 11 không? – chris
không, nếu tôi làm ´gcc -std = C++ 0x test.cpp´ nó ném một loạt các lỗi liên kết tôi không thể hiểu được – EGOrecords
Bạn cần 'g ++', không phải' gcc', xem câu trả lời bên dưới. – juanchopanza