मान लें मैं एक आवरण प्रकारis_nothrow_move_constructible <T> पर निर्भर करता है कि मैं एक रैपर प्रकार एक्स <T> के अलावा एक चालक कन्स्ट्रक्टर कैसे घोषित कर सकता हूं?
template <typename T>
struct X {/*..*/};
है और मैं नहीं कर सकते हैं बस X(X&&) = default
क्योंकि मैं वहाँ गैर तुच्छ सामान क्या करना है।
हालांकि, मैं इसे noexcept
होना चाहता हूं, लेकिन केवल T(T&&)
noexcept
है। इसका परीक्षण ::std::is_nothrow_move_constructible
के साथ किया जा सकता है।
मुझे नुकसान हुआ है कि constexpr
के आधार पर कन्स्ट्रक्टर के दूसरे संस्करण को सशर्त रूप से कैसे सक्षम किया जाए। मुझे लगता है कि SFINAE का उपयोग करने का कोई तरीका हो सकता है, लेकिन मुझे नहीं लगता कि इसे ctors पर कैसे लागू किया जाए।
Ooooookay, कि आसान था। चीयर्स। (मैं एक घंटे में स्वीकार करूंगा) – bitmask
मैं इसे निम्नलिखित के लिए उपयोग कर रहा हूं, बस किसी के आश्चर्य के मामले में ... http://codereview.stackexchange.com/q/147999/7189 – bitmask