मेरे कोड इस तरह के टुकड़े शामिल हैं:SBRM/std :: va_list/va_start() के लिए आरए II/va_end का उपयोग
std::va_list ap;
va_start(ap, msgfmt);
snprintf_buf buf;
const tchar * msg = buf.print_va_list(msgfmt, ap);
va_end(ap);
ये छोटी होती हैं और va_start()
और va_end()
एक साथ करीब हैं तो वे बड़ी समस्या नहीं हैं । दोनों के बीच कॉल से अपवाद एक समस्या हो सकती है (या नहीं?)।
सरल परीक्षण से पता चलता है कि va_start()
को बिना किसी इलिप्सिस के फ़ंक्शन से कॉल करने की अनुमति नहीं है। va_start()
की तुलना में va_end()
को किसी भिन्न फ़ंक्शन से कॉल करने की अनुमति है या नहीं?
असल में, मैं उत्सुक अगर यह इन कॉल के लिए SBRM/आरए II मुहावरा उपयोग करना संभव है कर रहा हूँ, भले ही यह आवश्यक थे va_start()
मैन्युअल कॉल करने के लिए और फिर मेरी आरए II/SBRM गार्ड उदाहरण में std::va_list
के कहने पारित करने के लिए?
उद्धरण कहां से है? – wilx
@ विल्क्स: सी 99 मानक, 7.15.1/1। –