c++ - ऑटो एफ(पैराम्स) में 'शून्य()'-> decltype(..., शून्य()) 'क्या करता है?



c++11 sfinae (1)

चूंकि यह एक अभिव्यक्ति है कि अल्पविराम केवल अल्पविराम ऑपरेटर है (जिसका अर्थ है कि प्रकार rhs side का प्रकार है: void ), एक और तर्क नहीं।

वह कोड SFINAE का उपयोग कर रहा है - यह सक्षम है अगर t.reserve(n) मौजूद है लेकिन यह रिटर्न प्रकार को void रूप में रखना चाहता है।

मुझे here कोड मिला जो इस तरह कुछ दिखता था:

auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. }

मैंने पढ़े गए सभी दस्तावेज में मुझे बताया गया था कि decltype इस प्रकार हस्ताक्षरित है:

decltype( entity )

या

decltype( expression )

और कहीं भी कोई दूसरा तर्क नहीं है। कम से कम यही है कि cppreference पर इंगित किया गया है। क्या यह decltype लिए एक दूसरा तर्क है? और यदि हां, तो यह क्या करता है?





trailing-return-type