প্রদত্ত আপনার লাইব্রেরিটি কেবলমাত্র এটির প্রয়োগে সি ++ 11 ব্যবহার করে এবং সি ++ 11 সুবিধাগুলি বা প্রকারগুলি প্রকাশ্যে প্রকাশ করে না এবং বিশেষত যদি আপনি স্ট্যাটিক লিঙ্কেজ ব্যবহার করেন তবে হ্যাঁ, এটি সম্ভব এবং এমনকি আদর্শ।
সাধারণ ক্ষেত্রে বিবেচনা করুন যেখানে একটি গ্রন্থাগার একটি সি-স্তরীয় ইন্টারফেস প্রকাশ করে (ক্লায়েন্টের বিস্তৃত বিভিন্ন দ্বারা ব্যবহারযোগ্য) তবে যা অভ্যন্তরীণভাবে C ++ এ প্রয়োগ করা হয়। এই জাতীয় লাইব্রেরির সাথে সংযোগকারী ক্লায়েন্টদের কেবলমাত্র সর্বজনীন বাইনারি এপিআই (রফতানি ফাংশন) সম্পর্কে চিন্তা করা দরকার, যা সর্বাধিক সামঞ্জস্যতার জন্য আপনি উত্তরাধিকার সি / সি ++ হিসাবে সীমাবদ্ধ থাকবেন। একটি জাভা প্রোগ্রাম সি-লেভেল এপিআইগুলিতে লিঙ্ক করতে পারে যা সি ++ এ অভ্যন্তরীণভাবে প্রয়োগ করা হয়। এর অর্থ এই নয় যে জাভাতে "C ++ সমর্থন" করা দরকার। একইভাবে, পুরানো স্টাইলের সি / সি ++ ক্লায়েন্টটি সি-লেভেল বা সি ++ - লেভেল এপিআইয়ের সাথে লিঙ্ক করতে পারে যা অভ্যন্তরীণভাবে সি ++ লিবস বা অন্য কোনও লিবের আরও কিছু অ্যাভেন্ট-গার্ড সংস্করণ ব্যবহার করে। দুটি পৃথক জিনিস: লাইব্রেরির ইন্টারফেসের সাথে লিঙ্ক করার জন্য কী প্রয়োজন এবং লাইব্রেরি নিজেই অভ্যন্তরীণভাবে কী লিঙ্ক করে (বা স্থিতিকরভাবে টান দেয়)।
আপনি কেবল আপনার লাইব্রেরির ক্লায়েন্টকে আপনার প্রয়োগের নির্ভরতার সাথে প্রকাশ করতে পারবেন না।
আপনি যদি নিজের লাইব্রেরির সাথে নির্ভরশীলতাগুলি (সি ++ 11 বা অন্য যে কোনও কিছু) স্থিতিশীলভাবে লিঙ্ক করতে পারেন তবে এটি পরিষ্কার এবং স্ব-অন্তর্ভুক্ত। লাইব্রেরিটি একটি সত্যিকারের কালো বাক্স: বাইটকোড ছাড়া কিছুই নয়। এমনকি যদি আপনার গ্রন্থাগারটি "অন্তর্নিহিত গতিশীল" লিংকেজের মাধ্যমে আপনার নির্ভরতাগুলির সাথে লিঙ্ক করে (স্পষ্টতা লোডলিবারি / গেটপ্রোক অ্যাড্রেস ধরণ এবং * নিক্স এবং ওএস এক্স এর অনুরূপ পদ্ধতিগুলির সাথে বিভ্রান্ত না হয়), তবুও পুরানো ক্লায়েন্টরা সেই লাইব্রেরির সাথে লিঙ্ক করতে সক্ষম হওয়া উচিত পাবলিক ইন্টারফেস, এমনকি তারা লাইব্রেরির সাথে লিঙ্ক করতে না পারলেও লাইব্রেরি নির্ভর করে ।