#pragma once बनाम include guards: बार-बार शामिल होने से बचाव के लिए क्या चुनें?
सभी को नमस्ते! मैं एक शुरुआती C++ डेवलपर हूँ और मुझे हेडर फ़ाइलों के डबल इन्क्लूज़न की समस्या का कई बार सामना करना पड़ा है। उदाहरण के लिए, मेरे पास ऐसा कोड है:
\n\n// math_utils.h\n#ifndef MATH_UTILS_H\n#define MATH_UTILS_H\n\nint add(int a, int b) { return a + b; }\n\n#endif\n\n// main.cpp\n#include "math_utils.h"\n#include "math_utils.h" // गलती से दो बार शामिल हो गया\n\nint main() {\n return add(2, 3);\n}\n\n\ninclude guards के साथ सब कुछ काम करता है, लेकिन मैंने देखा कि कई आधुनिक प्रोजेक्ट (जैसे Boost) #pragma once का उपयोग करते हैं। मैंने पढ़ा कि यह एक गैर-मानक डायरेक्टिव है, लेकिन यह सभी प्रमुख कंपाइलरों द्वारा समर्थित है।
मुझे इसमें दिलचस्पी है:
\n- \n
- क्या include guards के साथ कोई वास्तविक प्रदर्शन समस्या है?