ඇප්ලිකේෂන් විස්තර පවතින පන්තියෙන් වෙන් කර ගැනීමට C++ තුළ බොහෝ කාලයක් පාවිච්චි කරපු PImpl (Pointer to Implementation) පටිපාටිය, C++26 නව std::indirect වර්ගය හරහා ඉතා සරලව අනුගමනය කළ හැකිය.
සාමාන්ය PImpl ක්රමය raw pointer එකක් භාවිතා කරමින් Rule of Five අනුගමනය කරනවා. මෙහිදී නිර්මාණකරු, විනාශකරු, copy‑constructor, copy‑assignment, move‑constructor, move‑assignment යන පස්මම විශේෂ සාමාජික ක්රියාකාරකම් අර්ථ දෙනවා. උදාහරණයක් ලෙස, ලේබලයක් සහ click ගණනකින් යුත් UI widget එකක් ගැන සිතා බලන්න; widget එකේ අභ්යන්තර තත්වය Impl පන්තියකින් පවත්වා, Widget පන්තිය pimpl_ නාමක opaque pointer එකක් හරහා ඒ අභ්යන්තරයට ප්රවේශ වෙයි.
මෙම ක්රමය වැඩි compile‑time dependency අඩු කරයි, නමුත් raw pointer භාවිතා කිරීම නිසා constness ප්රවේශය පාරමිතියක් නොවෙයි. const method එකකින් Impl අභ්යන්තරයේ state වෙනස් කිරීමේ අවදානමක් ඇති අතර, move semantics නිසා moved‑from object එකේ pointer එක nullptr වෙයි, එය සැලකිල්ලට ගැනීම වැදගත්.
C++26 නව std::indirect වර්ගය මේ සියලු ගැටලු ඉක්මවා යාමට උදව් කරයි. indirect
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයන්ට C++26 නවතම විශේෂාංගයන් ඉගෙන ගැනීම, ජාත්යන්තර තරඟ සහ open‑source පරිසරයන්හි තරගකාරීත්වය වැඩි කරනවා.
- ඉදිරි පරමාර්ථයක් ලෙස, PImpl නිසා binary size අඩු වේ, ඒ නිසා embedded systems, IoT උපාංගවල performance වැඩි වේ.
- std::indirect භාවිතයෙන් කේතය ලේසි, අඩු බග්, සහ maintainability ඉහළ යයි, එය ආයතනික software development වලට විශාල වාසි.
- ශ්රී ලංකාවේ විශ්වවිද්යාල සහ coding bootcamps සඳහා නව පාඩම් මොඩියුලයක් සකස් කර, සිසුන්ට modern C++ best practices ඉගැන්වීමට පදනමක්.
එමනිසා, C++26 හි std::indirect එක PImpl පටිපාටිය සරල කර, දේශීය තාක්ෂණික සමාජයට නව සලකුණක් ගෙන එයි.
ඔබේ C++ කුසලතා වැඩිදියුණු කිරීමට, මේ අලුත් idiom එකත් එක්ක කේත ලේඛන ලියන්න. නව C++26 features අත්හදා බැලීම, ඔබේ වැඩසටහන් වල performance සහ reliability අතිවිශාල ලෙස වැඩි කරයි.