2012-07-06 30 views
11

tôi nhận được Compiler Error C2071 khi tôi cố gắng thực hiện các explicit operator bool:điều hành rõ ràng bool lỗi

class C 
{ 
public: 

    explicit operator bool() const 
    { 
     return !!*this; 
    } 
}; 

Tại sao? Làm thế nào tôi có thể giải quyết vấn đề này?
Tôi đang sử dụng Visual Studio 2012 RC.

+7

Theo như tôi biết, Visual Studio không hỗ trợ tính năng này. Tôi nghĩ rằng bạn đang mắc kẹt với thành ngữ bool an toàn^Whack. –

+9

cách lạ để thực hiện các vòng lặp vô hạn ... – PlasmaHH

+3

Trong g ++ 4.7, sản xuất [Stack Overflow] (http://stackoverflow.com). –

Trả lời

11

Visual Studio 2012 không hỗ trợ toán tử chuyển đổi rõ ràng, xem C++11 Features in Visual C++ 11.

Những bài viết này nói về an toàn bool thành ngữ:

+0

Trong Visual Studio 2012, tôi đã cài đặt CTP tháng 11: http://aka.ms/vc-ctp Gói nâng cấp trình biên dịch này được cho là thêm (trong số các tính năng C++ 11 khác) toán tử chuyển đổi rõ ràng. Nhưng cú pháp vẫn không hoạt động. Tui bỏ lỡ điều gì vậy? – prapin

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