के साथ इसका उपयोग नहीं कर सकता मैं लूआ के लिए एक सी ++/ओओपी रैपर लिख रहा हूं। मेरा कोड है:shared_ptr को पूर्ण प्रकार की आवश्यकता है; lua_State *
class LuaState
{
boost::shared_ptr<lua_State> L;
LuaState(): L(luaL_newstate(), LuaState::CustomDeleter)
{
}
}
समस्या lua_State अपूर्ण प्रकार है और shared_ptr कन्स्ट्रक्टर को पूर्ण प्रकार की आवश्यकता है। और मुझे सुरक्षित सूचक साझा करने की ज़रूरत है। (मजेदार चीज बूस्ट डॉक्स का कहना है कि अधिकांश कार्यों को पूर्ण प्रकार की आवश्यकता नहीं होती है, लेकिन कन्स्ट्रक्टर की आवश्यकता होती है, इसलिए इसका उपयोग करने का कोई तरीका नहीं है। http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/smart_ptr.htm)
क्या मैं इसे हल कर सकता हूं? धन्यवाद।
यदि मैं पूछूं तो आपको सुरक्षित सूचक साझाकरण की आवश्यकता क्यों है। क्या आप विनाशक में कन्स्ट्रक्टर और lua_close में luaL_newstate को कॉल नहीं कर सकते हैं। –
लुआस्टेट ए, बी; ए = बी; // बी में lua_State कभी जारी नहीं किया जाएगा // lua_State एक बार में दो बार जारी किया जाएगा दूसरा विकल्प कॉपी कन्स्ट्रक्टर और ऑपरेटर = में lua_State संरचना को क्लोन कर रहा है। लेकिन मुझे लगता है कि यह भारी समाधान है। –
आप मैन्युअल रूप से lua_State संरचना को क्लोन नहीं कर सकते हैं। यह आपके चेहरे में उड़ाएगा। मैंने कोशिश की है :) –