मैं कक्षा की सामग्री को संग्रहीत करने के लिए Boost.Serialization का उपयोग कर रहा हूं। सदस्य चर में से एक एक स्थिर std :: वेक्टर है।स्थिर सदस्य और बूस्ट क्रमबद्धता
संग्रहण और बहाली ठीक हो जाती है, लेकिन मुझे आशा है कि लाइब्रेरी स्थिर सदस्यों को केवल एक बार सहेज लेगी, ऐसा लगता है कि, फाइलसाइज द्वारा निर्णय लेते हुए, स्थिर सदस्य प्रत्येक संग्रहित उदाहरण के लिए पूरी तरह से सहेजे जाते हैं।
यह स्थिर वेक्टर के लिए सेट/गेटर्स का उपयोग करके और कक्षा के बाहर स्थिर वेक्टर को क्रमबद्ध करने के बजाय आसानी से घुमाया जाता है।
लेकिन मेरे पास एक स्वयं निहित वर्ग होगा। क्या केवल एक बार कक्षा की स्थैतिक सामग्री को संग्रहित करने के लिए एक साफ और आसान तरीका है?
मुझे नहीं लगता कि यह ईमानदार होने के लिए इतना 'निश्चित' है। चूंकि स्थैतिक उदाहरण प्रत्येक वर्ग के उदाहरण के लिए एक ही स्मृति पते पर रहता है, इसलिए मुझे उम्मीद थी कि लाइब्रेरी किसी भी तरह से इसे उठाएगी और फ़ाइल को हर बार वेक्टर लिखने के लिए पर्याप्त स्मार्ट नहीं होगी। – Pieter
पहले वेक्टर को सीरियलाइज करना, और फिर सभी उदाहरणों, 'आसानी से घुमावदार' है, मैं बात कर रहा था, जैसा कि मैंने कहा था कि मैं अपनी कक्षा के लिए एक स्वयं निहित serialize() होगा ... लेकिन अगर वह नहीं कर सकता पहले वेक्टर को क्रमबद्ध करने के लिए किया जाना चाहिए, मैं निश्चित रूप से भी रहूंगा (इस तरह यह अब काम करता है ...) – Pieter
यह सुनिश्चित है कि बूस्ट को सीरियलाइज करने के लिए आप जो कहते हैं उसे क्रमबद्ध करने के लिए सीरियलाइज करता है, इसकी स्मृति स्थिति के बावजूद, यह जंगली ढंग से नहीं जा सकता । किसी भी तरह से जादुई तरीके से काम करते हुए, स्थैतिक अनुभाग कहाँ संग्रहित किया जाएगा? शुरुआत में, अंत में, बीच में? एक तरीका 'धारावाहिक' जैसे ध्वज का उपयोग करना होगा। – arul