वहाँ इस परिदृश्य में ऑटो कीवर्ड का उपयोग करने के लिए एक रास्ता है। तो, समाधान उन्हें एक वाक्य में या किसी अन्य तरीके से विलय करना चाहिए। क्या यह उपलब्ध है?उत्पादन पैरामीटर में ऑटो का उपयोग
उत्तर
ऐसा लगता है कि आप डिफॉल्ट करना चाहते हैं- किसी दिए गए फ़ंक्शन को किसी तर्क के रूप में अपेक्षित प्रकार के ऑब्जेक्ट को प्रारंभ करना।
आप auto
के साथ ऐसा नहीं कर सकते, लेकिन आप प्रकार एक समारोह की उम्मीद है, तो का उपयोग करें कि आपके चर घोषित करने के लिए निकालने के लिए एक विशेषता लिख सकते हैं:
namespace detail {
//expects the argument number and a function type
template <std::size_t N, typename Func>
struct arg_n;
//does all the work
template <std::size_t N, typename Ret, typename... Args>
struct arg_n <N, Ret (Args...)> {
using type = std::remove_reference_t<
std::tuple_element_t<N, std::tuple<Args...>>
>;
};
}
//helper to make usage neater
template <std::size_t N, typename Func>
using arg_n = typename detail::arg_n<N, Func>::type;
तो फिर तुम यह इतना की तरह उपयोग करें:
//type of the first argument expected by foo
arg_n<0,decltype(foo)> a{};
foo(a);
बेशक, जैसे ही आप फ़ंक्शन को अधिभारित करते हैं, यह सब बहुत ही असफल हो जाता है।
यह भयानक है हालांकि मुझे सभी पैटर्न समझ में नहीं आया लेकिन नतीजा बिल्कुल वही है जो मैं चाहता हूं। हालांकि, मुझे वास्तविक दुनिया कार्यक्रम में इसका उपयोग करने से डर है क्योंकि कोई (कुछ साल बाद) यह चाहता है कि वह व्यक्ति जो इस कोड को नरक में जाने के लिए लिखता है: डी –
@ हुममहेल्फावी वास्तव में, इस तरह का कोड सामान्य संदर्भ में सामान्य है । यदि आपको लगता है कि रखरखाव इसे प्राप्त कर पाएंगे तो आपको कुछ और टिप्पणियां चाहिए। – TartanLlama
bar foo()
{
return bar{};
}
int main()
{
auto a = foo();
}
सभी आधुनिक कंपाइलर्स कॉपी-एलिशन करेंगे, बिल्कुल कोई प्रतियां नहीं होंगी।
हालांकि यह ऑटो का उपयोग प्रदर्शित करता है, यह सवाल से बचाता है क्योंकि यह आउट पैरामीटर का उपयोग नहीं कर रहा है। –
@ChrisBetti इस स्थिति में कुछ निर्मित उदाहरण के संदर्भ में बेहतर नहीं है, फिर इसे नया उदाहरण दें। मूल्य से बेहतर वापसी और इसे नए बनाए गए 'ऑटो' चर के लिए असाइन करें। – vladon
मैं 100% आपसे सहमत हूं। –
- 1. दशमलव उत्पादन पैरामीटर EF5.0
- 2. का उपयोग ऑटो ++
- 3. संग्रहित प्रक्रिया उत्पादन पैरामीटर iBATIS
- 4. उत्पादन वातावरण में node.js का उपयोग
- 5. सी ++: उत्पादन कोड में टाइपिड का उपयोग
- 6. उत्पादन में कम सीएसएस ढांचे का उपयोग
- 7. उत्पादन वातावरण में HSQLDB का उपयोग
- 8. उत्पादन में MemoryStore का उपयोग करना
- 9. उत्पादन में PHP अंतर्निर्मित सर्वर का उपयोग
- 10. एंड्रॉइड स्टूडियो ऑटो पूर्ण: पैरामीटर
- 11. "हमेशा ऑटो का उपयोग करें"?
- 12. नया ऑटो रीसेट (सत्य) सी # में उपयोग?
- 13. उत्पादन UIViewAlertForUnsatisfiableConstraints उत्पादन में
- 14. का उपयोग Django के उत्पादन परिवेश
- 15. एएसपी.एमवीसी पैरामीटर में एक डैश (-) का उपयोग
- 16. रेल में पैरामीटर का उपयोग कैसे करें?
- 17. सी ++: ऑटो, या टाइपपीफ का उपयोग करें?
- 18. ओपनएमपी का उपयोग जीसीसी ऑटो वेक्टरिंग
- 19. ऑटो प्रकार तालिका का उपयोग कर sorttable.js
- 20. जब 'ऑटो &&' का उपयोग न करें?
- 21. मैवेन में उत्पादन में उत्पादन से रिहाई
- 22. उत्पादन पैरामीटर के साथ इकाई फ्रेमवर्क का उपयोग कर ओरेकल संग्रहीत प्रक्रिया को कॉल करना?
- 23. क्या किसी ने उत्पादन में जैक्सर का उपयोग किया है?
- 24. node.js, एक्सप्रेस, और app.configure में विकास बनाम उत्पादन का उपयोग
- 25. क्या उत्पादन में टॉमकैट देशी पुस्तकालय का उपयोग करना चाहिए?
- 26. उत्पादन में कॉमन्स-पूल का उपयोग करने के लिए टिप्स
- 27. विकास और उत्पादन पर्यावरण में विभिन्न वेब.कॉन्फिग का उपयोग
- 28. लार्वेल 5: उत्पादन में होमस्टेड का उपयोग करें
- 29. कोई भी उत्पादन में हाइपरडेक्स का उपयोग कर रहा है?
- 30. क्या उत्पादन में बेबेल-नोड का उपयोग करना ठीक है
मुझे ऐसा नहीं लगता .. अगर आप 'foo'' पर अधिभार जोड़ते हैं तो क्या होगा? –
यदि आप प्रोग्राम लिखते समय 'ए' के प्रकार को नहीं जानते हैं, तो आपको एक असंभव समस्या है। फ़ंक्शन के लिए समाधान टेम्पलेट्स है, लेकिन आपको उस चर के प्रकार को जानने की आवश्यकता है जिसे आप घोषित करते हैं, एक तरफ या दूसरा। –
सरल उत्तर नहीं है (बीटीडब्ल्यू आप उन्हें एक वाक्य में विलय करके क्या मतलब है)। –