मैं iostream iostream.h बनाम जैसी चीजों में अंतर के बारे में कुछ जानकारी देखा है।
[iostream.h] मानक हेडर नहीं है।
यह आपके द्वारा उठाए जा रहे मुद्दे का एक उदाहरण नहीं है।
[cmath] std
नेमस्पेस में प्रतीकों को परिभाषित करता है, और वैश्विक नामस्थान में प्रतीकों को भी परिभाषित कर सकता है। [math.h] वैश्विक नामस्थान में प्रतीकों को परिभाषित करता है, और std
नामस्थान में प्रतीकों को भी परिभाषित कर सकता है। यदि आप पूर्व को शामिल करते हैं और एक अयोग्य प्रतीक का उपयोग करते हैं, तो यह एक कंपाइलर के साथ संकलित हो सकता है लेकिन दूसरे के साथ नहीं। इसलिए [math.h] का उपयोग करना एक अच्छा विचार है। और सामान्य रूप से, ऐसे हेडर जोड़े के लिए, [.h] संस्करण का उपयोग करने के लिए।
सी ++ 98 ने वैश्विक नामस्थान को प्रदूषित न करने वाले सी xxx
हेडर की औपचारिक गारंटी प्रदान की। शायद यही कारण है कि उन्हें परिभाषित किया गया था। हालांकि, प्रदूषण वाले लोगों की तुलना में इसे लागू करना थोड़ा कठिन था, इसलिए व्यावहारिक रूप से कोई मानक लाइब्रेरी कार्यान्वयन नहीं है जिसे मैं इस संबंध में मानक का पालन करने के बारे में जानता हूं, और इसलिए इसे अंततः सी ++ 11 में वास्तविकता को प्रतिबिंबित करने के लिए बदल दिया गया।
स्रोत
2012-05-22 00:28:23
भी देखें http://stackoverflow.com/q/2118422 और http: // stackoverflow।संबंधित (लेकिन शायद डुप्ली नहीं) प्रश्नों के लिए कॉम/क्यू/2587445। –