সি ++ সম্পর্কে আমার একটি বড় অভিযোগ হ'ল ডায়নামিক লাইব্রেরির (যেমন dll / so) গণ্ডির বাইরে স্টাড লাইব্রেরি অবজেক্টগুলি পাস করা অনুশীলনে কতটা কঠিন।
স্ট্যান্ড লাইব্রেরি প্রায়শই কেবল শিরোনাম হয়। যা কিছু দুর্দান্ত অপ্টিমাইজেশান করার জন্য দুর্দান্ত। তবে, dll এর জন্য এগুলি প্রায়শই বিভিন্ন সংকলক সেটিংস দিয়ে নির্মিত হয় যা কোনও স্টাড লাইব্রেরি পাত্রে অভ্যন্তরীণ কাঠামো / কোডকে প্রভাবিত করতে পারে। উদাহরণস্বরূপ, এমএসভিসিতে একটি dll পুনরুদ্ধারকারী ডিবাগিং দিয়ে তৈরি করতে পারে অন্যটি এটি বন্ধ করে দেয়। এই দুটি dlls চারপাশে স্ট্যান্ড কনটেইনার পাস করার ইস্যুতে চলতে পারে। যদি আমি এক্সপোজ std::string
আমার ইন্টারফেসে, আমি নিশ্চয়তা দিতে পারে না কোড ক্লায়েন্টের জন্য ব্যবহার করছে std::string
আমার লাইব্রেরির একজন সঠিক মিল IS std::string
।
এটি ডিবাগ সমস্যা, মাথাব্যথা ইত্যাদির পক্ষে শক্ত হয়ে যায় আপনি এই সমস্যাগুলি রোধ করতে আপনার প্রতিষ্ঠানের সংকলক সেটিংস কঠোরভাবে নিয়ন্ত্রণ করেন বা আপনি একটি সরল সি ইন্টারফেস ব্যবহার করেন যাতে এই সমস্যাগুলি হবে না। অথবা আপনার ক্লায়েন্টদের তাদের ব্যবহার করা প্রত্যাশিত সংকলক সেটিংস নির্দিষ্ট করুন (যা অন্য লাইব্রেরি যদি অন্য সংকলক সেটিংস নির্দিষ্ট করে তবে তা সফল হয়)।
আমার প্রশ্ন হ'ল সি ++ 11 এই সমস্যাগুলি সমাধান করার জন্য কিছু করার চেষ্টা করেছিল কিনা?
DLL
। এর মধ্যে SO
এটি সর্বদা ঠিক কাজ করে।