ঠিক আছে, আসুন প্রথমে আপনার কিছু অনুমানকে ভেঙে ফেলা যাক:
- কেবলমাত্র সি ++ এর জন্য শিরোনাম-কেবল লাইব্রেরিগুলির একটি সুবিধা হ'ল এগুলি পৃথকভাবে সংকলন করার দরকার নেই।
আলাদাভাবে জিনিসগুলি সংকলনের অর্থ হ'ল কেবল কিছু অংশ পরিবর্তিত হলে সম্ভাব্যভাবে সমস্ত কিছু পুনরায় কম্পাইল না করা।
সুতরাং, সুবিধার পরিবর্তে একটি অসুবিধা।
- সি এবং সি ইন + ইনলাইন কেবল তখনই বোধগম্য হয় যদি ফাংশনটি একটি শিরোনাম ফাইল * এ সংজ্ঞায়িত করা হয়।
হ্যাঁ, একমাত্র প্রভাবটি inline
কেবলমাত্র এক-সংজ্ঞা-নিয়মের ব্যতিক্রম ।
ধিক্ আপনারা যদি এই সংজ্ঞাগুলি কোনওভাবেই আলাদা হয়।
সুতরাং, যদি কোনও ক্রিয়া সংকলন-ইউনিটের অভ্যন্তরীণ হয় তবে এটি চিহ্নিত করুন static
। এটি ইনলাইনিংকে আরও বেশি সম্ভাবনা দেয় কারণ কার্যকারিতাটি ইনলাইন করার জন্য উপলব্ধ হওয়া দরকার।
তবুও, লিঙ্ক-টাইম-অপ্টিমাইজেশানটি একবার দেখুন, কমপক্ষে এমএসভিসি ++, জিসিসি এবং ঝনঝন দ্বারা সমর্থিত।
- Ditionতিহ্যগতভাবে, সি, .c / .h লেআউট ব্যবহার করা হয়েছে, যেখানে শিরোনাম অনুবাদ ইউনিটের সর্বনিম্ন পাবলিক ইন্টারফেসের প্রতিনিধিত্ব করে। একইভাবে .cpp / hpp।
ভাল, কেবলমাত্র সর্বনিম্ন ইন্টারফেস উপস্থাপন করা উচ্চতর এপিআই এবং এবিআইয়ের স্থিতিশীলতা অর্জন এবং সংকলনের সময়কে হ্রাস করার লক্ষ্যে অন্যতম লক্ষ্য।
বিশেষত সি ++ ক্লাসগুলি যদিও এটির দিকে ততটা আগ্রহী নয়, সমস্ত ব্যক্তিগত বিটগুলি শিরোনামের মধ্যে যেমন ফাঁস হয়ে যায়, সুরক্ষিতগুলি যেমন আপনি এটি থেকে পেতে চান কিনা তা করুন do
ডিজাইন-প্যাটার্ন পিআইএমপিএল এই জাতীয় বিবরণ হ্রাস করার জন্য।
ইন্টারফেস এবং বাস্তবায়ন পৃথকভাবে সি ++ এ পুরোপুরি ব্যর্থ হয় এমন অংশটি যদিও টেম্পলেট।
কমিটি রফতানি টেম্পলেটগুলির সাথে কিছু করার চেষ্টা করেছিল , তবে এটি খুব জটিল এবং সত্যই কাজ করছে না বলে ত্যাগ করা হয়েছে।
এখন, তারা একটি সঠিক মডিউল সিস্টেমে কাজ করছে , যদিও এটি ধীর গতিতে চলছে। যা সংকলনের সময়কে গুরুতরভাবে হ্রাস করে এবং এপিআই এবং এবিআইয়ের স্থিতিশীলতা হ্রাস করে তাদের স্থিতিশীলতা বৃদ্ধি করে।
কেবল শিরোনামের লাইব্রেরিগুলি কি সাধারণত efficientতিহ্যবাহী বিন্যাসের চেয়ে কার্যকর কোড- এবং প্রয়োগের সময় বুদ্ধিমান? যদি তা হয় তবে এটি কি ব্যাপক ইনলাইনিং বা অন্যান্য অপ্টিমাইজেশনের কারণে?
কেবল শিরোনামের লাইব্রেরি কোড-আকার এবং কার্যকরকরণের সময়গুলিতে আরও দক্ষ হতে পারে, যদিও এটি লাইব্রেরিটি ভাগ করা হয় কিনা, এর কতটা ব্যবহৃত হয়, কোন উপায়ে এবং ইনলাইনিং সেই নির্দিষ্ট ক্ষেত্রে কোনও সিদ্ধান্ত গ্রহণযোগ্য জয় প্রমাণ করে কিনা তার উপর নির্ভর করে।
অপ্টিমাইজেশনের জন্য ইনলাইনিংটি যে কারণে গুরুত্বপূর্ণ তাই নয় কারণ ইনলাইনিং নিজেই এটি একটি দুর্দান্ত উত্সাহ নয়, তবে ধ্রুবক-প্রচার এবং আরও অপ্টিমাইজেশনের সুযোগগুলির কারণে এটি খোলে ens