पर NOMINMAX के साथ संभावित समस्याएं मेरे प्रोग्राम में किसी और चीज से पहले NOMINMAX
को परिभाषित करते समय मुझे क्या समस्याएं मिल सकती हैं?विजुअल सी ++
जहाँ तक मुझे पता है, इस <Windows.h>
min
और max
मैक्रो ऐसी है कि एसटीएल के साथ कई संघर्ष, उदा को परिभाषित नहीं कर देगा std::min()
, std::max()
, या std::numeric_limits<T>::min()
हल हो गए हैं।
क्या मैं इस धारणा में सही हूं कि केवल विंडोज-विशिष्ट और विरासत कोड में समस्याएं होंगी? लगभग सभी पुस्तकालयों को मैक्रोज़ के रूप में परिभाषित min()
और max()
पर निर्भर नहीं होना चाहिए?
संपादित करें: क्या अन्य विंडोज हेडर के साथ समस्याएं हो सकती हैं?
वहाँ नहीं समस्याओं, यहां तक कि विंडोज-विशिष्ट कोड के साथ होना चाहिए, लेकिन यह संभव है कि कुछ कोड मौजूद है जो काम नहीं करेगा। आप इसे क्यों नहीं देखते हैं और देखते हैं कि कोई त्रुटि है या नहीं? –
हमारे आंतरिक कोड के लिए, 'NOMINMAX' अच्छी तरह से काम करता है। हालांकि, पुस्तकालय का उपयोग बाहरी डेवलपर्स द्वारा भी किया जाता है और मैं अपने अनुप्रयोगों को तोड़ना नहीं चाहता हूं। – Manuel
'# परिभाषित 'एक संकलन-समय ऑपरेशन है। पुस्तकालयों में शामिल हैं, संकलित नहीं हैं। इसका मतलब है कि वे अपने स्वयं के स्वतंत्र '# परिभाषित कर सकते हैं। लाइब्रेरी उपयोगकर्ता यह नहीं देख पाएंगे कि आप '# 'परिभाषित करें' NOMINMAX' – MSalters