প্রত্নতাত্ত্বিক সি এবং সি ++ এর inline
মতো register
: সম্ভাব্য অপ্টিমাইজেশান সম্পর্কে সংকলককে একটি পরামর্শ (পরামর্শ ছাড়া আর কিছুই নয়)।
আধুনিক সি ++ এ, inline
লিঙ্কারকে বলেছে যে, যদি বিভিন্ন অনুবাদ ইউনিটে একাধিক সংজ্ঞা (ঘোষণা নয়) পাওয়া যায় তবে সেগুলি একই রকম হয় এবং লিঙ্কার অবাধে একটি রাখতে পারে এবং অন্য সমস্তগুলি বাতিল করে দিতে পারে।
inline
লিঙ্কারের দ্বারা "একাধিক সংজ্ঞা" ত্রুটি না পেয়ে একাধিক উত্সকে এটি অন্তর্ভুক্ত করার জন্য কোনও শিরোনাম ফাইলটিতে কোনও ফাংশন (যত জটিল বা "লিনিয়ার" নির্ধারণ করা হয়) তা সংজ্ঞায়িত করা বাধ্যতামূলক।
শ্রেণীর ভিতরে সংজ্ঞায়িত সদস্য ফাংশনগুলি ডিফল্ট হিসাবে "ইনলাইন" হয়, যেমন টেমপ্লেট ফাংশন (বৈশ্বিক ফাংশনগুলির বিপরীতে)।
//fileA.h
inline void afunc()
{ std::cout << "this is afunc" << std::endl; }
//file1.cpp
#include "fileA.h"
void acall()
{ afunc(); }
//main.cpp
#include "fileA.h"
void acall();
int main()
{
afunc();
acall();
}
//output
this is afunc
this is afunc
দুটি .cpp ফাইলে fileA.h এর অন্তর্ভুক্তিটি নোট করুন, যার দুটি উদাহরণ রয়েছে afunc()
। লিঙ্কার তাদের মধ্যে একটি ফেলে দেবে। যদি কোনও inline
নির্দিষ্ট না করা থাকে তবে লিঙ্কার অভিযোগ করবে।