मेरे पास हेडर फ़ाइल में नामस्थान के भीतर कुछ इनलाइन फ़ंक्शंस हैं और वर्तमान में उन्हें एक सीपीपी फ़ाइल में स्थानांतरित करने की स्थिति में नहीं है। इन इनलाइन कार्यों में से कुछ उदाहरण के लिए जादू स्थिरांक का उपयोग करें,:इनलाइन नेमस्पेस हेडर में निजी स्थिरांक छुपाएं
// Foo.h
namespace Foo
{
const int BAR = 1234;
inline void someFunc()
{
// Do something with BAR
}
}
हालांकि, मैं इन जादू स्थिरांक निजी बनाना चाहते हैं - किसी भी विचार कैसे?
// Foo.h
namespace Foo
{
namespace
{
// 'private' constants here
const int BAR = 1234;
}
inline void someFunc()
{
// Do something with BAR
}
}
बहरहाल, यह काम नहीं करता है और किसी भी Foo::BAR
cpp फ़ाइल कि Foo.h
शामिल करने के लिए उपलब्ध है: मेरी पहली सोचा एक गुमनाम नाम स्थान इस प्रकार का इस्तेमाल किया गया? कार्यान्वयन सीपीपी फाइल बनाने के बिना ऐसा करने का कोई तरीका है?
यह सम्मेलन बूस्ट उपयोग भी है। यह तब तक अच्छी तरह से काम करता है जब तक आप सभी को सरल बताते हैं, "कभी भी एक विस्तार नामस्थान दर्ज न करें।", जो कि वैसे भी नहीं करेगा। – GManNickG