मैं स्थिर रूप से यह कह सकता हूं कि एक अभिव्यक्ति std::unique_ptr
यानी std::unique_ptr<T>
किसी भी T
के लिए है।किसी भी प्रकार के अद्वितीय_ptr के लिए static_assert
static_assert (std::is_pointer<decltype(exp)>()), "not a smart pointer")
ऊपर काम नहीं करता है। अगर कुछ भी आगे नहीं है, तो मुझे केवल दिलचस्पी है अगर bool()
ऑपरेटर को प्रकार के लिए परिभाषित किया गया है।
ध्यान रखें कि सर्वोत्तम उत्तर (फिलहाल) 'std :: true_type' पर निर्भर हैं। वे आगामी सी ++ 17 का हिस्सा हैं, और आपको वर्तमान में उपलब्ध 'std :: integral_constant' – StoryTeller
@StoryTeller Huh का उपयोग करके समाधान को फिर से लिखना पड़ सकता है? 'std :: true_type' C++ 11 के बाद उपलब्ध है। आपने इसे 'std :: bool_constant' उपनाम टेम्पलेट से भ्रमित कर दिया होगा। – cpplearner
@cpplearner, आपको सही लगता है। मैं इसे अपने दिमाग में फंस गया कि तीन हाथ हाथ में हैं। ओह अच्छा। – StoryTeller