2012-07-06 19 views
11

मैं Compiler Error C2071 मिलता है जब मैं लागू करने के लिए कोशिश explicit operator bool:स्पष्ट ऑपरेटर bool त्रुटि

class C 
{ 
public: 

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

क्यों? इस समस्या का समाधान किस प्रकार से किया जा सकता है?
मैं विजुअल स्टूडियो 2012 आरसी का उपयोग कर रहा हूं।

+7

जहां तक ​​मुझे पता है कि विजुअल स्टूडियो इस सुविधा का समर्थन नहीं करता है। मुझे लगता है कि आप सुरक्षित बूल मुहावरे के साथ फंस गए हैं^व्हाक। –

+9

अनंत लूप करने के लिए अजीब तरीका ... – PlasmaHH

+3

जी ++ 4.7 में, जो [स्टैक ओवरफ़्लो] उत्पन्न करता है (http://stackoverflow.com)। –

उत्तर

11

विजुअल स्टूडियो 2012 स्पष्ट रूपांतरण ऑपरेटरों का समर्थन नहीं करता है, C++11 Features in Visual C++ 11 देखें।

+0

विजुअल स्टूडियो 2012 में मैंने नवंबर सीटीपी स्थापित किया है: http://aka.ms/vc-ctp यह कंपाइलर अपग्रेड पैक जोड़ना था (अन्य सी ++ 11 फीचर्स के बीच) स्पष्ट रूपांतरण ऑपरेटर। लेकिन वाक्यविन्यास अभी भी काम नहीं करता है। क्या मैं कुछ भूल रहा हूँ? – prapin

2

आप features in Visual Studio 2010 की एक सूची को देखें, तो आप देख सकते हैं कि यह एक उपलब्ध सुविधा नहीं था:

ये लेख सुरक्षित bool मुहावरा के बारे में बात । What's New for Visual C++ in Visual Studio 2012 पर एक नज़र दिखाता है कि जोड़ा नहीं गया है।

संबंधित मुद्दे