2014-06-11 16 views
5

Đây là bài viết đầu tiên của tôi ở đây vì vậy xin được khoan dung :)Có phải set_value_at_thread_exit() được hỗ trợ trên gcc không?

Tôi đang gặp vấn đề với phương thức set_value_at_thread_exit() từ lớp lời hứa (một phần của C++ 11). Tất cả mọi thứ là ok trong VS2013 nhưng GCC mang lại cho tôi thông báo lỗi sau:

error: ‘class std::promise<int>’ has no member named ‘set_value_at_thread_exit’ 
    args->result.set_value_at_thread_exit(result); 

Tôi đã thử GCC 4.8 và 4.9 trên Ubuntu 14.04

Mã này là:

[...] 

int result = 0; 
Socket socket; 
result = CreateUDPSocket(&socket, false, ANY_IP, args->port); 
if (result != ERROR_SUCCESS) 
{ 
    args->result.set_value_at_thread_exit(result); 
    return; 
} 
args->result.set_value(ERROR_SUCCESS); 

[...] 

Trả lời

7

Thật không may, nó ISN Chưa được hỗ trợ. Nếu bạn nhìn vào status page

30.6.5 | Mẫu lớp học promise | Một phần | Thiếu set_*_at_thread_exit

+0

Một trong những mức giá sử dụng phần mềm nguồn mở. Điều đã được trong spec kể từ C + + 11 và GCC 4.9.2, trong đó có C + + 14 công cụ vẫn không có nó. –

Các vấn đề liên quan