C++ প্রোগ্রামিং শব্দকোষ — ১১৬৬টি শব্দের সহজ বাংলা মানে

C++ Programming Glossary in Bangla — every technical term from the course, with pronunciation and a plain Bangla explanation.

কোর্সের প্রতিটি পর্বে যে ইংরেজি শব্দগুলো এসেছে — pointer, class, struct, template, malloc, thread, stack — সবগুলো এখানে এক জায়গায়। প্রতিটির পাশে বাংলা উচ্চারণ, সহজ মানে আর কোন পর্বে বিস্তারিত শিখবেন, তার লিংক।

মোট ১১৬৬টি শব্দ

#

[[fallthrough]]ফলথ্রু অ্যাট্রিবিউট
C++17-এর attribute, যা switch-এ ইচ্ছাকৃত fall-through চিহ্নিত করে; এতে compiler সেখানে সতর্কবার্তা দেয় না, কিন্তু অঘোষিত fall-through-এ দেয়।যেখানে শিখবেন: পর্ব ০৮
[[likely]] / [[unlikely]]লাইকলি, আনলাইকলি
C++20-এর attribute, যা compiler-কে ইঙ্গিত দেয় কোন শাখা বেশি বা কম ঘটে, যাতে সে কোড সাজাতে পারে। এটি শুধু ইঙ্গিত; ভুল হলে কোড ধীর হতে পারে।যেখানে শিখবেন: পর্ব ৪২পর্ব ৪৯
[[nodiscard]]নো-ডিসকার্ড
C++17-এর attribute; এমন ফাংশন চিহ্নিত করে, যার ফেরত মান ফেলে দিলে compiler সতর্কবার্তা দেয়।যেখানে শিখবেন: পর্ব ০৯পর্ব ১৯পর্ব ৫১
{fmt} libraryএফ-এম-টি লাইব্রেরি
Victor Zverovich-এর তৈরি open-source C++ formatting লাইব্রেরি; এর নকশাই C++20-এ std::format আর C++23-এ std::print হিসেবে standard-এ এসেছে।যেখানে শিখবেন: পর্ব ০৭

A

Abbreviated function templateঅ্যাব্রিভিয়েটেড ফাংশন টেমপ্লেট
C++20-এর সংক্ষিপ্ত রূপ: parameter-এর টাইপে auto লিখলেই ফাংশনটি template হয়, যেমন auto twice(auto x). প্রতিটি auto একটি আলাদা template parameter.যেখানে শিখবেন: পর্ব ২৮পর্ব ৪০
ABIএ-বি-আই
Application Binary Interface — compile হওয়া কোড বাইনারি স্তরে কীভাবে কথা বলবে তার নিয়ম: symbol-এর নাম, ফাংশনে argument পাঠানোর পদ্ধতি, object-এর মেমরি বিন্যাস।যেখানে শিখবেন: পর্ব ০৩পর্ব ২৪পর্ব ২৬
Abstract classঅ্যাবস্ট্র্যাক্ট ক্লাস
অন্তত একটি pure virtual function আছে (নিজের বা উত্তরাধিকারে পাওয়া, override না করা) এমন class. এর object বানানো যায় না, কিন্তু pointer বা reference রাখা যায়।যেখানে শিখবেন: পর্ব ২৬পর্ব ৫১পর্ব ৫৩
Abstractionঅ্যাবস্ট্র্যাকশন
ভেতরের খুঁটিনাটি লুকিয়ে একটি সহজ নাম বা উপায় দেওয়া, যাতে আপনি বলতে পারেন কী চান — কীভাবে হবে তা নিয়ে না ভেবে। যেমন std::vector আপনাকে মেমরি সামলানোর ঝামেলা থেকে মুক্তি দেয়।যেখানে শিখবেন: পর্ব ০১পর্ব ০২পর্ব ২৬
Acceptance criteriaঅ্যাকসেপ্ট্যান্স ক্রাইটেরিয়া
একটি চাহিদা কখন “পূরণ হয়েছে” বলা যাবে, তার যাচাইযোগ্য শর্তের তালিকা। এগুলো থেকেই সরাসরি টেস্ট লেখা যায়।যেখানে শিখবেন: পর্ব ১৯
Access specifier (public / private)অ্যাকসেস স্পেসিফায়ার
class-এর কোন অংশ বাইরের কোড দেখতে ও ব্যবহার করতে পারবে, তা ঠিক করার শব্দ। public অংশ সবার জন্য খোলা, private অংশ শুধু class-এর নিজের ফাংশনের জন্য।যেখানে শিখবেন: পর্ব ০২পর্ব ১২পর্ব ২০
Acquire/releaseঅ্যাকোয়ার রিলিজ
হস্তান্তরের ordering: release-store-এর আগের সব লেখা সেই মান দেখা acquire-load-এর পরে অন্য thread-এ দৃশ্যমান হয় — “আগে ডেটা রাখো, তারপর পতাকা তোলো”।যেখানে শিখবেন: পর্ব ৪৬
add_subdirectoryঅ্যাড সাবডিরেক্টরি
CMake কমান্ড, যা একটি উপ-ফোল্ডারের CMakeLists.txt চালিয়ে তার target-গুলো মূল প্রজেক্টে যোগ করে।যেখানে শিখবেন: পর্ব ৪৭
Address-of operator (&)অ্যাড্রেস-অফ অপারেটর
কোনো object-এর নামের আগে বসানো & চিহ্ন, যা সেই object-এর মেমরি ঠিকানা দেয়; যেমন &marks.যেখানে শিখবেন: পর্ব ১৫পর্ব ২৩
AddressSanitizer (ASan)অ্যাড্রেস স্যানিটাইজার
GCC আর Clang-এর একটি টুল (-fsanitize=address), যা চলার সময় মৃত বা সীমার বাইরের মেমরি ব্যবহার ধরে, আর কোথায় মেমরিটি তৈরি ও ফেরত হয়েছিল তা জানায়।যেখানে শিখবেন: পর্ব ১৮পর্ব ২২পর্ব ৩২
Aggregateঅ্যাগ্রিগেট
নিজের constructor নেই, সব data member public — এমন সরল struct বা array; একে সরাসরি {} দিয়ে member-গুলোর মান সাজিয়ে বানানো যায়।যেখানে শিখবেন: পর্ব ১২পর্ব ১৩পর্ব ২১
Aggregate initializationঅ্যাগ্রিগেট ইনিশিয়ালাইজেশন
{} এর ভেতরে মানগুলো member-দের ঘোষণার ক্রমে দিয়ে একটি aggregate বানানো; বাদ পড়া member পায় তার ডিফল্ট মান বা শূন্য।যেখানে শিখবেন: পর্ব ১২পর্ব ২১
Algebraic data typeঅ্যালজেব্রাইক ডেটা টাইপ
product type (সব মান একসাথে, যেমন struct) আর sum type (কয়েকটির একটি, যেমন variant) জুড়ে বানানো টাইপ। Haskell-এর data আর Rust-এর enum এর পরিচিত উদাহরণ।যেখানে শিখবেন: পর্ব ৩৮
Algorithm (STL)অ্যালগরিদম
C++ standard library-র আর header-এর তৈরি, পরীক্ষিত ফাংশন — যেমন find, sort, count_if, accumulate — যা একটি iterator range-এ কাজ করে, নির্দিষ্ট container চেনে না।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৪
Aliasএলিয়াস
একই জিনিসের দ্বিতীয় নাম বা ডাকনাম; reference হলো একটি ভ্যারিয়েবলের alias.যেখানে শিখবেন: পর্ব ১০
Alias targetএলিয়াস টার্গেট
একটি target-এর বিকল্প নাম, যেমন shop::core. নামে :: থাকায় ভুল বানানে CMake configure-এর সময়েই error দেয়।যেখানে শিখবেন: পর্ব ৪৭
Alias templateএলিয়াস টেমপ্লেট
নিজের ফাঁকা জায়গাসহ একটি ডাকনাম, যেমন template using Grid = std::vector>; এরপর Grid লেখা যায়। C++11-এর using দিয়ে সম্ভব, typedef দিয়ে নয়।যেখানে শিখবেন: পর্ব ২৯
Aliasingএলিয়াসিং
যখন দুটি ভিন্ন নাম (reference বা pointer) একই মেমরির দিকে নির্দেশ করতে পারে; এতে compiler অনেক optimization নিরাপদে করতে পারে না।যেখানে শিখবেন: পর্ব ১০পর্ব ৪৩
Allocatorঅ্যালোকেটর
যে কোড heap-এর হিসাব রাখে — কোন জায়গা ফাঁকা, কোনটি কাউকে দেওয়া — আর new/malloc-এর অনুরোধে জায়গা খুঁজে দেয়; যেমন glibc malloc, jemalloc, mimalloc.যেখানে শিখবেন: পর্ব ১৬
Ambiguous callঅ্যাম্বিগুয়াস কল
এমন ফাংশন-ডাক, যেখানে দুই বা বেশি overload সমান ভালো মেলে, তাই compiler কোনোটিই বেছে নিতে পারে না এবং compile error দেয়।যেখানে শিখবেন: পর্ব ০৯
Amdahl's lawঅ্যামডালস ল
Gene Amdahl-এর (১৯৬৭) যুক্তি থেকে আসা সূত্র: কাজের p ভগ্নাংশ s গুণ দ্রুত করলে মোট গতি বাড়ে 1 / ((1 - p) + p / s) গুণ। যে অংশ দ্রুত করা হয়নি, সেটিই সর্বোচ্চ লাভের সীমা টানে।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৯
Amortized O(1)অ্যামর্টাইজড ও-ওয়ান
মাঝে মাঝে একটি কাজ ধীর হলেও অনেকগুলো কাজের গড় খরচ ধ্রুবক থাকা। push_back মাঝে মাঝে পুরো vector সরায়, তবু গড়ে প্রতি উপাদানে খরচ ধ্রুবক।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০পর্ব ৫৪
Anagramঅ্যানাগ্রাম
একই অক্ষরগুলো, একই সংখ্যায়, শুধু ভিন্ন ক্রমে সাজিয়ে বানানো শব্দ — যেমন listen আর silent.যেখানে শিখবেন: পর্ব ৫৫
Anemic domain modelঅ্যানিমিক ডোমেইন মডেল
এমন নকশা, যেখানে class-গুলোতে শুধু ডেটা আর getter-setter থাকে কিন্তু নিয়ম বা আচরণ থাকে না; সব সিদ্ধান্ত বাইরের কোডে ছড়িয়ে থাকে।যেখানে শিখবেন: পর্ব ২০
Anonymous (unnamed) namespaceঅ্যানোনিমাস নেমস্পেস
নামহীন namespace { }. এর ভেতরের সব কিছু internal linkage পায়, অর্থাৎ শুধু সেই translation unit-এ দেখা যায়। ফাইলের নিজস্ব সহকারী ফাংশন ও টাইপ লুকাতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ১১পর্ব ১৯পর্ব ৫৪
Anti-hash testঅ্যান্টি-হ্যাশ টেস্ট
ইচ্ছা করে বানানো ইনপুট, যার সব চাবি hash table-এর একই bucket-এ পড়ে; এতে unordered_map-এর প্রতিটি কাজ O(n) হয়ে সমাধান TLE হয়।যেখানে শিখবেন: পর্ব ৫০
Arena allocatorঅ্যারিনা অ্যালোকেটর
একটি বড় মেমরি-ব্লক নিয়ে সেখান থেকে শুধু pointer এগিয়ে এগিয়ে ছোট জায়গা দেওয়া, আর কাজ শেষে পুরো ব্লক একবারে ফেরত দেওয়া। খুব দ্রুত, তবে আলাদা আলাদা করে মুক্ত করা যায় না।যেখানে শিখবেন: পর্ব ৪৯
Argumentআর্গুমেন্ট
ফাংশন ডাকার সময় যে আসল মান পাঠানো হয়, যেমন bill(500)-এর 500; এই মান দিয়েই parameter-এর প্রথম মান বসে।যেখানে শিখবেন: পর্ব ০৯
Argument-dependent lookup (ADL)আর্গুমেন্ট-ডিপেন্ডেন্ট লুকআপ
পদবি ছাড়া ডাকা ফাংশনের খোঁজে compiler argument-গুলোর টাইপ যে namespace-এ আছে সেখানেও দেখে। এজন্য std::cout << x-এ std-এর operator<< নিজে থেকেই পাওয়া যায়। Koenig lookup নামেও পরিচিত।যেখানে শিখবেন: পর্ব ১১পর্ব ২৩
Arithmetic operatorঅ্যারিথমেটিক অপারেটর
গণিতের অপারেটর: + - * / আর %; ফলের টাইপ operand-এর টাইপের ওপর নির্ভর করে।যেখানে শিখবেন: পর্ব ০৬
Arrange–Act–Assertঅ্যারেঞ্জ-অ্যাক্ট-অ্যাসার্ট
unit test লেখার তিন ধাপের ছক: অবস্থা সাজানো, ঠিক একটি কাজ করা, তারপর ফল প্রত্যাশিত মানের সাথে মেলানো।যেখানে শিখবেন: পর্ব ৪৮
Array of structs (AoS)অ্যারে অফ স্ট্রাক্টস
প্রতিটি বস্তুর সব field একটি struct-এ রেখে বস্তুগুলোর একটি সারি বানানো, যেমন std::vector. একটি বস্তুর সব তথ্য একসাথে লাগলে ভালো, কিন্তু শুধু একটি field পড়লে বাকি অংশও মেমরি থেকে আসে।যেখানে শিখবেন: পর্ব ৪৯
Array-to-pointer decayঅ্যারে ডিকে
বেশিরভাগ জায়গায় একটি built-in array-র নাম নিজে থেকেই তার প্রথম উপাদানের pointer-এ বদলে যাওয়া; এতে array-র আকারের তথ্য হারিয়ে যায়।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৫
Arrow operator (->)অ্যারো অপারেটর
pointer যে struct বা class object-কে দেখায়, তার member-এ সরাসরি পৌঁছানোর চিহ্ন; p->marks আর (*p).marks একই কথা।যেখানে শিখবেন: পর্ব ১৫
As-if ruleঅ্যাজ-ইফ রুল
Standard-এর যে নিয়মে compiler বৈধ প্রোগ্রামের দেখা যায় এমন আচরণ ঠিক রেখে ভেতরের কোড যেকোনোভাবে বদলাতে বা মুছতে পারে — সব optimization-এর ভিত্তি।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৯
ASCIIঅ্যাস্কি
১২৮টি অক্ষরের পুরোনো সংকেত-তালিকা: ইংরেজি বর্ণ, অঙ্ক, চিহ্ন আর কিছু নিয়ন্ত্রণ-অক্ষর, প্রতিটি ০ থেকে ১২৭-এর একটি সংখ্যা। UTF-8-এ এই অক্ষরগুলো হুবহু একই এক byte-এ থাকে।যেখানে শিখবেন: পর্ব ১৪
Assemblyঅ্যাসেম্বলি
Machine code-এর মানুষ-পড়ার মতো রূপ — mov, add, call-এর মতো ছোট নির্দেশ। Compiler সাধারণত এটি বানায়, assembler তাকে machine code করে।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৯
assertঅ্যাসার্ট
cassert হেডারের একটি macro, যা চলার সময় একটি শর্ত যাচাই করে; মিথ্যা হলে ফাইল, লাইন ও শর্ত ছেপে প্রোগ্রাম থামায়। NDEBUG দিয়ে compile করলে পুরোটাই বাদ পড়ে।যেখানে শিখবেন: পর্ব ১৯পর্ব ৩৭পর্ব ৪৭
Association (uses)অ্যাসোসিয়েশন
দুটি object-এর মধ্যে কাজের সম্পর্ক, কিন্তু কেউ কারও অংশ নয়। যেমন এজেন্ট cash in করার সময় গ্রাহকের ওয়ালেট ব্যবহার করেন, কিন্তু ওয়ালেট এজেন্টের অংশ নয়।যেখানে শিখবেন: পর্ব ০২
Associative containerঅ্যাসোসিয়েটিভ কন্টেইনার
যে container উপাদান খোঁজে অবস্থান (index) দিয়ে নয়, চাবি (key) দিয়ে — যেমন std::map, std::set, std::unordered_map. ভেতরে সাধারণত একটি balanced tree বা একটি hash table থাকে.যেখানে শিখবেন: পর্ব ৩০পর্ব ৩১
Associativityঅ্যাসোসিয়েটিভিটি
একই precedence-এর অপারেটর পাশাপাশি থাকলে বাম থেকে না ডান থেকে জোড়া হবে, সেই নিয়ম; - বাম থেকে, = ডান থেকে।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩
.at()অ্যাট
সীমা যাচাই করে উপাদান পড়ার member function. সূচক সীমার বাইরে হলে std::out_of_range exception ছোড়ে, চুপচাপ ভুল মেমরি পড়ে না।যেখানে শিখবেন: পর্ব ১৩পর্ব ৪৩
atomic constraintঅ্যাটমিক কনস্ট্রেইন্ট
শর্তকে concept-এর সংজ্ঞায় খুলতে খুলতে পাওয়া ক্ষুদ্রতম সত্য-মিথ্যা টুকরো। একই জায়গায় লেখা টুকরোকেই compiler একই শর্ত ধরে।যেখানে শিখবেন: পর্ব ৪০
Atomic operationঅ্যাটমিক অপারেশন
এমন কাজ, যার মাঝপথ অন্য কোনো thread দেখতে পায় না — হয় পুরোটা ঘটেছে, নয়তো একটুও না।যেখানে শিখবেন: পর্ব ৪৬
Atomic renameঅ্যাটমিক রিনেম
একই ফাইল সিস্টেমে rename এক ধাপে ঘটে: অন্য কেউ হয় পুরোনো ফাইল দেখে, নয় নতুন — মাঝামাঝি কিছু নয়। POSIX এটি নিশ্চিত করে; temp ফাইলে লিখে নিরাপদে সেভ করার ভিত্তি।যেখানে শিখবেন: পর্ব ৪৪
atomic wait/notifyঅ্যাটমিক ওয়েট নোটিফাই
C++20-এর সুবিধা: a.wait(old) মান old থাকা পর্যন্ত thread-কে ঘুম পাড়িয়ে রাখে, আর notify_one() বা notify_all() মান বদলের পর তাকে জাগায়।যেখানে শিখবেন: পর্ব ৪৬
Atomic write (write-then-rename)অ্যাটমিক রাইট
ফাইল নিরাপদে বদলানোর কৌশল: আগে একটি অস্থায়ী ফাইলে পুরো লেখা, যাচাই করা, তারপর rename দিয়ে আসলটির জায়গায় বসানো — ফলে ডিস্কে সবসময় হয় পুরোনো সম্পূর্ণ, নয়তো নতুন সম্পূর্ণ ফাইল থাকে।যেখানে শিখবেন: পর্ব ৫১
Atomicityঅ্যাটমিসিটি
ACID-এর “A” — একটি কাজ পুরোপুরি ঘটবে অথবা একেবারেই ঘটবে না; মাঝপথে ব্যর্থ হলে অর্ধেক-করা বদল থাকে না।যেখানে শিখবেন: পর্ব ৫১
Attributeঅ্যাট্রিবিউট
[[ ]] দিয়ে লেখা একটি বাড়তি তথ্য, যা compiler-কে কোড সম্পর্কে কিছু জানায় (যেমন [[fallthrough]], [[nodiscard]]); সাধারণত প্রোগ্রামের অর্থ বদলায় না।যেখানে শিখবেন: পর্ব ০৮পর্ব ০৯পর্ব ৪২
autoঅটো
C++11 থেকে এই keyword লিখলে compiler ডান পাশের মান দেখে ভ্যারিয়েবলের টাইপ ঠিক করে; টাইপ compile-এর সময়েই স্থির হয়।যেখানে শিখবেন: পর্ব ০৫পর্ব ৩৪
auto(x) decay-copyঅটো এক্স ডিকে কপি
C++23-এর লেখা, যা x-এর একটি নতুন অস্থায়ী কপি তৈরি করে, টাইপের নাম না লিখে। template কোডে কপি স্পষ্ট করতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৪২
Automatic storage durationঅটোমেটিক স্টোরেজ ডিউরেশন
Block-এর ভেতরে ঘোষিত সাধারণ local ভ্যারিয়েবলের আয়ু: block-এ ঢুকলে জন্ম, block শেষ হলে নিজে থেকেই ধ্বংস।যেখানে শিখবেন: পর্ব ১৮

B

B-treeবি-ট্রি
এমন balanced tree, যার প্রতিটি node-এ অনেকগুলো চাবি থাকে আর অনেকগুলো সন্তান। উচ্চতা খুব কম থাকে, তাই ডিস্ক আর cache-এ কম লাফ দিতে হয়; database আর file system-এ বহুল ব্যবহৃত।যেখানে শিখবেন: পর্ব ৩১
Backtraceব্যাকট্রেস
বর্তমান মুহূর্তের call stack-এর তালিকা — কোন ফাংশন কাকে ডেকে এখানে এসেছে; #0 হলো এখনকার ফাংশন (GDB-তে bt).যেখানে শিখবেন: পর্ব ৪৮
Backward compatibilityব্যাকওয়ার্ড কম্প্যাটিবিলিটি
নতুন সংস্করণেও পুরোনো কোড আগের মতো কাজ করবে — এই প্রতিশ্রুতি। C++ পুরোনো C++ আর বেশিরভাগ C কোডের সাথে এটি রক্ষা করে, যা তার জটিলতার একটি বড় কারণ।যেখানে শিখবেন: পর্ব ০১পর্ব ২২
badbitব্যাড-বিট
Stream-এর যে flag গুরুতর সমস্যা বোঝায় — নিচের স্তরের পড়া বা লেখা ব্যর্থ, যেমন ডিস্কের ভুল। bad() তখন true দেয়, fail()-ও true দেয়।যেখানে শিখবেন: পর্ব ৪৪
Balanced treeব্যালান্সড ট্রি
যে search tree নিজের উচ্চতা সবসময় প্রায় log n রাখে — ঢোকানো বা মোছার পর দরকার হলে নিজেকে নতুন করে সাজায় (rotation). এতে সাজানো ইনপুটেও tree লম্বা শিকল হয়ে যায় না।যেখানে শিখবেন: পর্ব ৩১
Base caseবেস কেস
recursion-এর সেই শর্ত, যেখানে ফাংশন আর নিজেকে না ডেকে সরাসরি উত্তর ফেরত দেয়; এটি না থাকলে ডাক কখনো থামে না।যেখানে শিখবেন: পর্ব ০৯
Base classবেস ক্লাস
যে class থেকে আরেকটি class তৈরি (derive) হয় — সাধারণ রূপটি। যেমন Account, যার থেকে SavingsAccount আসে। একে parent বা superclass-ও বলে।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৫পর্ব ৫৪
Base subobjectবেস সাবঅবজেক্ট
derived object-এর ভেতরে বসানো base class-এর পুরো অংশ। derived object তৈরির সময় এটি সবার আগে তৈরি হয়, আর সবার শেষে ধ্বংস হয়।যেখানে শিখবেন: পর্ব ২৪
Basic exception guaranteeবেসিক এক্সেপশন গ্যারান্টি
ন্যূনতম গ্রহণযোগ্য প্রতিশ্রুতি: exception হলেও কোনো রিসোর্স leak হয় না আর সব object বৈধ অবস্থায় (invariant অটুট) থাকে, তবে তাদের মান বদলে যেতে পারে।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৫৪
Bazelবেজেল
Google-এর build system, যা বড় এক-repository প্রজেক্টে বহু ভাষার কোড একসাথে build করতে তৈরি; CMake-এর একটি বিকল্প।যেখানে শিখবেন: পর্ব ৪৭
Behaviour (আচরণ)বিহেভিয়ার
একটি object যে কাজগুলো করতে পারে — যেমন টাকা জমা নেওয়া বা তোলা। C++-এ এগুলো লেখা হয় member function হিসেবে।যেখানে শিখবেন: পর্ব ০২
BFS (breadth-first search)বি-এফ-এস
queue দিয়ে গ্রাফ ঘোরা, যা শুরু থেকে স্তরে স্তরে ছড়ায় — আগে ১ ধাপ দূরের সব, তারপর ২ ধাপের; সমান ওজনের গ্রাফে সবচেয়ে ছোট পথ দেয়।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Bidirectional iteratorবাইডিরেকশনাল ইটারেটর
যে iterator সামনে (++) আর পেছনে (--) — দুই দিকেই এক ঘর করে যেতে পারে, কিন্তু এক লাফে দূরে যেতে পারে না। std::list, std::map, std::set-এর iterator এমন।যেখানে শিখবেন: পর্ব ৩২
Big-O notationবিগ-ও নোটেশন
ইনপুটের আকার n বাড়লে একটি algorithm-এর সময় বা মেমরি কত দ্রুত বাড়ে, তা প্রকাশের চিহ্ন — যেমন O(n), O(n²).যেখানে শিখবেন: পর্ব ০৮পর্ব ১৩পর্ব ৩০
Binary heapবাইনারি হিপ
একটি array-তে সাজানো সম্পূর্ণ binary tree, যেখানে প্রতিটি parent তার সন্তানদের চেয়ে বড় (বা ছোট)। সূচক i-এর সন্তান 2i+1 আর 2i+2. এটি heap memory বা free store থেকে সম্পূর্ণ আলাদা জিনিস।যেখানে শিখবেন: পর্ব ৩০
Binary modeবাইনারি মোড
std::ios::binary দিয়ে খোলা ফাইল, যেখানে বাইট হুবহু পড়া-লেখা হয়, কোনো newline রূপান্তর নেই। ছবি, সংখ্যার রেকর্ড বা যেকোনো লেখা-নয় এমন ফাইলের জন্য।যেখানে শিখবেন: পর্ব ৪৪
Binary search on answerবাইনারি সার্চ অন অ্যানসার
সরাসরি উত্তর বের না করে সম্ভাব্য উত্তরের পরিসরে binary search, প্রতিটি mid-এ শুধু যাচাই: এই মান কি যথেষ্ট? শর্তটি monotonic হতে হয়।যেখানে শিখবেন: পর্ব ৫০
Binary search tree (BST)বাইনারি সার্চ ট্রি
এমন tree, যার প্রতিটি node-এর বাম দিকের সব চাবি তার চেয়ে ছোট আর ডান দিকের সব চাবি বড়। তাই খুঁজতে প্রতি ধাপে অর্ধেক বাদ যায়, যদি tree ভারসাম্যপূর্ণ থাকে।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৫
Bitmaskবিটমাস্ক
এমন একটি সংখ্যা, যার প্রতিটি বিট আলাদা একটি হ্যাঁ/না তথ্য রাখে, যেমন ফাইলের read, write আর execute অনুমতি।যেখানে শিখবেন: পর্ব ০৬
bits/stdc++.hবিটস স্ল্যাশ এসটিডিসিপিপি
GCC-র library-র ভেতরের একটি header, যা প্রায় সব standard header একসাথে include করে। কনটেস্টে জনপ্রিয়, কিন্তু standard C++-এর অংশ নয় — MSVC-সহ অনেক compiler-এ নেই।যেখানে শিখবেন: পর্ব ০৪পর্ব ৫০
Bitwise operatorবিটওয়াইজ অপারেটর
সংখ্যার প্রতিটি বিট আলাদাভাবে নিয়ে কাজ করা অপারেটর: & | ^ ~ << আর >>.যেখানে শিখবেন: পর্ব ০৬
Blockব্লক
কোঁকড়া বন্ধনী { } দিয়ে ঘেরা একগুচ্ছ statement, যেমন একটি ফাংশনের শরীর। ভেতরে ঘোষণা করা নাম সাধারণত block-এর বাইরে দেখা যায় না।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৮
BMI (built module interface)বি-এম-আই
একটি module-এর interface compile করে তৈরি বাইনারি ফাইল, যেমন GCC-র .gcm বা MSVC-র .ifc. import করার সময় compiler লেখা আবার parse না করে এটি পড়ে।যেখানে শিখবেন: পর্ব ৪২পর্ব ৪৭
Borrow checkerবরো চেকার
Rust compiler-এর যে অংশ compile-এর সময় প্রমাণ করে কোনো reference তার object-এর চেয়ে বেশি দিন বাঁচবে না; না পারলে কোড compile হয় না।যেখানে শিখবেন: পর্ব ১৮
Borrowed rangeবরোড রেঞ্জ
এমন range, যার iterator range object-টি মরে গেলেও বৈধ থাকে, কারণ ডেটা অন্য কোথাও আছে — যেমন string_view বা span; এদের বেলায় ranges::dangling আসে না।যেখানে শিখবেন: পর্ব ৩৫
Bounds checkingবাউন্ডস চেকিং
সূচকটি বৈধ সীমার (0 থেকে size()-1) ভেতরে আছে কি না, পড়ার আগে যাচাই করা। vector-এর .at() এটা করে, সাধারণ [] করে না।যেখানে শিখবেন: পর্ব ১৩
Brace initializationব্রেস ইনিশিয়ালাইজেশন
{} দিয়ে প্রথম মান দেওয়ার রীতি (C++11 থেকে); এটি narrowing conversion আটকায়, আর খালি {} দিলে মান হয় শূন্য।যেখানে শিখবেন: পর্ব ০৫পর্ব ২১
Branch coverageব্রাঞ্চ কভারেজ
প্রতিটি সিদ্ধান্তের সব পথ (যেমন if-এর সত্য ও মিথ্যা দুই দিক) টেস্টে চলেছে কি না তার মাপ; line coverage-এর চেয়ে কঠোর।যেখানে শিখবেন: পর্ব ৪৮
Branch mispredictionব্রাঞ্চ মিসপ্রেডিকশন
CPU-র শাখার আন্দাজ ভুল হওয়া। তখন এগিয়ে রাখা কাজ ফেলে দিয়ে সঠিক পথে আবার শুরু করতে হয় — আধুনিক CPU-তে মোটামুটি ১০–২০ cycle নষ্ট।যেখানে শিখবেন: পর্ব ৪৯
Branch predictionব্রাঞ্চ প্রেডিকশন
if বা লুপের শর্তের ফল জানার আগেই CPU আগের আচরণ দেখে কোন দিকে যাবে আন্দাজ করে এগিয়ে কাজ করা। নিয়মিত ধরনের শাখা প্রায় নিখুঁত আন্দাজ হয়, এলোমেলো শাখা হয় না।যেখানে শিখবেন: পর্ব ৪৯
breakব্রেক
সবচেয়ে ভেতরের লুপ বা switch থেকে সাথে সাথে বের হয়ে তার পরের লাইনে যাওয়ার নির্দেশ।যেখানে শিখবেন: পর্ব ০৮
Breakpointব্রেকপয়েন্ট
কোডের একটি জায়গায় পাতা চিহ্ন; প্রোগ্রাম সেখানে পৌঁছালে debugger তাকে থামিয়ে দেয়।যেখানে শিখবেন: পর্ব ৪৮
broken_promiseব্রোকেন প্রমিস
std::future_error-এর একটি কারণ: promise কোনো মান বা exception না দিয়েই ধ্বংস হলে অপেক্ষারত future-এর get() এটি ছোড়ে।যেখানে শিখবেন: পর্ব ৪৬
Brute forceব্রুট ফোর্স
সব সম্ভাবনা সরাসরি পরীক্ষা করা সমাধান — ধীর, কিন্তু এত সরল যে সাধারণত নির্ভুল; stress testing-এ মাপকাঠি হিসেবে কাজে লাগে।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Bucketবাকেট
hash table-এর একটি ঘর। চাবির hash থেকে ঠিক হয় কোন bucket-এ সে যাবে; একই bucket-এ একাধিক চাবি পড়লে সেগুলো একটি ছোট তালিকায় থাকে।যেখানে শিখবেন: পর্ব ৩১
Bufferবাফার
মেমরির একটি অস্থায়ী জায়গা, যেখানে আউটপুট বা ইনপুট জমিয়ে রেখে একবারে পাঠানো বা পড়া হয় — বারবার অপারেটিং সিস্টেমকে ডাকার খরচ বাঁচাতে।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭পর্ব ৪৪
Buffer overflowবাফার ওভারফ্লো
একটি নির্দিষ্ট মাপের মেমরির জায়গায় তার চেয়ে বেশি ডেটা লিখে ফেলা, ফলে পাশের মেমরি নষ্ট হয়। C-তে strcpy বা gets দিয়ে এটি খুব সহজে ঘটে, আর বহু নিরাপত্তা-হামলার মূল কারণ এটিই।যেখানে শিখবেন: পর্ব ১৪পর্ব ৪৩
Build systemবিল্ড সিস্টেম
কোন ফাইল কোন flag দিয়ে compile হবে, কোনটি বদলেছে আর কী link হবে — এসব হিসাব রেখে স্বয়ংক্রিয়ভাবে build চালানোর টুল, যেমন Make, Ninja, CMake.যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৭
Build system generatorবিল্ড সিস্টেম জেনারেটর
যে টুল নিজে compile করে না, বরং প্ল্যাটফর্ম-নিরপেক্ষ বর্ণনা থেকে অন্য build টুলের ফাইল তৈরি করে — যেমন CMake.যেখানে শিখবেন: পর্ব ৪৭পর্ব ৫৪
Build typeবিল্ড টাইপ
একই কোডের ভিন্ন ধাঁচের build: Debug, Release, RelWithDebInfo, MinSizeRel — প্রতিটির optimization ও debug তথ্যের flag আলাদা।যেখানে শিখবেন: পর্ব ৪৭
__builtin_popcountবিল্টইন পপকাউন্ট
GCC আর Clang-এর নিজস্ব ফাংশন, যা একটি সংখ্যার কয়টি bit 1 তা গোনে; standard নয়, বহনযোগ্য বিকল্প C++20-এর std::popcount.যেখানে শিখবেন: পর্ব ৫০

C

C APIসি এপিআই
C ভাষায় লেখা লাইব্রেরি বা অপারেটিং সিস্টেমের ফাংশনের সমষ্টি; এগুলো সাধারণত pointer নেয় আর ফেরত দেয়, তাই C++ থেকে ডাকতে pointer জানতে হয়।যেখানে শিখবেন: পর্ব ১৫
C stringসি স্ট্রিং
C-এর পুরোনো পদ্ধতির লেখা: char-এর একটি array, যার শেষে একটি '\0' (NUL) অক্ষর বসিয়ে বোঝানো হয় লেখা কোথায় শেষ। আকার আর মেমরি প্রোগ্রামারকেই সামলাতে হয়।যেখানে শিখবেন: পর্ব ১৪
C++ Core Guidelinesকোর গাইডলাইনস
Bjarne Stroustrup ও Herb Sutter-এর সম্পাদনায় লেখা আধুনিক C++-এর নিয়মের সংকলন; যেমন R.11 — new আর delete সরাসরি না ডাকা।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৮পর্ব ২০
C++ modulesমডিউল
C++20 থেকে আসা ব্যবস্থা, যেখানে #include-এর মতো লেখা কপি না করে আগে থেকে compile করা interface import করা হয়। লক্ষ্য দ্রুত build আর পরিষ্কার সীমানা।যেখানে শিখবেন: পর্ব ০৩পর্ব ১১পর্ব ৪২
C++ standardসি-প্লাস-প্লাস স্ট্যান্ডার্ড
ISO কমিটি (WG21) প্রকাশিত C++ ভাষার আনুষ্ঠানিক নিয়মের বই। সংস্করণগুলো C++98, C++11, C++14, C++17, C++20, C++23 নামে পরিচিত।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪২
C-style arrayসি-স্টাইল অ্যারে
C থেকে আসা int a[10] ধরনের array. আকার নির্দিষ্ট, নিজের আকার মনে রাখে না, সীমা পরীক্ষা করে না, আর ফাংশনে গেলে pointer হয়ে যায়।যেখানে শিখবেন: পর্ব ১৩
C-style castসি-স্টাইল কাস্ট
(int)x ধাঁচের পুরোনো রূপান্তর, যা static_cast, const_cast, reinterpret_cast-এর যেকোনোটি চুপচাপ করে ফেলে; C++-এ নির্দিষ্ট cast ব্যবহার করাই নিরাপদ।যেখানে শিখবেন: পর্ব ৪৩
Cache lineক্যাশ লাইন
CPU মেমরি থেকে একবারে যতটুকু ডেটা আনে, সেই ছোট টুকরো — সাধারণ কম্পিউটারে ৬৪ বাইট। একটি বাইট পড়লেও পুরো লাইনটাই cache-এ চলে আসে।যেখানে শিখবেন: পর্ব ৩০পর্ব ৪৫পর্ব ৪৬
Cache localityক্যাশ লোকালিটি
কাছাকাছি থাকা ডেটা একসাথে CPU-র দ্রুত cache-এ চলে আসার সুবিধা। পাশাপাশি সাজানো ডেটায় একবার মেমরি থেকে আনলেই পরের কয়েকটি উপাদানও হাতের কাছে থাকে।যেখানে শিখবেন: পর্ব ১৩পর্ব ২৭পর্ব ৩০
Cache missক্যাশ মিস
CPU যে ডেটা চাইছে তা cache-এ নেই, তাই ধীর RAM থেকে আনতে হচ্ছে — এমন অবস্থা। একটি cache miss-এ CPU কয়েকশো নির্দেশ চালানোর সমান সময় অপেক্ষা করতে পারে।যেখানে শিখবেন: পর্ব ৩০পর্ব ৪৯পর্ব ৫৪
Call stackকল স্ট্যাক
মেমরির যে অংশে চলমান প্রতিটি ফাংশন-ডাকের তথ্য একটির ওপর আরেকটি সাজিয়ে রাখা হয়; সবশেষে ডাকা ফাংশন সবার আগে শেষ হয়ে সরে যায়।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৭পর্ব ৪৮
Callbackকলব্যাক
একটি ফাংশন বা lambda, যা আপনি অন্য কোডকে দিয়ে রাখেন, আর সেই কোড পরে কোনো ঘটনা ঘটলে বা কাজ শেষে এটি ডাকে।যেখানে শিখবেন: পর্ব ৩৪
Canonical pathক্যানোনিকাল পাথ
., .. আর symlink মিটিয়ে পাওয়া একটি ফাইলের একমাত্র পূর্ণ পথ; std::filesystem::canonical (ফাইল থাকতে হয়) বা weakly_canonical দিয়ে পাওয়া যায়।যেখানে শিখবেন: পর্ব ৪৪
Capacityক্যাপাসিটি
string বা vector নতুন মেমরি না চেয়েই মোট যতগুলো উপাদান রাখতে পারে, সেই সংখ্যা; size() সবসময় capacity()-এর সমান বা কম।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৪পর্ব ১৮
Capture by referenceক্যাপচার বাই রেফারেন্স
[&x] লিখে capture করা: closure আসল x-এর reference রাখে, তাই বাইরের পরিবর্তন দেখে; কিন্তু x ধ্বংস হলে reference-টি dangling হয়।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৪৫পর্ব ৫২
Capture by valueক্যাপচার বাই ভ্যালু
[x] লিখে capture করা: closure তৈরির মুহূর্তে x-এর একটি কপি নেওয়া হয়, পরে বাইরের x বদলালেও কপি বদলায় না।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৫২
Capture listক্যাপচার লিস্ট
lambda-র শুরুর [ ] অংশ, যেখানে লেখা থাকে বাইরের কোন ভ্যারিয়েবল closure-এ যাবে আর কীভাবে — কপি হিসেবে, নাকি reference হিসেবে।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৫৩
Carbon (language)কার্বন
Google-এর প্রকৌশলীদের ২০২২ সালে ঘোষিত একটি পরীক্ষামূলক ভাষা, যার লক্ষ্য C++-এর সাথে দুই দিকে মিলে চলা আর পুরোনো C++ কোড ধীরে ধীরে নতুন ভাষায় সরানো।যেখানে শিখবেন: পর্ব ৪২
Case-sensitiveকেস-সেনসিটিভ
বড় হাতের আর ছোট হাতের অক্ষরকে আলাদা ধরা। C++-এ main, Main আর MAIN তিনটি ভিন্ন নাম।যেখানে শিখবেন: পর্ব ০৪
catchক্যাচ
try block-এর পরে লেখা হ্যান্ডলার, যা একটি নির্দিষ্ট টাইপের exception ধরে সামলায়। একাধিক থাকলে ওপর থেকে প্রথম যেটি মেলে সেটি চলে, তাই নির্দিষ্ট টাইপ আগে লিখতে হয়।যেখানে শিখবেন: পর্ব ৩৭
catch (...)ক্যাচ অল
যেকোনো টাইপের exception ধরার হ্যান্ডলার। ভেতরে জানা যায় না কী ধরা হয়েছে, তাই এটি শুধু প্রোগ্রামের সীমানায় (main, thread, C callback, destructor) লগ করা বা রূপান্তরের জন্য; খালি রাখা প্রায় সবসময় বাগ।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৫৪
Catch2ক্যাচ টু
একটি জনপ্রিয় C++ test framework; TEST_CASE, SECTION, REQUIRE আর CHECK দিয়ে সাধারণ C++ তুলনায় টেস্ট লেখা যায়।যেখানে শিখবেন: পর্ব ৪৮
Cfrontসি-ফ্রন্ট
Bjarne Stroustrup-এর তৈরি প্রথম C++ compiler (১৯৮৫ সালে প্রকাশ)। এটি C++ কোডকে C কোডে অনুবাদ করত, তারপর সাধারণ C compiler বাকি কাজ করত।যেখানে শিখবেন: পর্ব ০১পর্ব ২০
char8_tচার-এইট-টি
C++20-এর আলাদা অক্ষর-টাইপ, যা বোঝায় "এই byte UTF-8 লেখার অংশ"; u8"..." literal-এর টাইপ C++20 থেকে const char8_t-এর array.যেখানে শিখবেন: পর্ব ১৪পর্ব ৪৪
Clang / clang++ক্ল্যাং
LLVM কাঠামোর ওপর তৈরি C/C++ compiler. C++ কোডের জন্য কমান্ড clang++. পরিষ্কার error message-এর জন্য পরিচিত, macOS-এর ডিফল্ট compiler.যেখানে শিখবেন: পর্ব ০৩
clang-tidyক্ল্যাং-টাইডি
LLVM প্রজেক্টের static analyzer ও linter, যার শত শত নিয়ম (bugprone, cppcoreguidelines, modernize ইত্যাদি) C++ কোডে বাগ আর পুরোনো ধাঁচ ধরে।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৭
clangdক্ল্যাংডি
Clang-ভিত্তিক language server, যা VS Code-এর মতো এডিটরে C++-এর auto-complete, error দেখানো আর সংজ্ঞায় যাওয়ার সুবিধা দেয়।যেখানে শিখবেন: পর্ব ৪৭
Clarifying questionক্ল্যারিফাইং কোয়েশ্চন
কোড লেখার আগে সমস্যার অস্পষ্ট অংশ পরিষ্কার করতে করা প্রশ্ন — ইনপুটের সীমা, খালি ইনপুট, ডুপ্লিকেট, কী ফেরত দিতে হবে ইত্যাদি।যেখানে শিখবেন: পর্ব ৫৫
Classক্লাস
একটি নতুন টাইপের নকশা: এই ধরনের প্রতিটি object-এ কী কী ডেটা থাকবে আর সে কী কী কাজ করতে পারবে, তা এখানে লেখা থাকে। এক class থেকে অনেক object বানানো যায়।যেখানে শিখবেন: পর্ব ০২পর্ব ১২পর্ব ১৭
Class hierarchyক্লাস হায়ারার্কি
inheritance দিয়ে যুক্ত কয়েকটি class-এর গাছের মতো কাঠামো — ওপরে সাধারণ base, নিচে আরও বিশেষ derived class. অগভীর hierarchy বোঝা ও বদলানো সহজ।যেখানে শিখবেন: পর্ব ২৪
Class templateক্লাস টেমপ্লেট
class বানানোর নকশা, যেখানে এক বা একাধিক টাইপ বা মান ফাঁকা রাখা থাকে, যেমন template class Stack. প্রতিটি argument-এর জন্য compiler একটি আলাদা class তৈরি করে; std::vector, std::array, std::optional সবই class template.যেখানে শিখবেন: পর্ব ২৯
CLI (Command-Line Interface)সিএলআই
যে প্রোগ্রাম terminal-এ লেখা দিয়ে চলে — কমান্ড বা লাইন পড়ে, ফলও লেখায় দেখায়; মাউস-বোতাম লাগে না।যেখানে শিখবেন: পর্ব ১৯
Closureক্লোজার
lambda expression থেকে চলার সময় তৈরি হওয়া object, যা capture করা মান বা reference নিজের ভেতরে রাখে আর ফাংশনের মতো ডাকা যায়।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৫৪
Closure typeক্লোজার টাইপ
প্রতিটি lambda expression-এর জন্য compiler-এর বানানো অনন্য, নাম-ছাড়া class; capture হয় তার data member আর body হয় তার operator().যেখানে শিখবেন: পর্ব ৩৪
CMakeসিমেক
C ও C++ প্রজেক্টের সবচেয়ে প্রচলিত build system generator. CMakeLists.txt পড়ে প্রতিটি প্ল্যাটফর্মের জন্য Ninja, Make বা Visual Studio-র build ফাইল লেখে।যেখানে শিখবেন: পর্ব ৪৭
CMake policyসিমেক পলিসি
CMake-এর কোনো আচরণ পুরোনো নিয়মে চলবে নাকি নতুন নিয়মে, তার সুইচ। cmake_minimum_required-এর version দেখে এগুলো ঠিক হয়।যেখানে শিখবেন: পর্ব ৪৭
CMakeCache.txtসিমেক ক্যাশ
build ফোল্ডারের যে ফাইলে CMake configure-এর সিদ্ধান্ত (compiler-এর ঠিকানা, build type, option-এর মান) মনে রাখে।যেখানে শিখবেন: পর্ব ৪৭
CMakeLists.txtসিমেক-লিস্টস ডট টিএক্সটি
CMake-এর রেসিপি-ফাইল, প্রজেক্টের মূল ফোল্ডারে (আর চাইলে প্রতিটি উপ-ফোল্ডারে) থাকে। এখানে target আর তাদের নির্ভরতা লেখা হয়।যেখানে শিখবেন: পর্ব ৪৭
CMakePresets.jsonসিমেক প্রিসেটস
configure ও build-এর প্রচলিত সেটিং নাম দিয়ে রাখার JSON ফাইল (CMake 3.19 থেকে)। cmake --preset debug-এর মতো ছোট কমান্ডে পুরো সেটিং চলে।যেখানে শিখবেন: পর্ব ৪৭
co_awaitকো-অ্যাওয়েট
coroutine-এর keyword: কোনো কাজ (যেমন নেটওয়ার্ক থেকে পড়া) শেষ হওয়ার অপেক্ষায় coroutine থামে, আর শেষ হলে সেখান থেকে আবার চলে — thread আটকে না রেখে।যেখানে শিখবেন: পর্ব ৪২
co_returnকো-রিটার্ন
coroutine শেষ করার keyword, চাইলে একটি শেষ ফলসহ। coroutine-এর ভেতরে সাধারণ return লেখা যায় না।যেখানে শিখবেন: পর্ব ৪২
co_yieldকো-ইল্ড
coroutine-এর keyword: একটি মান ডাকা-পক্ষকে দিয়ে coroutine থেমে যায়; পরের মান চাওয়া হলে ঠিক এর পর থেকে আবার চলে।যেখানে শিখবেন: পর্ব ৪২
Code bloatকোড ব্লোট
template-এর প্রতিটি টাইপের জন্য আলাদা কপি তৈরি হওয়ায় executable-এর আকার আর compile-এর সময় বেড়ে যাওয়া। ছোট template-এ সাধারণত নগণ্য।যেখানে শিখবেন: পর্ব ২৮পর্ব ২৯পর্ব ৫৪
Code coverageকোড কভারেজ
টেস্ট চলার সময় কোডের কোন লাইন বা শাখা অন্তত একবার চলেছে তার মাপ; ফল সঠিক কি না, তা বলে না।যেখানে শিখবেন: পর্ব ৪৮
Code pageকোড পেজ
Windows console কোন byte-কে কোন অক্ষর হিসেবে দেখাবে, তার তালিকা। UTF-8-এর code page নম্বর 65001; অন্য code page-এ বাংলা UTF-8 লেখা ভাঙা অক্ষর হয়ে দেখায়।যেখানে শিখবেন: পর্ব ০৭
Code pointকোড পয়েন্ট
Unicode-এ একটি অক্ষর বা চিহ্নের নির্দিষ্ট নম্বর, যেমন ব = U+09AC; UTF-8-এ একটি code point ১ থেকে ৪ byte জায়গা নেয়।যেখানে শিখবেন: পর্ব ১৪
Code reviewকোড রিভিউ
অন্য কেউ (সহকর্মী বা AI) কোড পড়ে ভুল, ঝুঁকি আর অস্পষ্টতা খোঁজার প্রক্রিয়া; এর ফল প্রশ্ন ও পরামর্শের তালিকা, চূড়ান্ত রায় নয়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Cohesionকোহেশন
একটি class-এর ভেতরের কাজগুলো একটি লক্ষ্যের সাথে কতটা ঘনিষ্ঠভাবে যুক্ত। উচ্চ cohesion মানে class-টি একটি বিষয়ই ভালোভাবে করে।যেখানে শিখবেন: পর্ব ০২পর্ব ২৭
COM (Component Object Model)কম
১৯৯৩ সালে Microsoft-এর আনা বাইনারি চুক্তির ব্যবস্থা, যেখানে interface মানে নির্দিষ্ট ক্রমের একটি vtable. সব interface IUnknown থেকে শুরু, আর প্রকাশিত interface কখনো বদলানো হয় না।যেখানে শিখবেন: পর্ব ২৬
Comma operatorকমা অপারেটর
a, b লিখলে আগে a চালিয়ে তার ফল ফেলে দেয়, তারপর b চালিয়ে b-এর মান দেয়; মূলত for লুপের শেষ অংশে দেখা যায়।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩
Commentকমেন্ট
কোডের ভেতরে মানুষের জন্য লেখা নোট, যা compiler পুরোপুরি বাদ দেয়। C++-এ দুই রূপ: // থেকে লাইনের শেষ পর্যন্ত, আর /* … */ দিয়ে কয়েক লাইন।যেখানে শিখবেন: পর্ব ০৪
Comparatorকম্প্যারেটর
দুটি মান নিয়ে বলে প্রথমটি দ্বিতীয়টির আগে বসবে কি না, এমন callable; sort বা map-এর ক্রম ঠিক করে। এটি কঠোর “কম” (<) বোঝাবে, <= নয়।যেখানে শিখবেন: পর্ব ৩০পর্ব ৩৩পর্ব ৩৪
compare_exchange (CAS)কম্পেয়ার এক্সচেঞ্জ
“মান এখনো expected থাকলে নতুন মান বসাও” — এক অবিভাজ্য ধাপে। না মিললে কিছু লেখে না, বরং বর্তমান মান expected-এ লিখে false ফেরত দেয়। _weak আর _strong দুই রূপ আছে।যেখানে শিখবেন: পর্ব ৪৬
Comparison operatorকম্প্যারিজন অপারেটর
দুটি মান মিলিয়ে bool ফল দেয় এমন অপারেটর: == != < > <= >=.যেখানে শিখবেন: পর্ব ০৬
Competitive programmingকম্পিটিটিভ প্রোগ্রামিং
নির্দিষ্ট সময় আর মেমরির সীমার মধ্যে স্পষ্টভাবে বলা algorithm-সমস্যার সমাধান লিখে জমা দেওয়ার প্রতিযোগিতা; একটি online judge গোপন টেস্টে চালিয়ে বিচার করে।যেখানে শিখবেন: পর্ব ৫০
Compile errorকম্পাইল এরর
যে ভুলের কারণে compiler প্রোগ্রামটি তৈরিই করতে পারে না, যেমন টাইপের অমিল, ambiguous overload বা deleted ফাংশন ডাকা। তখন কোনো executable তৈরি হয় না, তাই কিছুই ছাপা হয় না।যেখানে শিখবেন: পর্ব ৫২
compile_commands.jsonকম্পাইল কমান্ডস জেসন
প্রতিটি source ফাইলের পুরো compile কমান্ডের তালিকা। clangd, clang-tidy আর IDE এটি পড়ে কোড বোঝে; CMAKE_EXPORT_COMPILE_COMMANDS চালু করলে CMake লেখে।যেখানে শিখবেন: পর্ব ৪৭
Compilerকম্পাইলার
যে প্রোগ্রাম পুরো source code পড়ে, ভুল যাচাই করে, আর চালানোর আগেই সেটিকে machine code-এ অনুবাদ করে। C++-এর জনপ্রিয় compiler: GCC (g++), Clang, MSVC.যেখানে শিখবেন: পর্ব ০১পর্ব ০৩
Compiler Explorerকম্পাইলার এক্সপ্লোরার
godbolt.org ওয়েবসাইট, যেখানে কোড লিখলে নানা compiler ও version তার assembly পাশাপাশি দেখায়। Optimization বোঝার জনপ্রিয় টুল।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৯পর্ব ৫২
Composition (has-a)কম্পোজিশন
একটি object-এর ভেতরে আরেকটি object অংশ হিসেবে থাকা — “এর একটি … আছে”. যেমন গ্রাহকের একটি ওয়ালেট আছে, খতিয়ানের ভেতরে অনেক লেনদেন আছে।যেখানে শিখবেন: পর্ব ০২পর্ব ২৪পর্ব ২৭
Compound assignmentকম্পাউন্ড অ্যাসাইনমেন্ট
হিসাব আর assignment একসাথে করার সংক্ষিপ্ত লেখা, যেমন x += 5 মানে x = x + 5; বাম পাশ একবারই হিসাব হয়।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩
compound requirementকম্পাউন্ড রিকোয়ারমেন্ট
{ expr } -> Concept রূপের শর্ত; expression বৈধ কি না, আর তার ফলের টাইপ তীরচিহ্নের পরের concept মানে কি না — দুটিই দেখে।যেখানে শিখবেন: পর্ব ৪০
comptime (Zig)কম্পটাইম
Zig ভাষার keyword, যা যেকোনো সাধারণ কোড compile-এর সময়ে চালায়; সেখানে টাইপও একটি সাধারণ মান, তাই আলাদা template ব্যবস্থা লাগে না।যেখানে শিখবেন: পর্ব ৩৯
Conanকোনান
C ও C++-এর একটি খোলা package manager; compiler, version আর build type অনুযায়ী আলাদা binary রেখে বিতরণ করে।যেখানে শিখবেন: পর্ব ৪৭
Conceptকনসেপ্ট
C++20-এর একটি নামযুক্ত compile-time শর্ত, যা বলে একটি template-এর টাইপকে কী কী করতে পারতে হবে — যেমন send() ডাকা যায় কি না। inheritance লাগে না।যেখানে শিখবেন: পর্ব ২৬পর্ব ২৮পর্ব ৩২
Concrete classকংক্রিট ক্লাস
যে class-এ কোনো pure virtual function বাকি নেই (সবগুলো override করা), তাই যার object বানানো যায়। abstract class-এর উল্টো।যেখানে শিখবেন: পর্ব ২৬
Concurrencyকনকারেন্সি
একই সময়কালে একাধিক কাজ এগিয়ে রাখা — পালা করে হোক বা সত্যিই একসাথে। একটি core-এও concurrency হতে পারে।যেখানে শিখবেন: পর্ব ৪৫
Conditional breakpointকন্ডিশনাল ব্রেকপয়েন্ট
শর্তযুক্ত breakpoint, যা শুধু শর্ত সত্য হলে থামায়; যেমন GDB-তে break 9 if n == 0.যেখানে শিখবেন: পর্ব ৪৮
Configure stepকনফিগার ধাপ
CMake-এর প্রথম ধাপ: রেসিপি চালানো, compiler খোঁজা ও পরীক্ষা করা, আর সিদ্ধান্তগুলো CMakeCache.txt-এ লেখা।যেখানে শিখবেন: পর্ব ৪৭
constকনস্ট
এই keyword দিলে ভ্যারিয়েবল initialize হওয়ার পর আর বদলানো যায় না; বদলাতে চাইলে compile error.যেখানে শিখবেন: পর্ব ০৫পর্ব ৩৯
const member functionকনস্ট মেম্বার ফাংশন
নামের পরে const লেখা member function, যা object-এর ডেটা বদলাবে না বলে প্রতিশ্রুতি দেয়; const object বা const reference-এ শুধু এমন ফাংশনই ডাকা যায়।যেখানে শিখবেন: পর্ব ২০পর্ব ৩৪
Const pointerকনস্ট পয়েন্টার
int* const p — যে pointer নিজে অন্য কোথাও সরতে পারে না; তবে যে ডেটা দেখায় তা বদলানো যায়।যেখানে শিখবেন: পর্ব ১৫পর্ব ৫৩পর্ব ৫৪
const referenceকনস্ট রেফারেন্স
const T& — একটি object-এর শুধু-পড়ার নাম; কপির খরচ নেই, আর এর মাধ্যমে object বদলানো যায় না। temporary-র সাথেও bind হতে পারে।যেখানে শিখবেন: পর্ব ১০পর্ব ১৩পর্ব ২৩
Const-correctnessকনস্ট-কারেক্টনেস
প্রোগ্রামের প্রতিটি জায়গায় কোনটি বদলাতে পারে আর কোনটি পারে না, তা const দিয়ে স্পষ্ট করে দেওয়ার অভ্যাস, যাতে compiler ভুল বদল আগেই ধরে।যেখানে শিখবেন: পর্ব ২০পর্ব ৫৪
const_iteratorকনস্ট ইটারেটর
যে iterator দিয়ে উপাদান শুধু পড়া যায়, বদলানো যায় না; iterator নিজে অবশ্য সরানো যায়। cbegin() আর cend() এটি দেয়।যেখানে শিখবেন: পর্ব ৩২
Constant evaluationকনস্ট্যান্ট ইভ্যালুয়েশন
compiler যখন নিজে কোড চালিয়ে compile-এর সময়েই একটি মান বের করে, সেই প্রক্রিয়া। এখানে undefined behavior চলে না, ঘটলে compile error.যেখানে শিখবেন: পর্ব ৩৯
Constant expressionকনস্ট্যান্ট এক্সপ্রেশন
এমন প্রকাশ, যার মান compiler compile-এর সময়েই হিসাব করতে পারে। array-র মাপ, template argument আর static_assert-এ এটিই লাগে।যেখানে শিখবেন: পর্ব ৩৯
Constant initializationকনস্ট্যান্ট ইনিশিয়ালাইজেশন
static বা global ভ্যারিয়েবলের শুরুর মান compile-এর সময়েই প্রোগ্রাম ফাইলে লিখে দেওয়া; চলার সময় কোনো কোড চালাতে হয় না।যেখানে শিখবেন: পর্ব ৩৯
constevalকনস্ট-ইভাল
C++20-এর keyword. এই ফাংশনের প্রতিটি ডাক compile-এর সময়েই হিসাব হতে হবে; না পারলে compile error. চলার সময়ের কোনো সংস্করণ থাকে না।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৫৪
constexprকনস্ট-এক্সপার
যে মান বা ফাংশনের ফল compile-এর সময়েই হিসাব করা যায়; constexpr ভ্যারিয়েবল স্বয়ংক্রিয়ভাবে const-ও।যেখানে শিখবেন: পর্ব ০৫পর্ব ০৯পর্ব ৩৪
constinitকনস্ট-ইনিট
C++20-এর keyword; নিশ্চিত করে যে একটি static বা global ভ্যারিয়েবলের প্রথম মান compile-এর সময়েই বসবে, তবে পরে বদলানো যায়।যেখানে শিখবেন: পর্ব ০৫পর্ব ৩৯পর্ব ৫৪
Constraintsকনস্ট্রেইন্টস
সমস্যার বিবরণে দেওয়া সীমা — n সর্বোচ্চ কত, সংখ্যা কত বড়, সময় আর মেমরি কত। এটি দেখেই ঠিক করা হয় কোন complexity আর কোন টাইপ লাগবে।যেখানে শিখবেন: পর্ব ৫০
Constructorকনস্ট্রাক্টর
class-এর বিশেষ ফাংশন, যা object তৈরির মুহূর্তে নিজে থেকেই চলে আর object-কে ব্যবহারের উপযোগী অবস্থায় আনে।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ১৮
Containerকন্টেইনার
যে object অনেকগুলো একই টাইপের উপাদান নিজের ভেতরে রাখে আর তাদের মেমরির মালিক হয় — যেমন std::vector, std::list, std::map. প্রতিটি container উপাদান রাখার একটি আলাদা কৌশল।যেখানে শিখবেন: পর্ব ৩০পর্ব ৫৪
Container adaptorকন্টেইনার অ্যাডাপ্টর
নিজে উপাদান রাখার কৌশল নয়, বরং অন্য একটি container-এর ওপর সীমিত একটি interface বসানো আবরণ — যেমন std::stack, std::queue, std::priority_queue. ভেতরের container আপনি বদলাতে পারেন।যেখানে শিখবেন: পর্ব ৩০
Context switchকনটেক্সট সুইচ
অপারেটিং সিস্টেম যখন একটি core থেকে এক thread-কে সরিয়ে আরেক thread চালায়, তখন আগেরটির অবস্থা সেভ করে নতুনটির অবস্থা ফিরিয়ে আনে — এতে সামান্য সময় খরচ হয়।যেখানে শিখবেন: পর্ব ৪৫
Contextual conversion to boolকনটেক্সচুয়াল কনভারশন
যেখানে ভাষা নিজেই একটি bool শর্ত চায় (if, while, for-এর শর্ত, !, &&, ||, ?:), সেখানে explicit operator bool থাকলেও রূপান্তর ঘটে — এই বিশেষ নিয়মের নাম।যেখানে শিখবেন: পর্ব ২৩
Contiguous iteratorকন্টিগিউয়াস ইটারেটর
random access iterator, যার উপাদানগুলো মেমরিতে গায়ে গায়ে থাকার নিশ্চয়তা আছে — তাই এ থেকে সরাসরি pointer পাওয়া যায়। vector, array, string-এর iterator; C++20 থেকে আলাদা concept হিসেবে নাম পেয়েছে।যেখানে শিখবেন: পর্ব ৩২
Contiguous memoryকন্টিগুয়াস মেমরি
মেমরির পাশাপাশি, ফাঁকহীন ঘর। উপাদানগুলো একটার পর একটা বসে, তাই প্রথমটার ঠিকানা আর সূচক জানলেই যেকোনোটার ঠিকানা হিসাব করা যায়।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০পর্ব ৩২
continueকন্টিনিউ
লুপের বর্তমান iteration-এর বাকি অংশ বাদ দিয়ে সরাসরি পরের iteration-এ যাওয়ার নির্দেশ; for লুপে step অংশটি তবুও চলে।যেখানে শিখবেন: পর্ব ০৮
Continuous integration (CI)কন্টিনিউয়াস ইন্টিগ্রেশন
প্রতিটি কোড-পরিবর্তনে একটি সার্ভার নিজে থেকে প্রজেক্ট build করে আর সব টেস্ট চালায়; ভুল ঢুকলে সাথে সাথে জানা যায়।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৭পর্ব ৪৮
Contractsকন্ট্র্যাক্টস
C++26-এ গৃহীত বৈশিষ্ট্য: ফাংশনের পূর্বশর্ত (pre), পরশর্ত (post) আর contract_assert কোডে লেখা যায়; শর্ত ভাঙলে কী হবে তা build-এর সময় বেছে নেওয়া যায়।যেখানে শিখবেন: পর্ব ৪২
Control blockকন্ট্রোল ব্লক
shared_ptr-এর পেছনের লুকানো হিসাবের খাতা: মালিকের সংখ্যা (strong count), weak_ptr-এর সংখ্যা, আর object মোছার নিয়ম (deleter) এখানে থাকে।যেখানে শিখবেন: পর্ব ১৭পর্ব ৫৩পর্ব ৫৪
Control flowকন্ট্রোল ফ্লো
প্রোগ্রামের কোন লাইন কখন এবং কতবার চলবে, তার ক্রম — সিদ্ধান্ত আর লুপ দিয়ে এটি বদলানো হয়।যেখানে শিখবেন: পর্ব ০৮
Conversion operatorকনভারশন অপারেটর
operator T() রূপের member ফাংশন, যা object-কে অন্য টাইপ T-তে রূপান্তর করে; ফেরতের টাইপ আলাদা করে লেখা হয় না। explicit না হলে নিঃশব্দে রূপান্তর ঘটে, তাই বিপজ্জনক।যেখানে শিখবেন: পর্ব ২৩
Converting constructorকনভার্টিং কনস্ট্রাক্টর
explicit ছাড়া এমন constructor, যা একটি argument দিয়ে ডাকা যায়; compiler একে গোপনে অন্য টাইপ থেকে এই টাইপে রূপান্তরের জন্য ব্যবহার করে।যেখানে শিখবেন: পর্ব ২১পর্ব ৫৪
Cooperative cancellationকোঅপারেটিভ ক্যানসেলেশন
thread-কে জোর করে মারা নয়, থামার অনুরোধ পাঠানো; thread নিজে সুবিধাজনক জায়গায় অনুরোধটি দেখে, পরিষ্কার করে, তারপর ফেরে।যেখানে শিখবেন: পর্ব ৪৫
Copy assignment operatorকপি অ্যাসাইনমেন্ট অপারেটর
T& operator=(const T&) — আগে থেকে থাকা একটি object-এ আরেকটির মান কপি করে বসায়; যেমন b = a; লিখলে চলে। পুরোনো রিসোর্স সামলানোও এর দায়িত্ব।যেখানে শিখবেন: পর্ব ২২পর্ব ৫২পর্ব ৫৪
Copy constructorকপি কনস্ট্রাক্টর
একই টাইপের আরেকটি object থেকে নতুন object বানানোর constructor, সাধারণত X(const X&) রূপে; কপি করার সময় চলে।যেখানে শিখবেন: পর্ব ২১পর্ব ২২পর্ব ৫৪
Copy elisionকপি ইলিশন
compiler কপি বা move বাদ দিয়ে বস্তুটি সরাসরি গন্তব্যেই তৈরি করা — ফেরত মান বা temporary দিয়ে নতুন object বানানোর সময়। C++17 থেকে temporary (prvalue)-র ক্ষেত্রে বাধ্যতামূলক; নামওয়ালা local object ফেরতে (NRVO) ঐচ্ছিক।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৮পর্ব ২২
Copy-and-swap idiomকপি-অ্যান্ড-সোয়াপ ইডিয়ম
assignment লেখার কৌশল: আগে source-এর একটি অস্থায়ী কপি বানানো, তারপর নিজের সাথে তার ভেতরের জিনিস অদলবদল; self-assignment আর exception দুটোই নিরাপদ হয়।যেখানে শিখবেন: পর্ব ২২পর্ব ৩৭পর্ব ৫৪
Copy-on-write (COW)কপি-অন-রাইট
কপি করার সময় আসলে ডেটা ভাগাভাগি করা, আর কেউ বদলাতে গেলে তখনই আলাদা কপি বানানো। C++11-এর নিয়মে std::string-এর জন্য এই কৌশল কার্যত নিষিদ্ধ হয়ে যায়।যেখানে শিখবেন: পর্ব ১৪
Core dumpকোর ডাম্প
crash-এর মুহূর্তে প্রসেসের মেমরির একটি ফাইল-ছবি; পরে debugger দিয়ে খুলে call stack ও মান দেখা যায়।যেখানে শিখবেন: পর্ব ৪৮
Coroutineকোরুটিন
এমন ফাংশন, যা মাঝপথে থেমে (suspend) পরে ঠিক সেই জায়গা থেকে আবার চলতে (resume) পারে। C++20 থেকে, শরীরে co_await, co_yield বা co_return থাকলে ফাংশনটি coroutine.যেখানে শিখবেন: পর্ব ৪২
Coroutine frameকোরুটিন ফ্রেম
থেমে থাকা coroutine-এর অবস্থা রাখার জায়গা: প্যারামিটারের কপি, দরকারি local ভ্যারিয়েবল আর কোথায় থেমেছিল তার চিহ্ন। সাধারণত heap-এ তৈরি হয়।যেখানে শিখবেন: পর্ব ৪২
Couplingকাপলিং
দুটি অংশ একে অপরের ওপর কতটা নির্ভরশীল। কম coupling মানে একটিকে বদলালে অন্যটিকে কম বদলাতে হয়।যেখানে শিখবেন: পর্ব ০২পর্ব ২৬পর্ব ২৭
Covariant return typeকোভেরিয়ান্ট রিটার্ন টাইপ
override করা ফাংশন base-এর ফেরত দেওয়া class pointer বা reference-এর বদলে তার derived class-এর pointer বা reference ফেরত দিতে পারে — এই ছাড়।যেখানে শিখবেন: পর্ব ২৫
__cplusplusআন্ডারস্কোর-আন্ডারস্কোর সি-প্লাস-প্লাস
Compiler নিজেই যে ম্যাক্রো সংজ্ঞায়িত করে দেয়, যার মান বলে কোন C++ standard মেনে compile হচ্ছে — যেমন C++17-এ 201703L, C++23-এ 202302L.যেখানে শিখবেন: পর্ব ০৩
cppcheckসিপিপি-চেক
C ও C++-এর একটি স্বাধীন ওপেন-সোর্স static analyzer, যা কম ভুল সতর্কবার্তা দিয়ে সীমার বাইরে পড়া, leak, মান না দেওয়া ভ্যারিয়েবলের মতো বাগ খোঁজে।যেখানে শিখবেন: পর্ব ৪৩
cppfront (Cpp2)সিপিপি-ফ্রন্ট
Herb Sutter-এর পরীক্ষামূলক টুল, যা একটি নতুন সরল syntax (Cpp2) সাধারণ C++-এ অনুবাদ করে। C++-এর জন্য নতুন ধারণা যাচাইয়ের গবেষণাগার হিসেবে তৈরি।যেখানে শিখবেন: পর্ব ৪২
CPU cacheসিপিইউ ক্যাশ
CPU আর RAM-এর মাঝে থাকা ছোট কিন্তু অনেক দ্রুত মেমরি (L1, L2, L3), যেখানে সম্প্রতি ব্যবহৃত বা পাশের ডেটা রাখা হয়। ডেটা cache-এ পেলে RAM-এর চেয়ে বহু গুণ দ্রুত পড়া যায়।যেখানে শিখবেন: পর্ব ৪৯
CPU coreসিপিইউ কোর
CPU-র ভেতরের একটি স্বাধীন হিসাব-যন্ত্র, যা একবারে একটি thread-এর নির্দেশ চালায়। আধুনিক CPU-তে কয়েকটি core থাকে।যেখানে শিখবেন: পর্ব ৪৫
CRCসিআরসি
Cyclic Redundancy Check — ডেটা পাঠানো বা রাখার সময় কোনো বিট বদলে গেছে কি না ধরার একটি checksum হিসাব। CRC-32 সাধারণত ২৫৬ ঘরের একটি টেবিল দিয়ে দ্রুত করা হয়।যেখানে শিখবেন: পর্ব ৩৯
CRC cardসিআরসি কার্ড
Class–Responsibility–Collaborator: একটি ছোট কার্ডে class-এর নাম, তার দায়িত্ব আর সে কাদের সাহায্য নেয় — এই তিনটি লিখে নকশা করার সহজ পদ্ধতি।যেখানে শিখবেন: পর্ব ০২
Critical sectionক্রিটিক্যাল সেকশন
কোডের যে অংশ ভাগ করা ডেটায় হাত দেয়, তাই এক সময়ে একটির বেশি thread সেখানে ঢুকতে পারবে না। সাধারণত mutex দিয়ে পাহারা দেওয়া হয়, আর যত ছোট রাখা যায় তত ভালো।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৪
CRTP (Curiously Recurring Template Pattern)সি-আর-টি-পি
template কৌশল, যেখানে derived class নিজেকেই base-এর template argument দেয়; এতে base compile-এর সময়েই derived-এর ফাংশন ডাকতে পারে, vtable ছাড়া।যেখানে শিখবেন: পর্ব ২৫
CSPRNGসি-এস-পি-আর-এন-জি
Cryptographically secure pseudo-random number generator — এমন এলোমেলো সংখ্যার উৎস, যার আগের আউটপুট দেখে পরেরটি অনুমান করা যায় না; পাসওয়ার্ড, OTP, token-এর জন্য এটিই লাগে।যেখানে শিখবেন: পর্ব ৪১
CSV (comma-separated values)সি-এস-ভি
লেখাভিত্তিক format, যেখানে প্রতি লাইনে একটি রেকর্ড আর ঘরগুলো কমা দিয়ে আলাদা; Excel-সহ অনেক প্রোগ্রাম পড়তে পারে। পূর্ণ নিয়ম RFC 4180-এ.যেখানে শিখবেন: পর্ব ৪৪
CTAD (class template argument deduction)সি-টি-এ-ডি
C++17 থেকে constructor-এর argument দেখে class template-এর argument বুঝে নেওয়া, যেমন std::pair p{1, 2.5} লিখলে std::pair হয়। সন্দেহ হলে টাইপ নিজে লিখে দেওয়াই নিরাপদ।যেখানে শিখবেন: পর্ব ২৯
ctestসিটেস্ট
CMake-এর সাথে আসা টেস্ট চালানোর টুল। add_test দিয়ে জানানো প্রতিটি টেস্ট চালিয়ে পাস-ফেলের রিপোর্ট দেয়।যেখানে শিখবেন: পর্ব ৪৭পর্ব ৪৮
CUPIDকিউপিড
Dan North-এর প্রস্তাবিত কোডের পাঁচটি বৈশিষ্ট্য — Composable, Unix philosophy, Predictable, Idiomatic, Domain-based; কঠোর নীতির বদলে যেদিকে এগোনো যায় এমন গুণ হিসেবে, SOLID-এর বিকল্প ভাবনা।যেখানে শিখবেন: পর্ব ২৭
Custom deleterকাস্টম ডিলিটার
smart pointer-কে দেওয়া নিজস্ব "ফেরত দেওয়ার" কাজ — delete-এর বদলে যেমন fclose; C লাইব্রেরির রিসোর্সকে RAII-তে মুড়তে কাজে লাগে।যেখানে শিখবেন: পর্ব ১৭
Custom hashকাস্টম হ্যাশ
unordered_map-কে দেওয়া নিজের লেখা hash ফাংশন — যেমন splitmix64-এর সাথে প্রোগ্রাম চালুর সময়ের এলোমেলো seed — যাতে কেউ আগে থেকে collision বানাতে না পারে।যেখানে শিখবেন: পর্ব ৫০

D

Dangling pointerড্যাংলিং পয়েন্টার
যে pointer এমন ঠিকানা রাখে, যেখানকার object আগেই ধ্বংস হয়ে গেছে; সেটি দিয়ে পড়া বা লেখা undefined behavior.যেখানে শিখবেন: পর্ব ১৫পর্ব ১৬পর্ব ১৮
Dangling referenceড্যাংলিং রেফারেন্স
এমন reference, যার object ইতিমধ্যে ধ্বংস হয়ে গেছে; এটি দিয়ে পড়া বা লেখা undefined behavior.যেখানে শিখবেন: পর্ব ০৯পর্ব ১০পর্ব ১৩
Dangling viewড্যাংলিং ভিউ
এমন view (string_view, span বা ranges-এর view), যার দেখানো ডেটা ইতিমধ্যে ধ্বংস হয়েছে বা সরে গেছে; তা দিয়ে পড়া undefined behavior.যেখানে শিখবেন: পর্ব ১৪পর্ব ৩৫
Data memberডেটা মেম্বার
struct বা class-এর ভেতরের একটি ভ্যারিয়েবল, যেমন Student-এর name বা marks.যেখানে শিখবেন: পর্ব ১২পর্ব ২০পর্ব ২১
Data modelডেটা মডেল
বাস্তবের কোনো জিনিসের কোন কোন তথ্য প্রোগ্রামে রাখা হবে আর কোন টাইপে, কীভাবে সাজানো থাকবে — তার নকশা। যেমন একটি পণ্যের নাম, পরিমাণ আর দাম একসাথে একটি struct-এ।যেখানে শিখবেন: পর্ব ১৯
Data raceডেটা রেস
দুটি thread একই মেমরিতে একসাথে কাজ করছে, অন্তত একটি লিখছে, আর মাঝে mutex বা atomic-এর মতো কোনো সমন্বয় নেই; C++-এ এটি undefined behavior.যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৫পর্ব ৪৬
Data typeডেটা টাইপ
একটি মান কোন ধরনের, মেমরিতে কত জায়গা নেয়, কত পর্যন্ত মান ধরে আর এর ওপর কোন কাজ চলে — তা ঠিক করে দেওয়া নিয়ম।যেখানে শিখবেন: পর্ব ০৫
Data-oriented designডেটা-ওরিয়েন্টেড ডিজাইন
object-এর বদলে ডেটা মেমরিতে কীভাবে সাজানো থাকবে আর CPU কীভাবে সেটা দ্রুত পড়বে, সেটাকে কেন্দ্র করে প্রোগ্রাম সাজানোর পদ্ধতি। গেম ইঞ্জিনে জনপ্রিয়।যেখানে শিখবেন: পর্ব ০২পর্ব ১২পর্ব ২৭
Dead code eliminationডেড কোড এলিমিনেশন
যে হিসাবের ফল কোথাও ব্যবহার হয় না, compiler তা পুরোপুরি বাদ দেয় — as-if rule অনুযায়ী এটি বৈধ। benchmark-এ ফল ব্যবহার না করলে তাই মাপা কাজটাই উধাও হয়ে যেতে পারে।যেখানে শিখবেন: পর্ব ৪৯
Deadlockডেডলক
যখন দুই বা ততোধিক thread একে অপরের ধরা তালার জন্য অপেক্ষা করে, আর কেউ নিজেরটা ছাড়ে না — ফলে কেউই আর কখনো এগোয় না।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৩পর্ব ৫৪
Debug information (-g)ডিবাগ ইনফরমেশন
Executable-এর ভেতরে রাখা বাড়তি তথ্য — কোন machine code কোন source লাইনের, কোন ভ্যারিয়েবল কোথায় — যাতে debugger লাইন ধরে দেখাতে পারে।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৮
Debuggerডিবাগার
যে টুল চলন্ত প্রোগ্রামকে থামিয়ে ভ্যারিয়েবল, call stack দেখতে আর এক লাইন করে এগোতে দেয়, যেমন GDB, LLDB, Visual Studio.যেখানে শিখবেন: পর্ব ৪৮
Declaration vs definitionডিক্লারেশন বনাম ডেফিনিশন
Declaration শুধু জানায় একটি ফাংশন বা নাম আছে ও তার টাইপ কী; definition আসল দেহ বা জায়গা দেয়। Compiler-এর লাগে declaration, linker-এর লাগে definition.যেখানে শিখবেন: পর্ব ০৩পর্ব ০৯পর্ব ১১
Decompositionডিকম্পোজিশন
একটি বড় সমস্যাকে ছোট ছোট, আলাদাভাবে সমাধানযোগ্য অংশে ভাঙা। কম্পিউটেশনাল থিংকিংয়ের প্রথম কৌশল।যেখানে শিখবেন: পর্ব ০২পর্ব ১৯
Deducing this (explicit object parameter)ডিডিউসিং দিস
C++23-এর সুবিধা, যেখানে member function বা lambda-র প্রথম প্যারামিটার this auto self লিখে object-টিকে স্পষ্ট প্যারামিটার হিসেবে নেওয়া যায়; lambda নিজেকে ডাকতে পারে।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৩৮পর্ব ৪২
Deduction guideডিডাকশন গাইড
CTAD-কে নিজের নিয়ম শেখানোর ঘোষণা, যেমন Box(const char*) -> Box; class-এর বাইরে লেখা হয়। standard library-ও এমন guide ব্যবহার করে, যেমন iterator থেকে vector বানাতে।যেখানে শিখবেন: পর্ব ২৯
Deep copyডিপ কপি
pointer যে মেমরি দেখায়, তার জন্য নতুন জায়গা নিয়ে ভেতরের ডেটাসহ পুরোটা কপি করা; দুটি object সম্পূর্ণ স্বাধীন হয়।যেখানে শিখবেন: পর্ব ২২পর্ব ৫৪
Default argumentডিফল্ট আর্গুমেন্ট
parameter-এর জন্য আগে থেকে ঠিক করা মান, যা ডাকার সময় argument না দিলে compiler নিজে বসিয়ে দেয়। শুধু ডান দিকের parameter-গুলোতে দেওয়া যায়।যেখানে শিখবেন: পর্ব ০৯পর্ব ৫২
Default captureডিফল্ট ক্যাপচার
[=] বা [&] — body-তে যত বাইরের ভ্যারিয়েবল ব্যবহার হয়, সবকিছু একবারে কপি বা reference হিসেবে ধরা; সুবিধাজনক, কিন্তু কী ধরা হলো চোখে পড়ে না।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৫৪
Default constructorডিফল্ট কনস্ট্রাক্টর
যে constructor কোনো argument ছাড়াই ডাকা যায়, যেমন Date d; লিখলে যেটি চলে। class-এ অন্য কোনো constructor না থাকলে compiler নিজে এটি বানায়।যেখানে শিখবেন: পর্ব ২১পর্ব ৫৪
Default member initializerডিফল্ট মেম্বার ইনিশিয়ালাইজার
struct-এর ভেতরেই member-এর ডিফল্ট মান লিখে দেওয়া, যেমন int qty{1}; কেউ মান না দিলে এটাই বসে।যেখানে শিখবেন: পর্ব ১২পর্ব ২০পর্ব ২১
Default template argumentডিফল্ট টেমপ্লেট আর্গুমেন্ট
template parameter-এর আগে থেকে দেওয়া মান বা টাইপ, যা না লিখলে নিজে বসে যায়, যেমন std::vector-এর Allocator = std::allocator বা Stack-এর N = 4.যেখানে শিখবেন: পর্ব ২৯
Defaulted comparisonডিফল্টেড কম্পারিজন
C++20-এর = default দিয়ে compiler-কে বলা: struct-এর সব member ক্রমানুসারে তুলনা করে == বা <=> নিজে বানিয়ে দাও।যেখানে শিখবেন: পর্ব ১২পর্ব ২৩
Defaulted function (= default)ডিফল্টেড ফাংশন
= default লেখা special member function — compiler-কে স্পষ্ট করে বলা, এটি নিজের স্বাভাবিক নিয়মে বানাও।যেখানে শিখবেন: পর্ব ২১পর্ব ২২
Delegating constructorডেলিগেটিং কনস্ট্রাক্টর
যে constructor তার initializer list-এ একই class-এর অন্য একটি constructor ডেকে কাজ তাকে দেয় (C++11 থেকে); একই কোড বারবার লিখতে হয় না।যেখানে শিখবেন: পর্ব ২১পর্ব ৫৪
delete expressionডিলিট এক্সপ্রেশন
new দিয়ে বানানো object ধ্বংস করে (destructor চালায়) আর তার মেমরি ফেরত দেয়। একটি object-এর জন্য delete p, new[] দিয়ে নেওয়া array-র জন্য delete[] p.যেখানে শিখবেন: পর্ব ১৬
Deleted function (= delete)ডিলিটেড ফাংশন
= delete লেখা ফাংশন: ঘোষণা আছে, কিন্তু ডাকলেই compile error; কপি বা অবাঞ্ছিত টাইপের argument নিষেধ করতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ২১পর্ব ২২পর্ব ৫৪
Dependency graphডিপেনডেন্সি গ্রাফ
কোন ফাইল বা target কোনটির ওপর নির্ভর করে, তার তীর-চিহ্নিত নকশা। Build টুল এটি দেখে ঠিক করে কী আগে বানাতে হবে আর কী আবার বানাতে হবে।যেখানে শিখবেন: পর্ব ৪৭
Dependency injectionডিপেন্ডেন্সি ইনজেকশন
একটি object যে অংশের ওপর নির্ভর করে, তা নিজে না বানিয়ে বাইরে থেকে পাওয়ার কৌশল — সাধারণত constructor-এর প্যারামিটার হিসেবে। এতে টেস্টে নকল অংশ বসানো যায়।যেখানে শিখবেন: পর্ব ২৬পর্ব ২৭পর্ব ৪৮
Dependency Inversion Principle (DIP)ডিপেন্ডেন্সি ইনভার্শন প্রিন্সিপল
উঁচু স্তরের কোড (ব্যবসার নিয়ম) নিচু স্তরের খুঁটিনাটির ওপর নির্ভর করবে না; দুটিই নির্ভর করবে একটি abstraction (interface)-এর ওপর, যার মালিক উঁচু স্তর।যেখানে শিখবেন: পর্ব ২৭পর্ব ৫১পর্ব ৫৪
Dependent nameডিপেন্ডেন্ট নেম
template-এর ভেতরে এমন নাম, যার অর্থ template parameter-এর ওপর নির্ভর করে, যেমন T::value_type. T না জেনে compiler বলতে পারে না এটি টাইপ নাকি মান।যেখানে শিখবেন: পর্ব ২৯
Dereference (*)ডিরেফারেন্স
pointer-এর ভেতরের ঠিকানায় গিয়ে সেখানকার আসল object-কে পড়া বা লেখা; pointer-এর নামের আগে * বসিয়ে করা হয়, যেমন *p.যেখানে শিখবেন: পর্ব ১৫পর্ব ৩২
Derived classডিরাইভড ক্লাস
base class থেকে inherit করে বানানো class, যার ভেতরে base-এর পুরো অংশ থাকে আর সাথে নিজের সদস্য যোগ হয়। যেমন class Manager : public Employee. একে child বা subclass-ও বলে।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৫পর্ব ৩৭
Derived-to-base conversionডিরাইভড-টু-বেস কনভার্শন
derived object-কে base-এর reference বা pointer হিসেবে ধরা — কোনো cast ছাড়াই নিজে থেকে হয় (public inheritance-এ)। উল্টো দিকে, base থেকে derived, নিজে থেকে হয় না।যেখানে শিখবেন: পর্ব ২৪
Design patternডিজাইন প্যাটার্ন
বারবার দেখা দেওয়া একটি নকশা-সমস্যার পরীক্ষিত, নাম দেওয়া সমাধান — যেমন Strategy, Observer, Visitor. ১৯৯৪ সালের Gang of Four-এর বই এগুলো জনপ্রিয় করে।যেখানে শিখবেন: পর্ব ২৭
Designated initializerডেজিগনেটেড ইনিশিয়ালাইজার
{.name = "Rafi", .marks = 85} — member-এর নাম লিখে মান দেওয়া; C99-এ এসেছিল, C++-এ C++20 থেকে, তবে ঘোষণার ক্রম মানতে হয়।যেখানে শিখবেন: পর্ব ১২পর্ব ২১পর্ব ৪২
Destructive moveডেস্ট্রাকটিভ মুভ
এমন move, যার পর source object আর অস্তিত্বেই থাকে না — তার নাম ব্যবহার করা যায় না, destructor-ও চলে না। Rust এভাবে কাজ করে; C++-এর move non-destructive, source বৈধ অবস্থায় বেঁচে থাকে।যেখানে শিখবেন: পর্ব ৩৬
Destructorডিস্ট্রাক্টর
class-এর বিশেষ ফাংশন (~নাম), যা object-এর আয়ু শেষ হলে নিজে থেকেই চলে — সাধারণত object-এর নেওয়া রিসোর্স ফেরত দিতে।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ১৮
detach()ডিট্যাচ
thread-কে তার std::thread object থেকে আলাদা করে দেওয়া; সে নিজে নিজে চলে, আর তার জন্য আর অপেক্ষা করা যায় না। local ডেটার reference থাকলে বিপজ্জনক।যেখানে শিখবেন: পর্ব ৪৫
Deterministic destructionডিটারমিনিস্টিক ডেস্ট্রাকশন
object ঠিক কখন ধ্বংস হবে, তা আগে থেকেই জানা — scope শেষে বা শেষ মালিক চলে গেলে; garbage collector-এর মতো "পরে কোনো এক সময়" নয়।যেখানে শিখবেন: পর্ব ১৭
Devirtualizationডিভার্চুয়ালাইজেশন
compiler-এর অপ্টিমাইজেশন: আসল টাইপ প্রমাণ করতে পারলে virtual ডাককে সরাসরি ডাকে বদলে দেওয়া, যাতে inline-ও করা যায়।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৬
Diamond includeডায়মন্ড ইনক্লুড
একই header দুটি ভিন্ন পথে একটি translation unit-এ পৌঁছানো, যেমন main.cpp সরাসরি money.h আনে আবার cart.h-এর মাধ্যমেও আনে। Guard না থাকলে redefinition error হয়।যেখানে শিখবেন: পর্ব ১১
Diamond problemডায়মন্ড প্রবলেম
দুটি base একই base থেকে এলে (Person → Student, Staff → TA) সবচেয়ে নিচের object-এ সেই base-এর দুটি আলাদা কপি থাকে, আর তার সদস্যের নাম ambiguous হয়।যেখানে শিখবেন: পর্ব ২৪পর্ব ৫৪
Digit separatorডিজিট সেপারেটর
সংখ্যার ভেতরে বসানো apostrophe, যেমন 1'000'000; শুধু পড়ার সুবিধার জন্য, মান বদলায় না (C++14 থেকে)।যেখানে শিখবেন: পর্ব ০৫
Dijkstra's algorithmডাইক্সট্রা
ঋণাত্মক নয় এমন ওজনের গ্রাফে একটি উৎস থেকে সব জায়গার সবচেয়ে ছোট দূরত্ব বের করার algorithm; priority_queue দিয়ে O((V + E) log V).যেখানে শিখবেন: পর্ব ৫০
Dining philosophersডাইনিং ফিলোসফার্স
concurrency-র একটি বিখ্যাত উদাহরণ-সমস্যা: গোল টেবিলে পাঁচ দার্শনিক, প্রতি দুজনের মাঝে একটি কাঁটা, খেতে দুটি লাগে। সবাই একসাথে বাঁ কাঁটা ধরলে deadlock হয়।যেখানে শিখবেন: পর্ব ৪৫
Discarded statementডিসকার্ডেড স্টেটমেন্ট
if constexpr-এর যে শাখার শর্ত মিথ্যা, সেটি; template-এর ভেতরে এটি instantiate হয় না, তাই সেখানে এই টাইপে অচল কোডও থাকতে পারে।যেখানে শিখবেন: পর্ব ৩৯
Distractorডিসট্র্যাক্টর
MCQ-এর জেনেশুনে রাখা ভুল অপশন, যা কোনো প্রচলিত ভুল ধারণা থেকে বানানো হয় বলে দেখতে ঠিক মনে হয়।যেখানে শিখবেন: পর্ব ৫৩
do-while loopডু-হোয়াইল লুপ
আগে দেহ চালিয়ে পরে শর্ত পরীক্ষা করে এমন লুপ, তাই অন্তত একবার চলে; শেষে while (শর্ত); — সেমিকোলনসহ।যেখানে শিখবেন: পর্ব ০৮
doctestডকটেস্ট
খুব হালকা ও দ্রুত compile হওয়া C++ test framework; লেখার ধাঁচ Catch2-এর মতো, টেস্ট মূল কোডের পাশেও রাখা যায়।যেখানে শিখবেন: পর্ব ৪৮
Domain modelডোমেইন মডেল
সমস্যার জগতের (যেমন লাইব্রেরি) ধারণা আর নিয়মগুলোকে class ও ফাংশনে প্রকাশ করা অংশ; এটি কিছু পড়ে না, কিছু ছাপে না, ফাইলও চেনে না — শুধু নিয়ম রক্ষা করে।যেখানে শিখবেন: পর্ব ৫১
Domain-driven design (DDD)ডোমেইন-ড্রিভেন ডিজাইন
সফটওয়্যারের class ও নামগুলো ব্যবসার আসল ভাষা থেকে নেওয়ার পদ্ধতি, যাতে প্রোগ্রামার আর ব্যবসার মানুষ একই শব্দে একই জিনিস বোঝেন। Eric Evans-এর বই থেকে পরিচিত।যেখানে শিখবেন: পর্ব ০২
DoNotOptimizeডু-নট-অপ্টিমাইজ
benchmark লাইব্রেরির একটি হাতিয়ার (যেমন Google Benchmark-এর benchmark::DoNotOptimize), যা compiler-কে জানায় মানটি ব্যবহার হচ্ছে, যাতে সে হিসাবটি মুছে না ফেলে — কিন্তু বাড়তি খরচ প্রায় যোগ করে না।যেখানে শিখবেন: পর্ব ৪৯
Double delete / double freeডাবল ডিলিট
একই heap block দুবার ফেরত দেওয়া; undefined behavior — প্রায়ই crash, কখনো নিরাপত্তা-ছিদ্র।যেখানে শিখবেন: পর্ব ১৬পর্ব ২২
Double evaluationডাবল ইভ্যালুয়েশন
macro-র ভেতরে একটি argument একাধিকবার লেখা থাকলে সেটি একাধিকবার হিসাব হওয়া; MAX(i++, 5)-এ i দুবার বাড়তে পারে। আসল ফাংশন বা template-এ এমন হয় না।যেখানে শিখবেন: পর্ব ২৮
Doubly linked listডাবলি লিংকড লিস্ট
যে linked list-এর প্রতিটি node আগের আর পরের — দুই node-এরই ঠিকানা রাখে, ফলে দুই দিকেই হাঁটা যায় আর নিজের জায়গা থেকে নিজেকে সরানো যায়।যেখানে শিখবেন: পর্ব ৩০
Downcastডাউনকাস্ট
base class-এর reference বা pointer-কে derived টাইপে রূপান্তর করা; আসল object সেই টাইপের না হলে বিপদ, তাই dynamic_cast দিয়ে যাচাই করে করা ভালো।যেখানে শিখবেন: পর্ব ২৫
DRY (Don't Repeat Yourself)ড্রাই
একই জ্ঞান বা নিয়ম কোডে একটিমাত্র জায়গায় রাখার নীতি, যাতে বদলাতে হলে এক জায়গাতেই বদলাতে হয়। দেখতে একই রকম কিন্তু আলাদা অর্থের কোড জোড়া দেওয়া এর লক্ষ্য নয়।যেখানে শিখবেন: পর্ব ২৭
Dry runড্রাই রান
কম্পিউটারে না চালিয়ে কাগজে-কলমে কোড লাইন ধরে চালানো, যাতে বোঝা যায় প্রোগ্রাম কী করবে আর কী ছাপবে। পরীক্ষার “আউটপুট কী হবে?” প্রশ্নের মূল কৌশল।যেখানে শিখবেন: পর্ব ৫২পর্ব ৫৫
Durationডিউরেশন
chrono-তে সময়ের পরিমাণ — একটি সংখ্যা (count) আর একটি একক (period), যেমন 1500ms; seconds, milliseconds, minutes আলাদা টাইপ, আর ক্ষতিহীন রূপান্তর নিজে থেকে হয়।যেখানে শিখবেন: পর্ব ৪১
duration_castডিউরেশন কাস্ট
এক duration-কে অন্য এককে আনার স্পষ্ট রূপান্তর; তথ্য হারালে শূন্যের দিকে কেটে ফেলে, তাই duration_cast(1500ms) হয় 1s. গোল করার জন্য আছে C++17-এর floor, ceil আর round ফাংশন।যেখানে শিখবেন: পর্ব ৪১
Dynamic bindingডায়নামিক বাইন্ডিং
কোন ফাংশন চলবে, তা চলার সময় object-এর আসল টাইপ দেখে ঠিক করা; virtual ফাংশন reference বা pointer দিয়ে ডাকলে হয়। একে late binding-ও বলে।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৮পর্ব ৫৩
Dynamic dispatchডায়নামিক ডিসপ্যাচ
কোন ফাংশন চলবে, তা compile-এর সময় নয়, প্রোগ্রাম চলার সময় object-এর আসল টাইপ দেখে ঠিক করা। C++-এ virtual function এভাবে ডাকা হয়।যেখানে শিখবেন: পর্ব ২৬পর্ব ৩৮পর্ব ৫২
Dynamic exception specificationডায়নামিক এক্সেপশন স্পেসিফিকেশন
পুরোনো C++-এর throw(A, B) লেখা, যা বলত ফাংশন থেকে কোন exception বেরোতে পারে, আর চলার সময় যাচাই হতো। C++11-এ deprecated, C++17-এ সরানো; এর জায়গা নিয়েছে noexcept.যেখানে শিখবেন: পর্ব ৩৭
Dynamic initializationডাইনামিক ইনিশিয়ালাইজেশন
static বা global ভ্যারিয়েবলের শুরুর মান main()-এর আগে কোড চালিয়ে বসানো, যেমন একটি ফাংশন ডেকে। ভিন্ন ফাইলের মধ্যে এর ক্রম নির্দিষ্ট নয়।যেখানে শিখবেন: পর্ব ৩৯
Dynamic memoryডায়নামিক মেমরি
যে মেমরির পরিমাণ আর আয়ু compile-এর সময় নয়, প্রোগ্রাম চলার সময় ঠিক হয় — heap থেকে নেওয়া মেমরি।যেখানে শিখবেন: পর্ব ১৬
Dynamic programming (DP)ডাইনামিক প্রোগ্রামিং
ছোট উপসমস্যার উত্তর একবার বের করে রেখে সেগুলো দিয়ে বড় সমস্যার উত্তর গড়া; মূল কাজ হলো অবস্থা (state) আর রূপান্তর ঠিক করা।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Dynamic storage durationডাইনামিক স্টোরেজ ডিউরেশন
new দিয়ে (বা make_unique-এর ভেতরে) heap-এ বানানো object-এর আয়ু: কেউ delete না করা পর্যন্ত বাঁচে, তাই একজন মালিক থাকা দরকার।যেখানে শিখবেন: পর্ব ১৮
Dynamic typeডায়নামিক টাইপ
একটি reference বা pointer আসলে যে object-কে দেখাচ্ছে, সেই object-এর প্রকৃত টাইপ; সাধারণত শুধু চলার সময় নিশ্চিত জানা যায়।যেখানে শিখবেন: পর্ব ২৫
dynamic_castডায়নামিক কাস্ট
চলার সময় টাইপ যাচাই করে polymorphic base থেকে derived-এ রূপান্তর; pointer-এ ব্যর্থ হলে nullptr দেয়, reference-এ std::bad_cast ছোড়ে।যেখানে শিখবেন: পর্ব ২৫

E

Eager evaluationইগার ইভ্যালুয়েশন
আগেভাগে সব হিসাব করে ফল জমিয়ে রাখা — যেমন copy_if একবারে সব উপাদান নতুন vector-এ কপি করে; lazy evaluation-এর উল্টো।যেখানে শিখবেন: পর্ব ৩৫
Edge caseএজ কেস
সীমানার বা অস্বাভাবিক ইনপুট — যেমন খালি তালিকা, শূন্য, ঠিক যতটা আছে ততটাই বিক্রি — যেখানে প্রোগ্রাম সবচেয়ে বেশি ভুল করে।যেখানে শিখবেন: পর্ব ১৯পর্ব ৪৮পর্ব ৫০
Editorialএডিটোরিয়াল
কনটেস্টের পরে প্রকাশিত সমস্যাগুলোর আনুষ্ঠানিক সমাধান-ব্যাখ্যা, সাধারণত সমস্যা-লেখকদের লেখা।যেখানে শিখবেন: পর্ব ৫০
Elimination methodএলিমিনেশন মেথড
বাদ দেওয়ার পদ্ধতি — সঠিক উত্তর সরাসরি না খুঁজে প্রতিটি অপশনের পেছনের নিয়ম যাচাই করে ভুলগুলো একে একে কেটে দেওয়া।যেখানে শিখবেন: পর্ব ৫৩
emplace_back()এমপ্লেস ব্যাক
vector-এর শেষে সরাসরি জায়গাতেই নতুন উপাদান তৈরি করা — constructor-এর argument দিলেই হয়, আলাদা অস্থায়ী বস্তু বানিয়ে কপি বা move করতে হয় না।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০পর্ব ৩৬
Encapsulationএনক্যাপসুলেশন
ডেটা আর সেই ডেটার নিয়ম একই জায়গায় রেখে, বাইরের কোডকে সরাসরি ডেটায় হাত দিতে না দেওয়া। বাইরের সবাইকে নির্দিষ্ট কাজের মধ্য দিয়েই আসতে হয়।যেখানে শিখবেন: পর্ব ০২পর্ব ১৯পর্ব ২০
End-to-end testএন্ড-টু-এন্ড টেস্ট
পুরো প্রোগ্রামকে ব্যবহারকারীর মতো শুরু থেকে শেষ পর্যন্ত চালিয়ে যাচাই করা টেস্ট; বাস্তবের কাছাকাছি, কিন্তু ধীর ও ভঙ্গুর।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫১
Endiannessএন্ডিয়ানেস
একাধিক বাইটের সংখ্যা মেমরি বা ফাইলে কোন ক্রমে রাখা হয়: little-endian-এ ছোট অংশ আগে (x86), big-endian-এ বড় অংশ আগে। C++20-এর std::endian দিয়ে জানা যায়।যেখানে শিখবেন: পর্ব ৪৪
Entity typeএনটিটি টাইপ
যে টাইপের object তার পরিচয় (সাধারণত একটি id) দিয়ে চেনা যায় আর সময়ের সাথে অবস্থা বদলায় — যেমন Customer, Order. সাধারণত কপি অর্থহীন, তাই প্রায়ই কপি নিষেধ করা হয়।যেখানে শিখবেন: পর্ব ২৭
Entry pointএন্ট্রি পয়েন্ট
প্রোগ্রামের যে জায়গা থেকে চলা শুরু হয়। সাধারণ C++ প্রোগ্রামে এটি main ফাংশন; অপারেটিং সিস্টেমের startup code প্রস্তুতি শেষে main ডাকে।যেখানে শিখবেন: পর্ব ০৪
enum classইনাম ক্লাস
C++11-এর scoped enumeration — নামযুক্ত কয়েকটি ধ্রুবক মানের একটি নিজস্ব টাইপ, যা নিজে থেকে int-এ বদলায় না এবং যার মান লিখতে হয় Type::Value আকারে।যেখানে শিখবেন: পর্ব ০৮পর্ব ১২পর্ব ১৯
Enumeratorইনিউমারেটর
একটি enum-এর ভেতরের এক-একটি নামযুক্ত মান, যেমন Placed বা Delivered.যেখানে শিখবেন: পর্ব ১২
EOF (end of file)ই-ও-এফ
ইনপুটের শেষ — আর কোনো অক্ষর আসবে না। ফাইল থেকে পড়লে ফাইল শেষ হলে, আর কিবোর্ডে Linux-এ Ctrl+D বা Windows-এ Ctrl+Z তারপর Enter চাপলে আসে।যেখানে শিখবেন: পর্ব ০৭পর্ব ১৯পর্ব ৫২
Epochইপক
একটি ঘড়ির শুরুর বিন্দু, যেখান থেকে সময় গোনা হয়; system_clock-এর epoch হলো ১ জানুয়ারি ১৯৭০, UTC (Unix time), আর steady_clock-এর epoch অনির্দিষ্ট।যেখানে শিখবেন: পর্ব ৪১
Erase-remove idiomইরেজ-রিমুভ ইডিয়ম
C++20-এর আগের প্রচলিত কৌশল: আগে std::remove বা std::remove_if দিয়ে রাখার উপাদানগুলো সামনে সরানো, তারপর container-এর erase দিয়ে পেছনের অংশ কেটে ফেলা। এক পাসে O(n).যেখানে শিখবেন: পর্ব ৩০পর্ব ৩৩পর্ব ৫২
errnoএরর-নো
C আর C++-এর একটি global (প্রতি thread-এ আলাদা) ভ্যারিয়েবল, যেখানে অনেক C লাইব্রেরি ফাংশন ব্যর্থতার কারণ-সংখ্যা লিখে রাখে। ফাংশনটি ব্যর্থ হয়েছে কি না, তা আগে রিটার্ন মান দেখে বুঝতে হয়।যেখানে শিখবেন: পর্ব ৩৭
Erroneous behaviorএরোনিয়াস বিহেভিয়ার
C++26-এ গৃহীত একটি নতুন শ্রেণী: আচরণটি ভুল হিসেবে চিহ্নিত, কিন্তু নিয়মহীন নয়; মান না দেওয়া local ভ্যারিয়েবল পড়া এর উদাহরণ, আর টুল চাইলে এটি জানাতে পারে।যেখানে শিখবেন: পর্ব ৪৩
Error handlingএরর হ্যান্ডলিং
প্রোগ্রাম চলার সময় কিছু ব্যর্থ হলে তা টের পাওয়া, সঠিক জায়গায় খবর পাঠানো আর সামলানোর নকশা। C++-এ এর মূল যন্ত্র assert, রিটার্ন মান (std::expected, std::optional) আর exception.যেখানে শিখবেন: পর্ব ৩৭
Event handlerইভেন্ট হ্যান্ডলার
কোনো ঘটনা (যেমন বাটনে ক্লিক) ঘটলে চালানোর জন্য নিবন্ধিত callback; প্রায়ই std::function-এর তালিকায় রাখা হয়।যেখানে শিখবেন: পর্ব ৩৪
Exceptionএক্সেপশন
চলার সময়ের কোনো সমস্যা জানাতে throw করা একটি object; এটি ফাংশনের স্বাভাবিক পথ ছেড়ে সোজা কাছের catch-এ চলে যায়।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৪পর্ব ১৬
Exception safetyএক্সেপশন সেফটি
একটি ফাংশন মাঝপথে exception ছুড়লে object-গুলোর অবস্থা নিয়ে তার প্রতিশ্রুতি। তিন স্তর: nothrow, strong আর basic guarantee.যেখানে শিখবেন: পর্ব ৩৭
Exchange argumentএক্সচেঞ্জ আর্গুমেন্ট
greedy সঠিক প্রমাণের একটি কৌশল: যেকোনো সর্বোত্তম সমাধানকে ধাপে ধাপে অদলবদল করে, খারাপ না করে, greedy-র সমাধানে আনা যায় দেখানো।যেখানে শিখবেন: পর্ব ৫০
Executableএক্সিকিউটেবল
চালানো যায় এমন তৈরি প্রোগ্রাম ফাইল (Windows-এ সাধারণত .exe). এটি চালাতে আর compiler লাগে না।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ৪৭
Execution policyএক্সিকিউশন পলিসি
C++17-এর header-এর std::execution::seq, par, par_unseq (C++20-এ unseq) — algorithm-এর প্রথম argument হিসেবে দিলে লাইব্রেরি তাকে ক্রমিক, বহু-thread বা vector instruction-এ চালানোর অনুমতি পায়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৪৬
Exhaustiveness checkএগজস্টিভনেস চেক
সব সম্ভাব্য ক্ষেত্র সামলানো হয়েছে কি না, compiler-এর সেই যাচাই। std::visit-এ কোনো টাইপের জন্য visitor না থাকলে compile error — নতুন টাইপ যোগ করলে কোনো জায়গা নীরবে বাদ পড়ে না।যেখানে শিখবেন: পর্ব ৩৮
Exit code (exit status)এক্সিট কোড
প্রোগ্রাম শেষ হলে অপারেটিং সিস্টেমকে ফেরত দেওয়া একটি পূর্ণসংখ্যা — 0 মানে সফল, অশূন্য মানে কোনো সমস্যা। shell, build system আর CI এটি দেখে সিদ্ধান্ত নেয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ৪৮
explicitএক্সপ্লিসিট
constructor-এর আগে লেখা শব্দ, যা compiler-কে গোপন টাইপ-রূপান্তরে সেই constructor ব্যবহার করতে দেয় না; শুধু স্পষ্টভাবে ডাকলে চলে।যেখানে শিখবেন: পর্ব ২১পর্ব ৩০
explicitএক্সপ্লিসিট
C++-এর keyword, যা constructor বা conversion operator-কে নিঃশব্দে (implicit) রূপান্তরে ব্যবহার হতে দেয় না; রূপান্তর তখন শুধু স্পষ্টভাবে লিখলে, যেমন Money(40) বা static_cast দিয়ে, ঘটে।যেখানে শিখবেন: পর্ব ২৩
Explicit instantiationএক্সপ্লিসিট ইনস্ট্যানশিয়েশন
কোনো ডাক ছাড়াই compiler-কে নির্দিষ্ট টাইপের সংস্করণ বানাতে বলা, যেমন template int largest(int, int); এতে template-এর সংজ্ঞা .cpp-তে রেখেও জানা টাইপগুলোতে ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ২৮পর্ব ২৯পর্ব ৫৪
explicit operator boolএক্সপ্লিসিট অপারেটর বুল
object “ঠিক আছে কি না” জানানোর নিরাপদ উপায় (C++11 থেকে)। if, while, !, && আর ||-এর শর্তে কাজ করে, কিন্তু হিসাবে বা int-এ বসাতে গেলে compile error দেয়। unique_ptr আর stream এটি ব্যবহার করে।যেখানে শিখবেন: পর্ব ২৩পর্ব ৩৮
Explicit template argumentএক্সপ্লিসিট টেমপ্লেট আর্গুমেন্ট
ডাকার সময় কোণ বন্ধনীতে নিজে T বলে দেওয়া, যেমন largest(3, 2.5). তখন সেই parameter-এর deduction হয় না, আর argument সাধারণ নিয়মে রূপান্তরিত হয়।যেখানে শিখবেন: পর্ব ২৮
Expressionএক্সপ্রেশন
মান, ভ্যারিয়েবল আর অপারেটর মিলে তৈরি হিসাবের টুকরো, যা শেষে একটি নির্দিষ্ট টাইপের মান দেয়, যেমন price * 3.যেখানে শিখবেন: পর্ব ০৬
Expression problemএক্সপ্রেশন প্রবলেম
নতুন টাইপ আর নতুন কাজ (operation) — দুটোই পুরোনো কোড না বদলে, টাইপ-নিরাপত্তা রেখে যোগ করার সমস্যা। inheritance-এ নতুন টাইপ সহজ, variant-এ নতুন কাজ সহজ। নামটি Philip Wadler-এর, ১৯৯৮ সালের।যেখানে শিখবেন: পর্ব ৩৮
externএক্সটার্ন
ভ্যারিয়েবলের আগে লিখলে সেটি শুধু ঘোষণা হয়: ভ্যারিয়েবলটি অন্য কোনো ফাইলে সংজ্ঞায়িত আছে, এখানে জায়গা নেওয়া হবে না।যেখানে শিখবেন: পর্ব ১১
extern "C"এক্সটার্ন সি
C++ কোডে লেখা নির্দেশ, যা কোনো ফাংশনের নাম mangle না করে C-র নিয়মে রাখতে বলে — C আর C++ কোড একসাথে link করার জন্য দরকার।যেখানে শিখবেন: পর্ব ০৩
External linkageএক্সটার্নাল লিংকেজ
যে নাম পুরো প্রোগ্রামে চেনা যায়, তাই অন্য ফাইল থেকেও ডাকা বা ব্যবহার করা যায়। namespace-এর স্তরে লেখা সাধারণ ফাংশন আর non-const ভ্যারিয়েবল এটি পায়।যেখানে শিখবেন: পর্ব ১১
Extraction operator (>>)এক্সট্র্যাকশন অপারেটর
Input stream থেকে মান বের করে ভ্যারিয়েবলে রাখার অপারেটর, যেমন std::cin >> x. ভ্যারিয়েবলের টাইপ দেখে ঠিক করে কোন অক্ষর পর্যন্ত পড়বে, আর stream-টিই ফেরত দেয়।যেখানে শিখবেন: পর্ব ০৭

F

Factory functionফ্যাক্টরি ফাংশন
এমন ফাংশন (প্রায়ই static), যে object বানিয়ে ফেরত দেয় — যেমন যাচাই করে std::optional ফেরত দেওয়া; সরাসরি constructor ডাকার বিকল্প।যেখানে শিখবেন: পর্ব ২১পর্ব ৫১
failbitফেইল-বিট
Stream-এর যে flag বলে “চাওয়া টাইপের মান পাওয়া যায়নি”, যেমন int পড়তে গিয়ে abc পাওয়া, বা পড়ার কিছুই পাওয়া যায়নি (যেমন ফাইলের শেষে)। std::cin.fail() তখন true দেয়।যেখানে শিখবেন: পর্ব ০৭পর্ব ৪৪
Fall-throughফল-থ্রু
switch-এ একটি case-এর শেষে break না থাকলে প্রোগ্রাম থেমে না গিয়ে পরের case-এর কোডও চালিয়ে যায় — এই গড়িয়ে পড়াকে fall-through বলে।যেখানে শিখবেন: পর্ব ০৮পর্ব ৫৪
False sharingফলস শেয়ারিং
দুটি thread আলাদা ভ্যারিয়েবলে লিখছে, কিন্তু ভ্যারিয়েবল দুটি একই cache line-এ থাকায় CPU সেই line দুই core-এর মাঝে বারবার আদান-প্রদান করে। ফলে কোড অপ্রত্যাশিতভাবে ধীর হয়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৬পর্ব ৪৯
Fatal assertionফেটাল অ্যাসারশন
যে যাচাই ব্যর্থ হলে বর্তমান টেস্ট সেখানেই থামে, যেমন GoogleTest-এর ASSERT_EQ বা Catch2-এর REQUIRE.যেখানে শিখবেন: পর্ব ৪৮
Feature-test macroফিচার-টেস্ট ম্যাক্রো
কোনো ভাষা বা লাইব্রেরি বৈশিষ্ট্যের সমর্থন থাকলে define থাকা macro, যার মান একটি তারিখ (যেমন __cpp_lib_generator = 202207L). লাইব্রেরির macro-গুলো header-এ থাকে।যেখানে শিখবেন: পর্ব ৪২
fetch_addফেচ অ্যাড
std::atomic-এর সদস্য ফাংশন, যা পড়া, যোগ আর লেখা এক অবিভাজ্য ধাপে করে এবং আগের মান ফেরত দেয়; একাধিক thread-এর counter-এর জন্য।যেখানে শিখবেন: পর্ব ৪৬
FetchContentফেচ কনটেন্ট
CMake-এর মডিউল, যা configure-এর সময় একটি library-র source নামিয়ে প্রজেক্টের অংশ হিসেবে build করে।যেখানে শিখবেন: পর্ব ৪৭
FIFO (First In, First Out)ফাইফো
যে আগে এসেছে, সে আগে বের হবে — টিকিটের লাইনের মতো। queue এই নিয়মে চলে।যেখানে শিখবেন: পর্ব ৩০
Fileফাইল
ডিস্কে একটি নামের পেছনে রাখা বাইটের সারি, যা প্রোগ্রাম বন্ধ হলেও টিকে থাকে। বাইটগুলোর অর্থ ঠিক করে যে প্রোগ্রাম পড়ে।যেখানে শিখবেন: পর্ব ৪৪
File formatফাইল ফরম্যাট
একটি ফাইলের বাইটগুলো কীভাবে সাজানো আর কীভাবে পড়তে হবে, তার চুক্তি — যেমন CSV-র লাইন ও কমা, বা binary ফাইলের ঘরের মাপ ও ক্রম।যেখানে শিখবেন: পর্ব ৪৪
file(GLOB)ফাইল গ্লব
CMake কমান্ড, যা নামের ধাঁচ মিলিয়ে ফাইলের তালিকা বানায়। Source জোগাড়ে ঝুঁকিপূর্ণ, কারণ নতুন ফাইল যোগ করলে CMake আবার না চলা পর্যন্ত তা বাদ থাকে।যেখানে শিখবেন: পর্ব ৪৭
finalফাইনাল
class-এর নামের পরে final লিখলে (C++11 থেকে) তার থেকে আর কোনো class derive করা যায় না; virtual ফাংশনের পরে লিখলে আর কেউ সেটি override করতে পারে না।যেখানে শিখবেন: পর্ব ২৪
finalফাইনাল
C++11 থেকে class-এর নামের পরে বসালে তা থেকে আর class তৈরি করা যায় না; virtual ফাংশনের পরে বসালে নিচের কোনো class সেটি আর override করতে পারে না।যেখানে শিখবেন: পর্ব ২৫
find_packageফাইন্ড প্যাকেজ
CMake কমান্ড, যা মেশিনে আগে থেকে বসানো একটি library খুঁজে তার imported target (যেমন fmt::fmt) তৈরি করে।যেখানে শিখবেন: পর্ব ৪৭
Fixed-width integerফিক্সড-উইডথ ইন্টিজার
cstdint হেডারের std::int32_t-এর মতো পূর্ণসংখ্যার টাইপ, যার বিটের সংখ্যা নামেই লেখা এবং সব সিস্টেমে একই।যেখানে শিখবেন: পর্ব ০৫
Flag (compiler option)ফ্ল্যাগ
Compiler-কে বাড়তি নির্দেশ দেওয়ার ছোট অংশ, যেমন -Wall (warning চালু) বা -std=c++23 (কোন standard মানবে)।যেখানে শিখবেন: পর্ব ০৩
Flaky testফ্লেকি টেস্ট
যে টেস্ট কোড না বদলালেও কখনো পাস, কখনো ফেল করে; সাধারণ কারণ সময়, thread, টেস্টের ক্রম বা seed ছাড়া random.যেখানে শিখবেন: পর্ব ৪৮
Flame graphফ্লেম গ্রাফ
Brendan Gregg-এর উদ্ভাবিত profiler-এর ছবি: ওপর-নিচ অক্ষে call stack-এর গভীরতা, আর প্রতিটি বাক্সের প্রস্থ মানে মোট sample-এর কত অংশে ফাংশনটি stack-এ ছিল। বাঁ-ডান অক্ষ সময়ের ক্রম নয়।যেখানে শিখবেন: পর্ব ৪৯
Floating pointফ্লোটিং পয়েন্ট
দশমিক সংখ্যাকে চিহ্ন, ঘাত আর ভগ্নাংশ — এই তিন অংশে রাখার পদ্ধতি (IEEE 754); অনেক মান শুধু প্রায় সঠিকভাবে রাখা যায়, যেমন ০.১যেখানে শিখবেন: পর্ব ০৫পর্ব ১৯পর্ব ২৩
Flushফ্লাশ
Buffer-এ জমে থাকা লেখা সঙ্গে সঙ্গে আসল গন্তব্যে (স্ক্রিন বা ফাইল) পাঠিয়ে buffer খালি করা। std::endl আর std::flush এটি করে।যেখানে শিখবেন: পর্ব ০৪পর্ব ৪৪পর্ব ৫০
-fno-exceptionsএফ-নো-এক্সেপশনস
GCC আর Clang-এর একটি flag, যা পুরো প্রোগ্রামে exception বন্ধ করে দেয়; তখন throw বা try লিখলে compile error হয়। কিছু গেম, embedded আর বড় কোম্পানির প্রকল্প এটি ব্যবহার করে।যেখানে শিখবেন: পর্ব ৩৭
Fold expressionফোল্ড এক্সপ্রেশন
C++17 থেকে parameter pack-এর প্রতিটি উপাদানে একটি operator জুড়ে দেওয়ার সংক্ষিপ্ত রূপ, যেমন (args + ...) যোগফল দেয়। compile-এর সময়েই খুলে যায়, চলার সময় কোনো লুপ থাকে না।যেখানে শিখবেন: পর্ব ২৯
Follow-up questionফলো-আপ কোয়েশ্চেন
আগের উত্তরের সূত্র ধরে করা পরের প্রশ্ন, যা একটু একটু করে গভীরে যায় — যেমন virtual থেকে vtable, তারপর constructor-এর ভেতরের ডাক। এটি দেখায় উত্তরটি বোঝা নাকি মুখস্থ।যেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৫
for loopফর লুপ
শুরু, শর্ত আর পরিবর্তন — এই তিন অংশ এক লাইনে লেখা লুপ: for (init; cond; step); গোনা জানা থাকলে সুবিধাজনক।যেখানে শিখবেন: পর্ব ০৮
Format specificationফরম্যাট স্পেসিফিকেশন
std::format বা std::print-এর {} ঘরের ভেতরে : চিহ্নের পরের নির্দেশ — fill, align, sign, width, precision আর type — যা ঠিক করে মানটি লেখায় কেমন দেখাবে, যেমন {:>8.2f}.যেখানে শিখবেন: পর্ব ০৭
_FORTIFY_SOURCEফর্টিফাই সোর্স
glibc-র একটি macro (-D_FORTIFY_SOURCE=2 বা 3), যা memcpy, strcpy-এর মতো ফাংশনে জানা মাপের সাথে যাচাই যোগ করে; কাজ করতে optimization চালু থাকতে হয়।যেখানে শিখবেন: পর্ব ৪৩
Forward declarationফরওয়ার্ড ডিক্লারেশন
পুরো সংজ্ঞা ছাড়া শুধু টাইপের নাম জানানো, যেমন struct Item; এরপর reference বা pointer রাখা যায়, পুরো header include করতে হয় না — build দ্রুত হয়।যেখানে শিখবেন: পর্ব ১১
Forward iteratorফরওয়ার্ড ইটারেটর
যে iterator শুধু সামনে এগোয়, কিন্তু কপি রেখে একই পথ বারবার হাঁটা যায়। std::forward_list আর std::unordered_map-এর iterator এমন।যেখানে শিখবেন: পর্ব ৩২
Forward progressফরওয়ার্ড প্রোগ্রেস
Standard-এর নিশ্চয়তা-নিয়ম যে প্রতিটি thread শেষ পর্যন্ত কিছু দেখা যায় এমন কাজ করবে বা থামবে; তাই পার্শ্বপ্রতিক্রিয়াহীন অসীম লুপকে compiler মুছে দিতে পারে।যেখানে শিখবেন: পর্ব ৪৩
Forwarding referenceফরওয়ার্ডিং রেফারেন্স
function template-এর ঠিক T&& প্যারামিটার (বা auto&&), যেখানে T ডাকার সময় deduce হয়। এটি lvalue আর rvalue দুটোই নেয়; Scott Meyers একে universal reference বলতেন।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৫৪
Fragile base class problemফ্র্যাজাইল বেস ক্লাস প্রবলেম
base class-এ নিরীহ মনে হওয়া একটি বদল (ভেতরের implementation বা নতুন data member) এমন derived class ভেঙে দেয়, যার কোড কেউ ছোঁয়নি — আচরণে বা binary বিন্যাসে।যেখানে শিখবেন: পর্ব ২৪
Free functionফ্রি ফাংশন
কোনো class-এর অংশ নয় এমন সাধারণ ফাংশন। যে কাজ কোনো একটি object-এর নিজস্ব নয় — যেমন দুটি সংখ্যার গড় — তার জন্য এটাই সবচেয়ে সহজ।যেখানে শিখবেন: পর্ব ০২পর্ব ২০পর্ব ২৩
friendফ্রেন্ড
C++-এর keyword, যা দিয়ে একটি class কোনো বাইরের ফাংশন বা class-কে নিজের private আর protected সদস্য দেখার অনুমতি দেয়। friend ফাংশন member নয়।যেখানে শিখবেন: পর্ব ২৩পর্ব ৫৪
fsyncএফ-সিংক
POSIX-এর system call, যা একটি ফাইলের জমে থাকা সব লেখা ডিস্কে স্থায়ীভাবে পৌঁছানো পর্যন্ত অপেক্ষা করে। standard C++-এ এর কোনো সমতুল্য নেই; Windows-এ FlushFileBuffers.যেখানে শিখবেন: পর্ব ৪৪
Full (explicit) specializationফুল / এক্সপ্লিসিট স্পেশালাইজেশন
একটি template-এর সব argument নির্দিষ্ট করে লেখা আলাদা সংস্করণ, যেমন template <> struct Storage. এটি সম্পূর্ণ নতুন class; primary-র কোনো member আপনা-আপনি আসে না।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৪
Full-expressionফুল এক্সপ্রেশন
যে expression অন্য কোনো expression-এর অংশ নয়, সাধারণত একটি পুরো statement সেমিকোলন পর্যন্ত। এর মধ্যে তৈরি temporary এর শেষেই ধ্বংস হয়।যেখানে শিখবেন: পর্ব ১৮
Functionফাংশন
নাম দেওয়া, বারবার ব্যবহার করা যায় এমন একটি কোডের টুকরো, যা কিছু ইনপুট (parameter) নেয়, একটি কাজ করে এবং দরকার হলে একটি মান ফেরত দেয়।যেখানে শিখবেন: পর্ব ০৯
Function call operator (())ফাংশন কল অপারেটর
operator(), যা overload করলে একটি object-কে ফাংশনের মতো ডাকা যায়, যেমন m(1, 2) বা pred(x). শুধু member হতে পারে, আর যত খুশি প্যারামিটার নিতে পারে।যেখানে শিখবেন: পর্ব ২৩পর্ব ৩৪
Function object (functor)ফাংশন অবজেক্ট / ফাংক্টর
এমন object, যার class-এ operator() আছে, তাই একে ফাংশনের মতো ডাকা যায়, আর ভেতরে নিজের অবস্থাও রাখা যায়। STL algorithm-এ বহুল ব্যবহৃত; lambda আসলে compiler-এর বানানো functor.যেখানে শিখবেন: পর্ব ২৩পর্ব ৩৩পর্ব ৩৪
Function overloadingফাংশন ওভারলোডিং
একই নামে একাধিক ফাংশন রাখা, যাদের parameter-এর সংখ্যা বা টাইপ আলাদা; ডাকার সময় argument দেখে compiler সঠিকটি বেছে নেয়।যেখানে শিখবেন: পর্ব ০৯পর্ব ২১পর্ব ২৩
Function pointerফাংশন পয়েন্টার
কোনো ফাংশনের ঠিকানা রাখা pointer, যা দিয়ে চলার সময় ঠিক করা যায় কোন ফাংশন ডাকা হবে; আধুনিক C++-এ প্রায়ই lambda বা std::function এর জায়গা নিয়েছে।যেখানে শিখবেন: পর্ব ১৫পর্ব ৩৩পর্ব ৩৪
Function signatureফাংশন সিগনেচার
ফাংশনের নাম আর তার parameter-গুলোর টাইপের তালিকা; overloading-এ এটাই আলাদা হতে হয়। সাধারণ ফাংশনে return টাইপ এর অংশ নয়।যেখানে শিখবেন: পর্ব ০৯
Function templateফাংশন টেমপ্লেট
template দিয়ে লেখা ফাংশনের ছাঁচ। নিজে কোনো ফাংশন নয়; যে টাইপে ডাকা হয়, compiler সেই টাইপের জন্য একটি আসল ফাংশন বানিয়ে নেয়।যেখানে শিখবেন: পর্ব ২৮পর্ব ৪০
Functional programmingফাংশনাল প্রোগ্রামিং
প্রোগ্রামিংয়ের একটি ধারা, যেখানে অবস্থা বদলানোর বদলে ছোট, পার্শ্বপ্রতিক্রিয়াহীন ফাংশন জোড়া লাগিয়ে কাজ করা হয়; map, filter, fold এর মূল যন্ত্র। Lisp, Haskell এর পরিচিত ভাষা।যেখানে শিখবেন: পর্ব ৩৫
Fundamental typeফান্ডামেন্টাল টাইপ
ভাষার সাথেই আসা মৌলিক টাইপ, যেমন bool, char, int, double; নিজের বানানো টাইপের ভিত্তি এগুলোই।যেখানে শিখবেন: পর্ব ০৫
Fuzzingফাজিং
একটি টেস্টিং কৌশল, যেখানে টুল স্বয়ংক্রিয়ভাবে লাখো অদ্ভুত ইনপুট বানিয়ে প্রোগ্রামে দেয় আর crash বা sanitizer রিপোর্ট খোঁজে; libFuzzer আর AFL++ পরিচিত টুল।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৮

G

Garbage collectorগারবেজ কালেক্টর
Java, Python, C#-এর মতো ভাষায় একটি স্বয়ংক্রিয় ব্যবস্থা, যা চলার সময় মাঝে মাঝে খুঁজে দেখে কোন মেমরি আর ব্যবহার হচ্ছে না, আর তা ফেরত নেয়। C++-এ এটি নেই।যেখানে শিখবেন: পর্ব ০১পর্ব ১৬পর্ব ১৭
GCC / g++জি-সি-সি / জি-প্লাস-প্লাস
GNU প্রজেক্টের ফ্রি compiler সংগ্রহ। C++ কোডের জন্য তার কমান্ড g++, যা নিজে থেকেই libstdc++ জুড়ে দেয়।যেখানে শিখবেন: পর্ব ০৩
gcovজি-কভ
GCC-র coverage টুল; --coverage দিয়ে build করে টেস্ট চালালে প্রতিটি লাইন কতবার চলেছে তা জানায়।যেখানে শিখবেন: পর্ব ৪৮
GDBজিডিবি
GNU-র command-line debugger, Linux-এ সবচেয়ে প্রচলিত; break, run, next, step, bt, print-এর মতো কমান্ডে কাজ করে।যেখানে শিখবেন: পর্ব ৪৮
Generator (CMake)জেনারেটর
CMake কোন build টুলের জন্য ফাইল লিখবে তার পছন্দ, যেমন Ninja, Unix Makefiles বা Visual Studio 17 2022. -G দিয়ে বাছা হয়।যেখানে শিখবেন: পর্ব ৪৭
Generator expressionজেনারেটর এক্সপ্রেশন
CMake-এর $<...> আকারের ছোট শর্ত, যা build ফাইল লেখার সময় মূল্যায়ন হয় — যেমন শুধু Debug-এ বা শুধু MSVC-তে একটি flag.যেখানে শিখবেন: পর্ব ৪৭
Generic lambdaজেনেরিক ল্যাম্বডা
C++14 থেকে প্যারামিটারে auto লেখা lambda; এর operator() একটি template, তাই একই lambda নানা টাইপের মানে কাজ করে।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৩৮
Generic programmingজেনেরিক প্রোগ্রামিং
নির্দিষ্ট টাইপ না বেঁধে, শুধু টাইপের দরকারি শর্ত ধরে একবার algorithm বা data structure লেখার পদ্ধতি; C++-এ এর হাতিয়ার template, আর বড় উদাহরণ STL.যেখানে শিখবেন: পর্ব ২৮পর্ব ৩০পর্ব ৩২
Getter / Setterগেটার / সেটার
শুধু একটি ডেটা পড়া (get) বা বসানো (set) করার ফাংশন। প্রতিটি ডেটার জন্য অন্ধভাবে setter বানালে encapsulation-এর উদ্দেশ্যই নষ্ট হয়।যেখানে শিখবেন: পর্ব ০২পর্ব ২০
git bisectগিট বাইসেক্ট
একটি ভালো ও একটি খারাপ commit-এর মাঝে binary search চালিয়ে প্রথম খারাপ commit খুঁজে দেওয়া git কমান্ড।যেখানে শিখবেন: পর্ব ৪৮
Global variableগ্লোবাল ভ্যারিয়েবল
যে ভ্যারিয়েবল কোনো ফাংশনের বাইরে ঘোষণা করা, তাই প্রোগ্রামের যেকোনো জায়গা থেকে পড়া ও বদলানো যায়। সুবিধাজনক, কিন্তু বড় প্রোগ্রামে বাগের বড় উৎস।যেখানে শিখবেন: পর্ব ০২পর্ব ১৮পর্ব ৪৮
glvalue (generalized lvalue)জিএল-ভ্যালু
lvalue আর xvalue-এর মিলিত দল — যেসব expression একটি নির্দিষ্ট object বা ফাংশনকে চিহ্নিত করে, অর্থাৎ যাদের পরিচয় আছে।যেখানে শিখবেন: পর্ব ৩৬
God classগড ক্লাস
যে class অনেক অসম্পর্কিত দায়িত্ব একসাথে নেয় আর প্রায় সবকিছু জানে ও করে; বোঝা, বদলানো আর টেস্ট করা কঠিন। এটি একটি পরিচিত anti-pattern বা খারাপ নকশা।যেখানে শিখবেন: পর্ব ২৭
Golden-file testগোল্ডেন-ফাইল টেস্ট
একটি নির্দিষ্ট ইনপুট ফাইল দিয়ে প্রোগ্রাম চালিয়ে তার পুরো আউটপুট আগে থেকে যাচাই করে রাখা “সঠিক” আউটপুট ফাইলের সাথে মেলানো; এক অক্ষর আলাদা হলেও টেস্ট ব্যর্থ।যেখানে শিখবেন: পর্ব ১৯পর্ব ৫১
Google Benchmarkগুগল বেঞ্চমার্ক
C++-এর একটি জনপ্রিয় open-source microbenchmark লাইব্রেরি। নিজে থেকেই যথেষ্টবার চালায়, সময়ের পরিসংখ্যান দেয় আর DoNotOptimize-এর মতো হাতিয়ার দেয়। এর সাথে link করতে হয় (-lbenchmark).যেখানে শিখবেন: পর্ব ৪৯
GoogleTestগুগল টেস্ট
Google-এর জনপ্রিয় C++ টেস্টিং library, সংক্ষেপে gtest. TEST আর EXPECT_EQ-এর মতো macro দিয়ে unit test লেখা যায়।যেখানে শিখবেন: পর্ব ৪৭পর্ব ৪৮
gotoগোটু
একই ফাংশনের ভেতরে একটি লেবেলে সরাসরি লাফ দেওয়ার নির্দেশ; C++-এ আছে, কিন্তু structured কাঠামো আর RAII থাকায় প্রায় কখনো দরকার হয় না।যেখানে শিখবেন: পর্ব ০৮
Grapheme clusterগ্রাফিম ক্লাস্টার
পাঠক যাকে একটি অক্ষর হিসেবে দেখেন, এমন এক বা একাধিক code point-এর গুচ্ছ; যেমন বাংলায় ব্যঞ্জন আর তার কার-চিহ্ন মিলে সাধারণত একটি গুচ্ছ হয়।যেখানে শিখবেন: পর্ব ১৪
Greedy algorithmগ্রিডি অ্যালগরিদম
প্রতিটি ধাপে তখনকার সবচেয়ে ভালো দেখানো সিদ্ধান্ত নিয়ে আর পেছনে না ফিরে সমাধান গড়া; দ্রুত, কিন্তু সঠিকতার প্রমাণ লাগে।যেখানে শিখবেন: পর্ব ৫০
Grid graphগ্রিড গ্রাফ
একটি গ্রিড বা গোলকধাঁধাকে গ্রাফ হিসেবে দেখা — প্রতিটি খোলা ঘর একটি node, আর পাশাপাশি খোলা ঘরের মাঝে একটি edge.যেখানে শিখবেন: পর্ব ৫০
Growth factorগ্রোথ ফ্যাক্টর
reallocation-এর সময় capacity কত গুণ বাড়ে। standard নির্দিষ্ট করে না; GCC আর Clang-এর লাইব্রেরি সাধারণত ২ গুণ, MSVC ১.৫ গুণ ব্যবহার করে।যেখানে শিখবেন: পর্ব ১৩
gsl::narrowজিএসএল ন্যারো
Microsoft-এর Guidelines Support Library-র ফাংশন, যা বড় টাইপ থেকে ছোট টাইপে রূপান্তর করে আর মান বদলে গেলে exception ছোড়ে — যাচাই করা রূপান্তর।যেখানে শিখবেন: পর্ব ৪৩
Guaranteed copy elisionগ্যারান্টিড কপি ইলিশন
C++17 (P0135) থেকে ভাষার নিয়ম: একই টাইপের prvalue দিয়ে object বানালে বা ফেরত দিলে মাঝে কোনো temporary তৈরি হয় না, তাই copy বা move constructor ডাকাই হয় না — এমনকি সেগুলো না থাকলেও চলে।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৫২পর্ব ৫৪
Guard clauseগার্ড ক্লজ
ফাংশন বা লুপের শুরুতেই ভুল বা বিশেষ অবস্থা পরীক্ষা করে আগেভাগে return বা continue করা, যাতে মূল কাজ গভীর nested শর্ত ছাড়া সোজা লেখা যায়।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৯পর্ব ৫১

H

Half-open rangeহাফ-ওপেন রেঞ্জ
[begin, end) ধাঁচের range: begin ভেতরে, end বাইরে। ফলে খালি range মানে begin == end, আর উপাদানের সংখ্যা end − begin.যেখানে শিখবেন: পর্ব ৩২পর্ব ৩৩
HALO (heap allocation elision)হ্যালো
compiler-এর অপ্টিমাইজেশন: coroutine-এর জীবন caller-এর ভেতরেই শেষ হবে প্রমাণ করতে পারলে coroutine frame-এর heap বরাদ্দ বাদ দেওয়া। এর কোনো নিশ্চয়তা নেই।যেখানে শিখবেন: পর্ব ৪২
Halting problemহল্টিং প্রবলেম
যেকোনো প্রোগ্রাম আর ইনপুট দেখে সেটি থামবে কি না সবসময় সঠিকভাবে বলে দেওয়ার সমস্যা; ১৯৩৬ সালে Alan Turing প্রমাণ করেন যে এমন সাধারণ প্রোগ্রাম লেখা অসম্ভব।যেখানে শিখবেন: পর্ব ০৮
Happens-beforeহ্যাপেনস বিফোর
memory model-এর সম্পর্ক: কাজ A যদি B-এর happens-before হয়, তবে A-এর সব প্রভাব B-এর কাছে দৃশ্যমান হওয়ার নিশ্চয়তা আছে। mutex, join আর release/acquire এই সম্পর্ক তৈরি করে।যেখানে শিখবেন: পর্ব ৪৬
Happy pathহ্যাপি পাথ
সবকিছু স্বাভাবিক ও বৈধ থাকলে প্রোগ্রাম যে পথে চলে; শুধু এই পথের টেস্ট edge case আর ভুল ইনপুটের বাগ ধরে না।যেখানে শিখবেন: পর্ব ৪৮
Hardened standard libraryহার্ডেনড স্ট্যান্ডার্ড লাইব্রেরি
standard library-র এমন একটি মোড, যেখানে vector-এর [] বা span-এর মতো জায়গায় সীমা ও অন্য শর্ত যাচাই করা হয়, আর ভাঙলে প্রোগ্রাম নিরাপদে থেমে যায়।যেখানে শিখবেন: পর্ব ৪৩
Hardware prefetcherহার্ডওয়্যার প্রিফেচার
CPU-র ভেতরের একটি অংশ, যা মেমরি পড়ার ধরন দেখে আন্দাজ করে পরের ডেটা কোথায় লাগবে আর আগেভাগেই cache-এ এনে রাখে। সারি ধরে পড়লে খুব ভালো কাজ করে, pointer ধরে লাফালে পারে না।যেখানে শিখবেন: পর্ব ৩০পর্ব ৪৯
hardware_concurrency()হার্ডওয়্যার কনকারেন্সি
std::thread-এর static ফাংশন, যা জানায় এই মেশিন একসাথে আনুমানিক কতগুলো thread সত্যিই চালাতে পারে। এটি শুধু ইঙ্গিত; জানা না গেলে 0 ফেরত দিতে পারে।যেখানে শিখবেন: পর্ব ৪৫
has-a relationshipহ্যাজ-আ সম্পর্ক
একটি object-এর ভেতরে আরেকটি object অংশ হিসেবে থাকার সম্পর্ক — “গাড়ির একটি ইঞ্জিন আছে”. C++-এ সাধারণত সদস্য ভ্যারিয়েবল দিয়ে, অর্থাৎ composition.যেখানে শিখবেন: পর্ব ২৭
Hash collisionহ্যাশ কলিশন
দুটি ভিন্ন চাবি একই bucket-এ পড়া। এটি স্বাভাবিক ও অনিবার্য; সমস্যা হয় শুধু যখন অনেক চাবি একই bucket-এ জমে যায়।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৪পর্ব ৫৫
Hash floodingহ্যাশ ফ্লাডিং
ইচ্ছাকৃতভাবে এমন অনেক চাবি পাঠানো, যেগুলো একই bucket-এ পড়ে, ফলে hash table-এর প্রতিটি কাজ O(n) হয়ে সার্ভার ধীর হয়ে যায়। প্রতিরোধ: randomized hash, চাবির সংখ্যা সীমিত করা, বা tree-ভিত্তিক container.যেখানে শিখবেন: পর্ব ৩১পর্ব ৫০পর্ব ৫৫
Hash functionহ্যাশ ফাংশন
যে ফাংশন একটি চাবি থেকে একটি পূর্ণসংখ্যা বানায়। একই চাবি থেকে সবসময় একই সংখ্যা আসতে হয়; ভালো hash ফাংশন ভিন্ন চাবিগুলোকে সমানভাবে ছড়িয়ে দেয়।যেখানে শিখবেন: পর্ব ৩১
Hash tableহ্যাশ টেবিল
এমন ডেটা স্ট্রাকচার, যা চাবি থেকে একটি সংখ্যা (hash) হিসাব করে সরাসরি একটি ঘরে (bucket) চলে যায়। তাই গড়ে খোঁজা O(1), কিন্তু ক্রম থাকে না।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৪
Header fileহেডার ফাইল
ফাংশন, class বা টাইপের ঘোষণা রাখার ফাইল (.h, .hpp, বা -এর মতো এক্সটেনশন ছাড়া নাম)। #include দিয়ে অন্য ফাইলে জোড়া হয়।যেখানে শিখবেন: পর্ব ০৩পর্ব ১১পর্ব ১৯
Header fileহেডার ফাইল
ঘোষণার একটি ফাইল — কোন নাম, ফাংশন বা টাইপ আছে আর কীভাবে ব্যবহার করতে হয়। #include দিয়ে আনা হয়; standard C++ header-এর নামে .h থাকে না, যেমন .যেখানে শিখবেন: পর্ব ০৪পর্ব ৪১
Header unitহেডার ইউনিট
একটি সাধারণ header-কে module-এর মতো import করা, যেমন import ; — পুরোনো header আর modules-এর মাঝের সেতু, যার compiler-সমর্থন এখনো অসম।যেখানে শিখবেন: পর্ব ৪২
Header-only libraryহেডার-অনলি লাইব্রেরি
যে library-র পুরো কোড header ফাইলেই থাকে, আলাদা করে compile বা link করতে হয় না — শুধু #include দিলেই চলে।যেখানে শিখবেন: পর্ব ০৩পর্ব ২৮পর্ব ৪৭
Heap (free store)হিপ মেমরি
প্রোগ্রাম চলার সময় দরকারমতো চেয়ে নেওয়া আর ফেরত দেওয়া মেমরি। vector তার উপাদানগুলো সাধারণত এখানেই রাখে।যেখানে শিখবেন: পর্ব ১৩
Heap / free storeহিপ / ফ্রি স্টোর
প্রোগ্রাম চলার সময় চেয়ে নেওয়া মেমরির এলাকা; এখানের জিনিস ফাংশন শেষ হলেও বেঁচে থাকে, যতক্ষণ না কেউ সেটি ফেরত দেয়। C++-এ new দিয়ে নেওয়া মেমরিকে আনুষ্ঠানিকভাবে free store বলে।যেখানে শিখবেন: পর্ব ১৪পর্ব ১৬পর্ব ১৭
Heap allocationহিপ অ্যালোকেশন
চলার সময় allocator-এর কাছ থেকে heap-এ মেমরি নেওয়া — new, বা vector ও string-এর ভেতরের allocation. খালি জায়গা খোঁজা আর হিসাব রাখার খরচ আছে, তাই গরম লুপে বারবার করলে ধীর হয়।যেখানে শিখবেন: পর্ব ৪৯
heap-buffer-overflowহিপ বাফার ওভারফ্লো
AddressSanitizer-এর রিপোর্টের নাম: heap-এ রাখা কোনো buffer (যেমন vector-এর মেমরি)-এর সীমার বাইরে পড়া বা লেখা।যেখানে শিখবেন: পর্ব ৪৩
Hidden friendহিডেন ফ্রেন্ড
class-এর ভেতরেই সংজ্ঞায়িত friend ফাংশন, যাকে সাধারণ নাম-খোঁজায় পাওয়া যায় না, শুধু ADL-এ পাওয়া যায় (অন্তত একটি আর্গুমেন্ট ওই class হলে)। operator লেখার পছন্দের রীতি।যেখানে শিখবেন: পর্ব ২৩
Higher-order functionহায়ার-অর্ডার ফাংশন
যে ফাংশন অন্য একটি ফাংশন বা callable প্যারামিটার হিসেবে নেয়, বা ফেরত দেয়; যেমন sort, count_if, বা lambda ফেরত দেওয়া factory.যেখানে শিখবেন: পর্ব ৩৪পর্ব ৩৫
Hotspotহটস্পট
প্রোগ্রামের সেই ছোট অংশ (সাধারণত কয়েকটি ফাংশন বা লুপ), যেখানে মোট সময়ের বড় ভাগ যায়। optimization-এর সময় এখানেই মন দিতে হয়।যেখানে শিখবেন: পর্ব ৪৯

I

ICPCআই-সি-পি-সি
International Collegiate Programming Contest — বিশ্ববিদ্যালয়ের তিনজনের দলের প্রোগ্রামিং প্রতিযোগিতা, একটি কম্পিউটার আর পাঁচ ঘণ্টায়; আঞ্চলিক পর্ব থেকে World Finals.যেখানে শিখবেন: পর্ব ৫০
IDEআই-ডি-ই
Integrated Development Environment — কোড লেখা, build, চালানো আর debug এক জায়গায় করার সফটওয়্যার, যেমন Visual Studio, CLion, Code::Blocks.যেখানে শিখবেন: পর্ব ০৩
if constevalইফ কনস্ট-ইভাল
C++23-এর if-এর রূপ; constant evaluation চলার সময় প্রথম শাখা, চলার সময়ে else শাখা নেয়। std::is_constant_evaluated-এর চেয়ে পরিষ্কার ও নিরাপদ।যেখানে শিখবেন: পর্ব ৩৯
if constexprইফ কনস্টএক্সপার
C++17-এর এমন if, যার শর্ত compile-এর সময় পরীক্ষা হয়; template-এর ভেতরে মিথ্যা শাখাটি instantiate হয় না।যেখানে শিখবেন: পর্ব ০৮পর্ব ৩৯পর্ব ৪০
if-else statementইফ-এলস
একটি শর্ত সত্য হলে এক অংশ, মিথ্যা হলে অন্য অংশ চালানোর কাঠামো; else if দিয়ে একাধিক শর্তের সিঁড়ি বানানো যায়।যেখানে শিখবেন: পর্ব ০৮
IIFE (immediately invoked lambda)আই-আই-এফ-ই
লিখেই সঙ্গে সঙ্গে ডাকা lambda, [&] { ... }(); কয়েক লাইনের যুক্তি দিয়ে একটি const ভ্যারিয়েবলের মান ঠিক করতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৪
Immediate functionইমিডিয়েট ফাংশন
consteval দিয়ে ঘোষিত ফাংশনের standard-এর নাম; এর প্রতিটি ডাক সঙ্গে সঙ্গে, compile-এর সময়েই একটি ধ্রুবকে পরিণত হয়।যেখানে শিখবেন: পর্ব ৩৯
Immutable dataইমিউটেবল ডেটা
যে ডেটা তৈরির পর আর বদলায় না। অনেক thread একসাথে শুধু পড়লে কোনো data race হয় না, তাই এমন ডেটা তালা ছাড়াই ভাগ করা যায়।যেখানে শিখবেন: পর্ব ৪৫
Implementation-defined behaviorইমপ্লিমেন্টেশন-ডিফাইনড বিহেভিয়ার
যে আচরণ compiler নিজে বেছে নেয় এবং ডকুমেন্টেশনে লিখে জানাতে বাধ্য; যেমন sizeof(int) কত, বা char signed কি না।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫২পর্ব ৫৩
Implicit conversionইমপ্লিসিট কনভার্শন
প্রোগ্রামার না বললেও compiler নিজে থেকে এক টাইপের মান অন্য টাইপে বদলে নেওয়া; যেমন int আর double যোগে int-কে double করা।যেখানে শিখবেন: পর্ব ০৫পর্ব ০৬পর্ব ০৯
Implicit move (on return)ইমপ্লিসিট মুভ
return local; লিখলে, copy elision না হলেও, compiler local-টিকে প্রথমে rvalue হিসেবে ধরে — ফলে কপির বদলে move চলে। নিয়মটি C++11-এ আসে, আর C++20 ও C++23-এ বিস্তৃত হয়।যেখানে শিখবেন: পর্ব ৩৬
Implicitly declaredইমপ্লিসিটলি ডিক্লেয়ার্ড
আপনি না লিখলেও compiler নিজে থেকে যে special member ঘোষণা করে ধরে নেয়; কোনটি কখন হবে, তা নির্ভর করে আপনি অন্য কোন special member লিখেছেন তার ওপর।যেখানে শিখবেন: পর্ব ২২
import std;ইমপোর্ট এস-টি-ডি
C++23-এ আসা standard library module. এক লাইনে পুরো standard library পাওয়া যায়, macro ছাড়া; ব্যবহার করতে toolchain-এর module সমর্থন লাগে।যেখানে শিখবেন: পর্ব ৪২
Imported targetইমপোর্টেড টার্গেট
বাইরে থেকে আসা library-র জন্য CMake-এর target; ভেতরে include ফোল্ডার, library ফাইল আর flag আগে থেকে ভরা থাকে।যেখানে শিখবেন: পর্ব ৪৭
In-source buildইন-সোর্স বিল্ড
source ফোল্ডারের ভেতরেই CMake চালানো, ফলে তৈরি ফাইল source-এর সাথে মিশে যায়। এড়িয়ে চলার মতো অভ্যাস।যেখানে শিখবেন: পর্ব ৪৭
Include guardইনক্লুড গার্ড
#ifndef NAME / #define NAME / #endif দিয়ে header-কে ঘিরে রাখা, যাতে একটি translation unit-এ header-এর লেখা একবারের বেশি না ঢোকে।যেখানে শিখবেন: পর্ব ১১পর্ব ৫৪
Increment / decrement (++ / --)ইনক্রিমেন্ট / ডিক্রিমেন্ট
ভ্যারিয়েবলের মান ১ বাড়ানো বা কমানোর অপারেটর; ++i আগে বাড়িয়ে নতুন মান দেয়, i++ পুরোনো মান দিয়ে তারপর বাড়ায়।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩
Incremental buildইনক্রিমেন্টাল বিল্ড
শুধু যে অংশের উৎস বদলেছে সেটুকু আবার compile ও link করা; বাকি তৈরি ফাইল আগের মতোই ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৪৭
Indirect callইনডিরেক্ট কল
যে ফাংশন-ডাকে লাফের ঠিকানা কোডে স্থির থাকে না, চলার সময় মেমরি থেকে পড়ে নেওয়া হয় — যেমন ফাংশন pointer বা virtual ডাক।যেখানে শিখবেন: পর্ব ২৫
Infinite loopইনফিনিট লুপ
যে লুপের শর্ত কখনো মিথ্যা হয় না, তাই নিজে থেকে থামে না; ভুলে হলে বাগ, আর সার্ভার বা গেমের মূল লুপে ইচ্ছাকৃত।যেখানে শিখবেন: পর্ব ০৮পর্ব ৪৩
Inheritance (is-a)ইনহেরিট্যান্স
একটি class আরেকটি class-এর বিশেষ রূপ — “এটি এক ধরনের …”. যেমন মার্চেন্ট ওয়ালেট এক ধরনের ওয়ালেট। C++-এ পর্ব ২৪-এ বিস্তারিত।যেখানে শিখবেন: পর্ব ০২পর্ব ২৪পর্ব ২৫
Inheriting constructorsইনহেরিটিং কনস্ট্রাক্টরস
using Base::Base; লিখে base-এর constructor-গুলো derived-এ নিয়ে আসা (C++11 থেকে)। derived-এর নতুন data member এতে initialize হয় না, শুধু default member initializer কাজ করে।যেখানে শিখবেন: পর্ব ২৪
Init-captureইনিট-ক্যাপচার
C++14 থেকে [n = expr] লিখে closure-এ নতুন একটি সদস্য বানানো, যার মান expr; std::move দিয়ে জিনিস সরিয়ে আনতে বা আগে থেকে হিসাব করে রাখতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৫৪
Init-statement (if/switch)ইনিট-স্টেটমেন্ট
C++17 থেকে if বা switch-এর বন্ধনীর ভেতরে শর্তের আগে লেখা একটি ঘোষণা, যেমন if (auto x = f(); x > 0); ভ্যারিয়েবলটি শুধু ওই if/else বা switch-এর ভেতরেই থাকে।যেখানে শিখবেন: পর্ব ০৮
Initializationইনিশিয়ালাইজেশন
ভ্যারিয়েবল তৈরির মুহূর্তেই তাকে প্রথম মান দেওয়া; পরে মান বদলানো (assignment) থেকে এটি আলাদা।যেখানে শিখবেন: পর্ব ০৫
inline functionইনলাইন ফাংশন
inline লেখা ফাংশনের definition একাধিক .cpp ফাইলে (সাধারণত header থেকে) থাকতে পারে, যদি সব কপি হুবহু এক হয়। আধুনিক C++-এ এর মূল অর্থ এটাই; সত্যিই ডাকের জায়গায় কোড বসানো হবে কি না, তা compiler নিজে ঠিক করে। optimizer ডাকের জায়গায় ফাংশনের কোড বসিয়ে দিলে তাকেও inline করা বলে — lambda আর function object-এ এটি সহজে ঘটে।যেখানে শিখবেন: পর্ব ০৯পর্ব ১১পর্ব ২০
inline variableইনলাইন ভ্যারিয়েবল
C++17 থেকে আসা inline চিহ্নিত ভ্যারিয়েবল। Header-এ সংজ্ঞা রাখলেও পুরো প্রোগ্রামে একটিই বস্তু থাকে, extern আর আলাদা .cpp লাগে না।যেখানে শিখবেন: পর্ব ১১
Inliningইনলাইনিং
compiler-এর একটি optimization: ফাংশন ডাকার জায়গায় ফাংশনের শরীরটাই বসিয়ে দেওয়া। ডাকার খরচ বাঁচে আর আশপাশের কোডের সাথে মিলিয়ে আরও optimization সম্ভব হয়। inline keyword এটি বাধ্য করে না।যেখানে শিখবেন: পর্ব ৪৯
Inorder traversalইনঅর্ডার ট্রাভার্সাল
binary tree-এর node দেখার একটি ক্রম: আগে বাঁ দিকের subtree, তারপর node নিজে, তারপর ডান দিকের subtree. BST-তে এটি key-গুলো সাজানো ক্রমে দেয়।যেখানে শিখবেন: পর্ব ৫৫
Input iteratorইনপুট ইটারেটর
সবচেয়ে কম ক্ষমতার পড়ার iterator: পড়া, এগোনো আর তুলনা — পথটি একবারই হাঁটা যায়, যেমন stream থেকে পড়া।যেখানে শিখবেন: পর্ব ৩২
Input validationইনপুট ভ্যালিডেশন
বাইরে থেকে আসা ডেটা ব্যবহারের আগে যাচাই করা — ধরন ঠিক আছে কি না, সীমার ভেতরে কি না, দরকারি সব অংশ আছে কি না।যেখানে শিখবেন: পর্ব ১৯
insert_or_assignইনসার্ট-অর-অ্যাসাইন
C++17 থেকে map-এর member ফাংশন: চাবি না থাকলে ঢোকায়, থাকলে মান বদলে দেয়। ফেরত দেওয়া bool বলে, নতুন ঢোকানো হলো নাকি পুরোনোটা বদলানো হলো।যেখানে শিখবেন: পর্ব ৩১
Insertion operator (<<)ইনসারশন অপারেটর
Output stream-এ মান ঢোকানোর অপারেটর, যেমন std::cout << x. প্রতিটি টাইপের জন্য আলাদা সংস্করণ আছে, আর এটি stream-টিই ফেরত দেয়, তাই চেইন করা যায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ২৩
Instanceইনস্ট্যান্স
কোনো class থেকে বানানো একটি নির্দিষ্ট object; একই class-এর প্রতিটি instance-এর নিজের আলাদা ডেটা থাকে।যেখানে শিখবেন: পর্ব ২০
Integer divisionইন্টিজার ডিভিশন
দুটি পূর্ণসংখ্যা ভাগ করলে ফলও পূর্ণসংখ্যা হয়, দশমিক অংশ কেটে ফেলা হয়; যেমন 5 / 2 হলো 2যেখানে শিখবেন: পর্ব ০৫পর্ব ০৬পর্ব ৫৩
Integration testইন্টিগ্রেশন টেস্ট
কয়েকটি আসল অংশ (যেমন class আর ফাইল বা ডেটাবেস) একসাথে ঠিকভাবে কাজ করে কি না, তা যাচাইয়ের টেস্ট।যেখানে শিখবেন: পর্ব ৪৮
Interactive problemইন্টারঅ্যাকটিভ প্রবলেম
এমন কনটেস্ট সমস্যা, যেখানে জাজ আপনার প্রোগ্রামের প্রতিটি উত্তর দেখে পরের ইনপুট দেয়; তাই প্রতিটি আউটপুটের পরে flush করতেই হয়।যেখানে শিখবেন: পর্ব ৫০
Interfaceইন্টারফেস
একটি object বাইরের দুনিয়াকে যে কাজগুলোর প্রতিশ্রুতি দেয় — কোন কাজ ডাকা যায়, কী দিতে হয়, কী ফেরত আসে। ভেতরে কীভাবে কাজটা হয়, সেটা interface-এর অংশ নয়।যেখানে শিখবেন: পর্ব ০২পর্ব ১৯পর্ব ২৬
Interface libraryইন্টারফেস লাইব্রেরি
CMake-এর এমন target যা নিজে কিছু compile করে না, শুধু ব্যবহারকারীকে include ফোল্ডার আর নিয়ম দেয় — header-only library-র জন্য।যেখানে শিখবেন: পর্ব ৪৭
Interface Segregation Principle (ISP)ইন্টারফেস সেগ্রিগেশন প্রিন্সিপল
কাউকে এমন ফাংশনের ওপর নির্ভর করতে বাধ্য করা যাবে না, যা সে ব্যবহার করে না; তাই একটি মোটা interface-এর বদলে কয়েকটি ছোট, নির্দিষ্ট interface.যেখানে শিখবেন: পর্ব ২৭পর্ব ৫৪
Internal linkageইন্টারনাল লিংকেজ
যে নাম শুধু নিজের translation unit-এর ভেতরে চেনা যায়, অন্য ফাইলের linker-তালিকায় যায় না। anonymous namespace, static, আর namespace-স্তরের const/constexpr ভ্যারিয়েবল এটি পায়।যেখানে শিখবেন: পর্ব ১১
Introsortইন্ট্রোসর্ট
David Musser-এর ১৯৯৭ সালের sorting algorithm: quicksort দিয়ে শুরু, recursion বেশি গভীর হলে heapsort-এ চলে যায়, আর ছোট টুকরোয় insertion sort; সবচেয়ে খারাপ ক্ষেত্রেও O(n log n). বেশিরভাগ std::sort এর কোনো রূপ।যেখানে শিখবেন: পর্ব ৩৩
Invalidationইনভ্যালিডেশন
container বদলানোর ফলে তার ভেতরের দিকে তাকানো pointer, reference, iterator বা view আর ব্যবহারযোগ্য না থাকা; সেগুলো দিয়ে পড়া undefined behavior.যেখানে শিখবেন: পর্ব ১৪
Invariantইনভ্যারিয়েন্ট
একটি নিয়ম যা object-এর জীবনভর সবসময় সত্য থাকতে হবে — যেমন “ব্যালান্স কখনো শূন্যের নিচে নামবে না”. object-এর প্রতিটি কাজ এই নিয়ম রক্ষা করে।যেখানে শিখবেন: পর্ব ০২পর্ব ১৯পর্ব ২০
is-a relationshipইজ-এ রিলেশনশিপ
“এটি এক ধরনের …” সম্পর্ক — যেমন সঞ্চয়ী হিসাব এক ধরনের ব্যাংক হিসাব। C++-এ public inheritance দিয়ে লেখা হয়; has-a (কিছু আছে) সম্পর্কের জন্য composition.যেখানে শিখবেন: পর্ব ২৪পর্ব ২৭
Iterationইটারেশন
লুপের দেহ একবার পুরো চলা; ১০ বার চলা লুপে ১০টি iteration.যেখানে শিখবেন: পর্ব ০৮
Iteratorইটারেটর
container-এর উপাদানগুলোর ওপর দিয়ে একটি একটি করে চলার জন্য pointer-এর মতো একটি বস্তু।যেখানে শিখবেন: পর্ব ০৫পর্ব ০৬পর্ব ০৮
Iterator categoryইটারেটর ক্যাটাগরি
iterator কী কী পারে, তার ধাপ: input, output, forward, bidirectional, random access, contiguous. algorithm ঘোষণা করে সে কোন ধাপ চায়।যেখানে শিখবেন: পর্ব ৩২
Iterator invalidationইটারেটর ইনভ্যালিডেশন
container বদলানোর পরে (যেমন reallocation বা erase) তার উপাদানের দিকে রাখা iterator, pointer বা reference অকেজো হয়ে যাওয়া। এরপর সেগুলো ব্যবহার করা undefined behavior.যেখানে শিখবেন: পর্ব ১৩পর্ব ১৮পর্ব ৩০
Iterator pairইটারেটর পেয়ার
ক্লাসিক STL-এর রীতি, যেখানে algorithm-কে শুরু আর শেষের দুটি iterator আলাদা করে দিতে হয়; দুটি ভিন্ন container থেকে দিলে compiler ধরে না, ফল undefined behavior.যেখানে শিখবেন: পর্ব ৩৫

J

join()জয়েন
thread-এর member function — যে thread ডাকে, সে ওই thread-এর কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করে। join-এর পর thread-টির ফল নিরাপদে পড়া যায়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫২
Joinableজয়নেবল
যে std::thread object এখনো একটি চলমান (বা শেষ হলেও join না-করা) thread ধরে আছে। joinable অবস্থায় std::thread ধ্বংস হলে std::terminate চলে।যেখানে শিখবেন: পর্ব ৪৫
JSONজেসন
JavaScript Object Notation — চাবি-মান, তালিকা আর সংখ্যা লেখার একটি প্রচলিত লেখা-ভিত্তিক ফরম্যাট; বিভিন্ন প্রোগ্রাম ও ওয়েব API-এর মধ্যে ডেটা আদান-প্রদানে ব্যবহৃত।যেখানে শিখবেন: পর্ব ৫১

K

Key-value pairকি-ভ্যালু পেয়ার
একটি চাবি আর তার সাথে যুক্ত মানের জোড়া, যেমন রোল নম্বর আর ফল। std::map-এর প্রতিটি উপাদান একটি std::pair, যার first হলো চাবি (const) আর second হলো মান।যেখানে শিখবেন: পর্ব ৩১
KISS (Keep It Simple)কিস
একই কাজের কয়েকটি সমাধানের মধ্যে সবচেয়ে সরল আর সহজে বোঝা যায় এমনটি বেছে নেওয়ার নীতি।যেখানে শিখবেন: পর্ব ২৭

L

Lambdaল্যাম্বডা
কোডের মাঝখানেই নাম ছাড়া লেখা একটি ছোট ফাংশন। C++11 থেকে আছে, আর সাধারণত algorithm-কে নিয়ম বলে দিতে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ০১পর্ব ১৫পর্ব ১৮
Lambda calculusল্যাম্বডা ক্যালকুলাস
১৯৩০-এর দশকে Alonzo Church-এর তৈরি গাণিতিক ব্যবস্থা, যেখানে সব হিসাব শুধু নাম-ছাড়া ফাংশন তৈরি ও প্রয়োগ দিয়ে প্রকাশ করা হয়; প্রোগ্রামিংয়ের lambda নামটি এখান থেকেই।যেখানে শিখবেন: পর্ব ৩৪
Latencyলেটেন্সি
একটি কাজ শুরু থেকে শেষ হতে যত সময় লাগে — যেমন একটি অনুরোধের উত্তর আসতে কত মিলিসেকেন্ড। ব্যবহারকারীর কাছে “গতি” মানে সাধারণত এটাই।যেখানে শিখবেন: পর্ব ৪৯
Launch policyলঞ্চ পলিসি
std::async-এর প্রথম argument: std::launch::async মানে যেন নতুন thread-এ এখনই চলবে; std::launch::deferred মানে get() বা wait() ডাকলে ডাকার thread-এই চলবে। না দিলে দুটোর যেকোনো একটি।যেখানে শিখবেন: পর্ব ৪৬
Law of Demeterল অফ ডিমিটার
একটি object শুধু তার কাছের সঙ্গীদের (নিজের সদস্য, প্যারামিটার, নিজের বানানো object) সাথে কথা বলবে; a.b().c().d() ধরনের লম্বা শিকল এড়াবে। একে principle of least knowledge-ও বলে।যেখানে শিখবেন: পর্ব ২৭
Layered architectureলেয়ার্ড আর্কিটেকচার
সিস্টেমকে স্তরে ভাগ করার নকশা (যেমন UI → service → domain → storage), যেখানে প্রতিটি স্তর শুধু নিচের স্তরকে চেনে; ফলে একটি স্তর বদলালে বাকিগুলো অক্ষত থাকে।যেখানে শিখবেন: পর্ব ৫১
Lazy evaluationলেজি ইভ্যালুয়েশন
অলস হিসাব: মান যখন সত্যিই চাওয়া হয়, তখনই হিসাব করা, আগে নয়। C++-এর view এভাবে কাজ করে, তাই অসীম ধারার ওপরও পাইপলাইন বানানো যায়।যেখানে শিখবেন: পর্ব ৩৫পর্ব ৪২পর্ব ৫২
Level-order traversalলেভেল-অর্ডার ট্রাভার্সাল
tree-এর node-গুলো root থেকে শুরু করে স্তরে স্তরে, প্রতিটি স্তরে বাঁ থেকে ডানে দেখা — queue দিয়ে করা BFS.যেখানে শিখবেন: পর্ব ৫৫
Lexicographic orderলেক্সিকোগ্রাফিক অর্ডার
অভিধানের মতো ক্রম: প্রথম যে জায়গায় দুটি লেখা আলাদা, সেখানকার অক্ষরের মান তুলনা করে কে আগে তা ঠিক হয়। std::string-এ এই তুলনা হয় char-এর সংখ্যা-মান দিয়ে, তাই 'Z' আসে 'a'-এর আগে।যেখানে শিখবেন: পর্ব ১৪পর্ব ২৩পর্ব ৫০
libstdc++ / libc++লিব-এস-টি-ডি-সি-প্লাস-প্লাস / লিব-সি-প্লাস-প্লাস
C++ standard library-র দুটি প্রধান বাস্তবায়ন। libstdc++ আসে GCC-র সাথে, libc++ আসে LLVM/Clang প্রজেক্ট থেকে (macOS-এ ডিফল্ট)। MSVC-র নিজস্ব আলাদা STL আছে।যেখানে শিখবেন: পর্ব ০৩
Lifetimeলাইফটাইম
একটি object মেমরিতে কখন জন্মায় আর কখন ধ্বংস হয় — সেই সময়কাল। Local ভ্যারিয়েবলের lifetime তার ব্লক শেষ হলেই শেষ।যেখানে শিখবেন: পর্ব ০৯পর্ব ১৭পর্ব ১৮
Lifetime extensionলাইফটাইম এক্সটেনশন
একটি temporary সরাসরি const T& বা T&& reference-এর সাথে bind হলে তার আয়ু reference-এর সমান হওয়ার নিয়ম; ফাংশনের ফেরত দেওয়া reference-এর মধ্য দিয়ে এটি খাটে না।যেখানে শিখবেন: পর্ব ১০পর্ব ১৮পর্ব ৫২
LIFO (Last In, First Out)লাইফো
যে সবার শেষে এসেছে, সে-ই সবার আগে বের হবে — থালার স্তূপের মতো। stack এই নিয়মে চলে।যেখানে শিখবেন: পর্ব ৩০
Linked listলিংকড লিস্ট
প্রতিটি উপাদান আলাদা জায়গায় থাকে আর পরেরটির ঠিকানা মনে রাখে — শিকলের মতো। মাঝখানে ঢোকানো সস্তা, কিন্তু খোঁজা আর হাঁটা ধীর, কারণ ডেটা পাশাপাশি নেই। C++-এ std::list.যেখানে শিখবেন: পর্ব ১৩পর্ব ৫৫
Linkerলিংকার
Compile হওয়া আলাদা আলাদা টুকরো আর library-র দরকারি অংশ জোড়া দিয়ে একটি সম্পূর্ণ, চালানো যায় এমন প্রোগ্রাম তৈরি করে যে টুল।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ৪৭
Linker errorলিংকার এরর
সব ফাইল compile হয়ে যাওয়ার পর জোড়া দেওয়ার সময়কার ভুল। সবচেয়ে পরিচিত রূপ: undefined reference to ... — অর্থাৎ ঘোষণা আছে, সংজ্ঞা পাওয়া যায়নি।যেখানে শিখবেন: পর্ব ০৩পর্ব ১১পর্ব ২৮
Liskov Substitution Principle (LSP)লিসকভ সাবস্টিটিউশন প্রিন্সিপল
Barbara Liskov-এর নীতি: base টাইপের জন্য লেখা কোডে derived object দিলেও সেটি ঠিকঠাক চলবে, কোনো চমক ছাড়া। SOLID-এর L; Square/Rectangle এর ভাঙার বিখ্যাত উদাহরণ।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৭পর্ব ৫৩
Literalলিটারাল
কোডে সরাসরি লেখা মান, যেমন 42, 3.14, 'A' বা "hello"; প্রতিটি literal-এরও নিজস্ব টাইপ আছে।যেখানে শিখবেন: পর্ব ০৫
Literal typeলিটারাল টাইপ
যে টাইপের object compile-এর সময়ে তৈরি ও ব্যবহার করা যায়: int, double, pointer, reference, আর constexpr constructor-ওয়ালা উপযুক্ত class.যেখানে শিখবেন: পর্ব ৩৯
LLDBএলএলডিবি
LLVM প্রজেক্টের debugger, macOS-এ ডিফল্ট; কমান্ডগুলো GDB-র কাছাকাছি।যেখানে শিখবেন: পর্ব ৪৮
Load factorলোড ফ্যাক্টর
hash table-এ গড়ে প্রতি bucket-এ কয়টি উপাদান: size() ÷ bucket_count(). std::unordered_map-এ এটি max_load_factor (ডিফল্ট 1.0) ছাড়ালে table বড় হয়।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৫
Local variableলোকাল ভ্যারিয়েবল
ফাংশন বা ব্লকের ভেতরে বানানো ভ্যারিয়েবল; শুধু সেখান থেকেই দেখা যায়, আর ব্লক শেষ হলে মুছে যায়।যেখানে শিখবেন: পর্ব ০৯পর্ব ১৮
Localeলোকেল
দেশ ও ভাষা অনুযায়ী লেখার নিয়মের একটি সেট — দশমিক চিহ্ন ডট না কমা, হাজারের বিভাজক কী, তারিখ কীভাবে লেখা হয়। C++ stream-এর নিজস্ব locale থাকে; std::format ডিফল্টে locale মানে না।যেখানে শিখবেন: পর্ব ০৭পর্ব ১৪পর্ব ৪১
Lock orderingলক অর্ডারিং
সব thread একাধিক mutex সবসময় একই নির্দিষ্ট ক্রমে নেবে — এই নিয়ম মানলে চক্রাকার অপেক্ষা, তাই deadlock, হতে পারে না।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৪
Lock-freeলক-ফ্রি
তালা (mutex) ছাড়া, শুধু atomic নির্দেশ দিয়ে কাজ করা; কোনো thread থেমে গেলেও বাকিরা এগোতে পারে। is_lock_free() জানায় একটি atomic টাইপ এভাবে চলে কি না।যেখানে শিখবেন: পর্ব ৪৬
Loggingলগিং
প্রোগ্রাম চলার সময় কী ঘটছে তা সময়সহ ফাইল বা stderr-এ লিখে রাখা, যাতে পরে, বিশেষ করে crash-এর পরে, পড়া যায়।যেখানে শিখবেন: পর্ব ৪৮
Logical operatorলজিক্যাল অপারেটর
সত্য/মিথ্যা মান জোড়ার অপারেটর: && (এবং), || (অথবা) আর ! (না).যেখানে শিখবেন: পর্ব ০৬
Lookup tableলুকআপ টেবিল
আগে থেকে হিসাব করে রাখা উত্তরের তালিকা; প্রতিবার হিসাব না করে index দিয়ে সরাসরি উত্তর পড়া হয়। constexpr দিয়ে compile-এর সময়েই বানানো যায়।যেখানে শিখবেন: পর্ব ৩৯
Loopলুপ
একটি শর্ত যতক্ষণ সত্য বা একটি তালিকা যতক্ষণ শেষ না হয়, ততক্ষণ একই কোড বারবার চালানোর কাঠামো।যেখানে শিখবেন: পর্ব ০৮
Loop invariantলুপ ইনভ্যারিয়েন্ট
এমন একটি কথা, যা লুপের প্রতিটি iteration-এর শুরু ও শেষে সত্য থাকে (যেমন "sum হলো এ পর্যন্ত দেখা মানের যোগফল"); লুপ সঠিক কি না যাচাইয়ের হাতিয়ার।যেখানে শিখবেন: পর্ব ০৮
Loop unrollingলুপ আনরোলিং
লুপের প্রতিটি ধাপে কয়েকটি পুনরাবৃত্তির কাজ একসাথে লিখে লুপের পরীক্ষা কমানো। optimization চালু থাকলে compiler দরকারমতো নিজেই করে; হাতে করলে কোড লম্বা আর ভুলের ঝুঁকি বাড়ে।যেখানে শিখবেন: পর্ব ৪৯
lower_boundলোয়ার বাউন্ড
সাজানো ক্রমে প্রথম যে উপাদানটি দেওয়া চাবির চেয়ে ছোট নয় (>=), তার iterator দেয়। map আর set-এ member হিসেবে আছে, O(log n).যেখানে শিখবেন: পর্ব ৩১
LRU cacheএল-আর-ইউ ক্যাশ
Least Recently Used — নির্দিষ্ট আকারের cache, যেখানে জায়গা ভরে গেলে সবচেয়ে দীর্ঘ সময় ব্যবহার না হওয়া উপাদানটি বাদ যায়। C++-এ সাধারণত std::list আর std::unordered_map মিলিয়ে বানানো হয়।যেখানে শিখবেন: পর্ব ৫৫
lvalueএল-ভ্যালু
নাম ও স্থায়ী ঠিকানা আছে এমন expression, যেমন একটি ভ্যারিয়েবল; সাধারণ T& reference এর সাথেই bind হয়।যেখানে শিখবেন: পর্ব ১০পর্ব ৩৬পর্ব ৫৪

M

Machine codeমেশিন কোড
CPU সরাসরি যে নির্দেশ বোঝে ও চালায় — 0 আর 1-এর সারি। C++ কোড compile হয়ে শেষে এই রূপ নেয়।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩
Macroম্যাক্রো
#define দিয়ে বানানো preprocessor-এর লেখা-বদলের নিয়ম। compile-এর আগে নামটি অক্ষরে অক্ষরে বদলে বসে; টাইপ, scope বা namespace কিছুই মানে না।যেখানে শিখবেন: পর্ব ২৮পর্ব ৩৯পর্ব ৪২
Magic numberম্যাজিক নাম্বার
কোডে নাম ছাড়া সরাসরি বসানো সংখ্যা, যার অর্থ লেখা দেখে বোঝা যায় না; নামযুক্ত ধ্রুবক দিয়ে বদলানো উচিত।যেখানে শিখবেন: পর্ব ০৫পর্ব ১২পর্ব ৩৮
main functionমেইন ফাংশন
প্রতিটি সাধারণ C++ প্রোগ্রামে ঠিক একটি থাকা ফাংশন, যেখান থেকে চলা শুরু হয়। এটি int ফেরত দেয়; শেষে return না থাকলে return 0 ধরে নেওয়া হয়।যেখানে শিখবেন: পর্ব ০৪
makeমেক
১৯৭৬ সালে Bell Labs-এ তৈরি build টুল। Makefile পড়ে, timestamp মিলিয়ে শুধু পুরোনো হয়ে যাওয়া ফাইল আবার বানায়।যেখানে শিখবেন: পর্ব ৪৭
Makefileমেকফাইল
make টুলের রেসিপি-ফাইল: কোন ফাইল বানাতে কোন ফাইল লাগে আর কোন কমান্ড চালাতে হয়। CMake এটি নিজেই লিখে দিতে পারে।যেখানে শিখবেন: পর্ব ৪৭
malloc / freeম্যালক / ফ্রি
C-এর heap ফাংশন: malloc শুধু নির্দিষ্ট বাইট জায়গা দেয় (constructor চালায় না), free সেই জায়গা ফেরত নেয় (destructor চালায় না)।যেখানে শিখবেন: পর্ব ১৬
Manipulatorম্যানিপুলেটর
Stream-এ << বা >> দিয়ে পাঠানো একটি বিশেষ জিনিস, যা কিছু ছাপে না বরং stream-এর আচরণ বদলায় — যেমন std::setw, std::fixed, std::left. বেশিরভাগই stream-এর মনে থেকে যায় (sticky).যেখানে শিখবেন: পর্ব ০৭পর্ব ৫২
Materialize (a view)ম্যাটেরিয়ালাইজ
অলস view-এর ফলগুলো সত্যিই হিসাব করে একটি আসল container-এ (যেমন vector) জমা করা, যাতে ডেটার একটি মালিক থাকে।যেখানে শিখবেন: পর্ব ৩৫
Max-heap / Min-heapম্যাক্স-হিপ / মিন-হিপ
max-heap-এ root-এ থাকে সবচেয়ে বড় মান, min-heap-এ সবচেয়ে ছোট। std::priority_queue ডিফল্টে max-heap; std::greater দিলে min-heap হয়।যেখানে শিখবেন: পর্ব ৩০পর্ব ৫৫
MCQ (Multiple Choice Question)এম-সি-কিউ
বহুনির্বাচনী প্রশ্ন — কয়েকটি অপশনের মধ্যে থেকে সঠিকটি বেছে নিতে হয়। সাধারণত চারটি অপশন থাকে, যার একটি সঠিক।যেখানে শিখবেন: পর্ব ৫৩
Member functionমেম্বার ফাংশন
class-এর ভেতরে লেখা ফাংশন, যা সেই class-এর object-এর ডেটা নিয়ে কাজ করে। ডাকা হয় ডট দিয়ে, যেমন wallet.deposit(500).যেখানে শিখবেন: পর্ব ০২পর্ব ১২পর্ব ২০
Member initializer listমেম্বার ইনিশিয়ালাইজার লিস্ট
constructor-এর মাথার পরে : দিয়ে শুরু তালিকা, যেমন : d(day), m(month); এখানে member-রা জন্মের মুহূর্তেই মান পায়, body চলার আগে।যেখানে শিখবেন: পর্ব ২১পর্ব ২৪পর্ব ৫২
Memberwise copyমেম্বারওয়াইজ কপি
compiler-এর বানানো copy যা করে: প্রতিটি data member-কে তার নিজের copy নিয়মে, ঘোষণার ক্রমে, একে একে কপি করা।যেখানে শিখবেন: পর্ব ২২
Memoizationমেমোইজেশন
একটি ফাংশন একই ইনপুটে আগে যে ফল দিয়েছে তা জমিয়ে রেখে পরের বার আবার হিসাব না করে সরাসরি ফেরত দেওয়া — top-down DP-র মূল কৌশল।যেখানে শিখবেন: পর্ব ৫৫
Memory addressমেমরি অ্যাড্রেস
মেমরির প্রতিটি বাইটের একটি ক্রমিক নম্বর; কোনো object মেমরির কোথায় আছে, তা এই নম্বর দিয়ে বোঝানো হয়।যেখানে শিখবেন: পর্ব ১৫
Memory fragmentationমেমরি ফ্র্যাগমেন্টেশন
heap-এ ফাঁকা জায়গা ছোট ছোট টুকরোয় ছড়িয়ে থাকা, যাতে মোট ফাঁকা অনেক থাকলেও একটি বড় টানা block দেওয়া যায় না।যেখানে শিখবেন: পর্ব ১৬
Memory hierarchyমেমরি হায়ারার্কি
register, L1, L2, L3 cache, RAM, SSD — দ্রুত কিন্তু ছোট থেকে ধীর কিন্তু বড় মেমরির স্তরের সিঁড়ি। প্রতিটি নিচের ধাপে পড়ার সময় বহু গুণ বাড়ে।যেখানে শিখবেন: পর্ব ৪৯
Memory leakমেমরি লিক
heap থেকে নেওয়া মেমরি কখনো ফেরত না দেওয়া, অথচ তার ঠিকানাও হারিয়ে ফেলা — ফলে প্রোগ্রাম চলতে চলতে মেমরি খরচ বাড়তেই থাকে।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭
Memory modelমেমরি মডেল
ভাষার সেই নিয়মগুচ্ছ, যা বলে একাধিক thread-এর পড়া-লেখা একে অপরের কাছে কখন আর কোন ক্রমে দৃশ্যমান হবে। C++11-এ প্রথম standard-এ যোগ হয়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৬
Memory orderingমেমরি অর্ডারিং
একটি atomic কাজের সাথে দেওয়া std::memory_order মান (seq_cst, acquire, release, acq_rel, relaxed), যা বলে আশেপাশের অন্য পড়া-লেখার ক্রম কতটা রক্ষা করতে হবে।যেখানে শিখবেন: পর্ব ৪৬
Memory safetyমেমরি সেফটি
প্রোগ্রাম কখনো ভুল মেমরিতে হাত দেবে না — এই নিশ্চয়তা: সীমার বাইরে পড়া-লেখা নেই, মুছে ফেলা মেমরির ব্যবহার নেই। Rust, Java, Python এটি ডিফল্টভাবে দেয়; C ও C++-এ এটি নির্ভর করে লেখার ধাঁচ আর টুলের ওপর।যেখানে শিখবেন: পর্ব ০১পর্ব ১৮পর্ব ৪৩
Memory-mapped fileমেমরি-ম্যাপড ফাইল
OS যখন একটি ফাইলকে প্রোগ্রামের ঠিকানার জায়গায় বসিয়ে দেয়, যাতে ফাইলটি array-র মতো পড়া যায়; POSIX-এ mmap, Windows-এ CreateFileMapping. standard C++-এ নেই।যেখানে শিখবেন: পর্ব ৪৪
memory_order_relaxedমেমরি অর্ডার রিল্যাক্সড
সবচেয়ে দুর্বল ordering: কাজটি নিজে atomic থাকে, কিন্তু অন্য কোনো ডেটার সাথে ক্রমের নিশ্চয়তা নেই। খাঁটি counter-এর জন্য উপযুক্ত।যেখানে শিখবেন: পর্ব ৪৬
MemorySanitizer (MSan)মেমরি স্যানিটাইজার
Clang-এর টুল (-fsanitize=memory), যা মান না দেওয়া মেমরি পড়ে সিদ্ধান্ত নেওয়া বা ছাপার মুহূর্ত ধরে, আর জানায় মানটি কোথা থেকে এসেছিল।যেখানে শিখবেন: পর্ব ৪৩
Message passingমেসেজ পাসিং
একটি object আরেকটিকে কাজ করতে অনুরোধ পাঠায় (বার্তা), আর গ্রহণকারী নিজেই ঠিক করে কীভাবে সাড়া দেবে। C++-এ এটি সাধারণত একটি member function ডাকা।যেখানে শিখবেন: পর্ব ০২
Method chainingমেথড চেইনিং
member function যখন return *this দিয়ে একই object ফেরত দেয়, তখন একটির পর একটি ডাক এক লাইনে জোড়া দেওয়া যায়, যেমন w.add(5).add(3)যেখানে শিখবেন: পর্ব ২০
Microbenchmarkমাইক্রোবেঞ্চমার্ক
একটি ছোট ফাংশন বা কোডের টুকরোর গতি আলাদা করে বারবার চালিয়ে মাপা। দরকারি, কিন্তু আসল প্রোগ্রামের পরিবেশ থেকে আলাদা বলে এর ফল সাবধানে পড়তে হয়।যেখানে শিখবেন: পর্ব ৪৯
Milestoneমাইলস্টোন
প্রজেক্টের একটি নির্দিষ্ট ধাপ, যার শেষে দেখানো যায় এমন একটি ফল থাকে। ভালো নিয়মে প্রতিটি মাইলস্টোনের শেষে প্রোগ্রাম compile হয় ও চলে।যেখানে শিখবেন: পর্ব ১৯
Minimal reproducible exampleমিনিমাল রিপ্রোডিউসিবল এক্সাম্পল
বাগটি এখনো ঘটায় এমন সবচেয়ে ছোট কোড ও ইনপুট; কারণ খুঁজতে আর অন্যকে জিজ্ঞেস করতে সবচেয়ে কাজের।যেখানে শিখবেন: পর্ব ৪৮
Mockমক
এক ধরনের test double, যে মনে রাখে কে কোন argument দিয়ে কতবার ডাকল, যাতে টেস্ট সেই ডাকগুলো যাচাই করতে পারে।যেখানে শিখবেন: পর্ব ৪৮
Mock interviewমক ইন্টারভিউ
আসল ইন্টারভিউর মতো পরিবেশে অনুশীলনের ইন্টারভিউ — বন্ধু, mentor বা AI প্রশ্ন করে, শেষে মূল্যায়ন দেয়।যেখানে শিখবেন: পর্ব ৫৫
Module implementation unitমডিউল ইমপ্লিমেন্টেশন ইউনিট
module নাম; (export ছাড়া) দিয়ে শুরু হওয়া ফাইল, যেখানে module-এর ফাংশনগুলোর ভেতরের কোড থাকে। এটি নিজে নতুন কিছু export করে না।যেখানে শিখবেন: পর্ব ৪২
Module interface unitমডিউল ইন্টারফেস ইউনিট
export module নাম; দিয়ে শুরু হওয়া ফাইল, যা module-এর বাইরের চেহারা ঠিক করে। শুধু এখানে export করা নামই import-কারীরা দেখতে পায়।যেখানে শিখবেন: পর্ব ৪২
Modulo biasমডুলো বায়াস
rand() % n-এর পক্ষপাত: সম্ভাব্য মানের মোট সংখ্যা n দিয়ে বিভাজ্য না হলে কিছু ভাগশেষ অন্যগুলোর চেয়ে বেশিবার আসে; distribution এটি দূর করে।যেখানে শিখবেন: পর্ব ৪১
Modulo operator (%)মডুলো অপারেটর
দুটি পূর্ণসংখ্যা ভাগ করে ভাগশেষ দেয়; C++11 থেকে ভাগশেষের চিহ্ন বাম পাশের সংখ্যার মতো, তাই -7 % 2 হয় -1.যেখানে শিখবেন: পর্ব ০৬
Monadic operations (and_then, transform, or_else)মোনাডিক অপারেশন
C++23-এ optional আর expected-এর ফাংশনগুলো, যা “মান থাকলে পরের ধাপ চালাও, না থাকলে খালিটাই এগিয়ে দাও” নিয়মে কয়েকটি ধাপ শিকলের মতো জুড়ে দেয়। নেস্ট করা if-এর দরকার কমায়।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৩৮
Monotonic predicateমনোটোনিক প্রেডিকেট
এমন হ্যাঁ/না শর্ত, যা কোনো মানে সত্য হলে তার চেয়ে বড় সব মানেও সত্য (বা উল্টোটা); এমন শর্তেই উত্তরের ওপর binary search চালানো যায়।যেখানে শিখবেন: পর্ব ৫০
Most vexing parseমোস্ট ভেক্সিং পার্স
C++ ব্যাকরণের একটি বিভ্রান্তি: ভ্যারিয়েবল বানানোর মতো দেখতে লেখাকে compiler ফাংশন ঘোষণা হিসেবে পড়ে; সবচেয়ে সরল উদাহরণ int x();যেখানে শিখবেন: পর্ব ০৫পর্ব ২১
Move assignment operatorমুভ অ্যাসাইনমেন্ট অপারেটর
T& operator=(T&&) — আগে থেকে থাকা object নিজের পুরোনো রিসোর্স ছেড়ে দিয়ে source-এর রিসোর্স নিয়ে নেয়, কপি না করে।যেখানে শিখবেন: পর্ব ২২
Move constructorমুভ কনস্ট্রাক্টর
X(X&&) রূপের constructor, যা অন্য object-এর ভেতরের রিসোর্স কপি না করে নিজের কাছে সরিয়ে নেয়; কপির চেয়ে অনেক সস্তা।যেখানে শিখবেন: পর্ব ২১পর্ব ২২পর্ব ৫৩
Move semanticsমুভ সিমান্টিকস
C++11-এর ব্যবস্থা, যেখানে একটি বস্তুর ভেতরের রিসোর্স (যেমন vector-এর মেমরি ব্লক) কপি না করে আরেকটি বস্তুর কাছে হস্তান্তর করা যায়। বিস্তারিত পর্ব ৩৬-এ।যেখানে শিখবেন: পর্ব ১৩পর্ব ২২পর্ব ৩৬
Move-only typeমুভ-অনলি টাইপ
যে টাইপ কপি করা যায় না, শুধু move করা যায় — যেমন std::unique_ptr, std::thread, std::fstream; একটি রিসোর্সের একজনই মালিক নিশ্চিত করতে।যেখানে শিখবেন: পর্ব ১৭পর্ব ২২পর্ব ৩৪
Moved-from stateমুভড-ফ্রম স্টেট
move হয়ে যাওয়ার পর source object-এর অবস্থা; standard library-র টাইপ এটিকে বৈধ কিন্তু অনির্দিষ্ট রাখে — ধ্বংস করা বা নতুন মান দেওয়া নিরাপদ, ভেতরের মান ধরে নেওয়া নয়।যেখানে শিখবেন: পর্ব ২২পর্ব ৩৬পর্ব ৫২
MSBuildএমএসবিল্ড
Microsoft-এর build টুল, যা Visual Studio-র .sln ও .vcxproj ফাইল দেখে MSVC দিয়ে compile করে।যেখানে শিখবেন: পর্ব ৪৭
MSVCএম-এস-ভি-সি
Microsoft-এর C/C++ compiler, যা Visual Studio আর Build Tools-এর সাথে আসে। কমান্ডের নাম cl, আর এর flag লেখা হয় /W4, /std:c++20-এর মতো করে।যেখানে শিখবেন: পর্ব ০৩
Multi-paradigmমাল্টি-প্যারাডাইম
যে ভাষা একাধিক চিন্তার ধরন সমর্থন করে — যেমন C++-এ procedural, object-oriented, generic আর functional-ধাঁচ, সব একসাথে ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ০১পর্ব ২৭পর্ব ৫৪
Multidimensional subscript operatorমাল্টিডাইমেনশনাল সাবস্ক্রিপ্ট
C++23 থেকে operator[] একাধিক প্যারামিটার নিতে পারে, তাই ম্যাট্রিক্সের ঘর m[i, j] লিখে ধরা যায় — proxy object বা m(i, j) ছাড়াই।যেখানে শিখবেন: পর্ব ৪২
Multiple inheritanceমাল্টিপল ইনহেরিট্যান্স
একটি class-এর একাধিক base class থাকা, যেমন class SmartPhone : public Camera, public Phone. C++ এটি দেয়, Java class-এর জন্য দেয় না। সবচেয়ে নিরাপদ ব্যবহার — data-বিহীন interface জোড়া।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৬
mutableমিউটেবল
data member-এর আগে লেখা একটি শব্দ, যা const member function-এর ভেতরেও সেই member বদলাতে দেয়; cache বা গোনার মতো বাইরের অবস্থার অংশ নয় এমন ডেটার জন্য। lambda-তে () -এর পরে লিখলে closure-এর operator() থেকে const সরে যায়, তাই value-capture করা কপি বদলানো যায় (বাইরের ভ্যারিয়েবল নয়)।যেখানে শিখবেন: পর্ব ২০পর্ব ৩৪পর্ব ৫৪
Mutation testingমিউটেশন টেস্টিং
কোডে ইচ্ছা করে ছোট ভুল (mutant) ঢুকিয়ে দেখা টেস্ট সেটি ধরে কি না; টেস্টেরই মান যাচাইয়ের কৌশল।যেখানে শিখবেন: পর্ব ৪৮
Mutexমিউটেক্স
mutual exclusion — একাধিক thread যেন একই সময়ে একই ডেটায় হাত না দেয়, সেজন্য একটি তালা; একজন lock করলে অন্যরা অপেক্ষা করে।যেখানে শিখবেন: পর্ব ১৭পর্ব ৪৫পর্ব ৪৬
MVP (Minimum Viable Product)এমভিপি
সবচেয়ে ছোট এমন সংস্করণ, যা ব্যবহারকারীর আসল সমস্যার মূল অংশটুকু সমাধান করে। বাড়তি সুবিধা পরে আসে।যেখানে শিখবেন: পর্ব ১৯

N

Naked newনেকেড নিউ
কোনো মালিক-object (container বা smart pointer) ছাড়া সরাসরি new লিখে কাঁচা pointer-এ রাখা; C++ Core Guidelines এটি এড়াতে বলে।যেখানে শিখবেন: পর্ব ১৬পর্ব ৪৩
Name hidingনেম হাইডিং
derived class-এ একটি নাম ঘোষণা করলে base-এর একই নামের সব সদস্য (সব overload সহ) ঢাকা পড়ে, কারণ নাম খোঁজা প্রথম যে scope-এ নামটি পায় সেখানেই থামে। using Base::name; দিয়ে ফেরত আনা যায়।যেখানে শিখবেন: পর্ব ২৪পর্ব ৫৪
Name lookupনেম লুকআপ
কোডে লেখা একটি নাম আসলে কোন ঘোষণাকে বোঝায়, তা compiler-এর খুঁজে বের করার নিয়ম। সাধারণ খোঁজা চলে ভেতরের scope থেকে বাইরের দিকে, প্রথম মিলেই থামে।যেখানে শিখবেন: পর্ব ১১পর্ব ২৪
Name manglingনেম ম্যাঙ্গলিং
Compiler ফাংশনের নামের সাথে তার namespace, class আর parameter-এর টাইপ জুড়ে একটি অনন্য symbol বানায় (যেমন _Z3addii), যাতে একই নামের overload করা ফাংশন linker আলাদা করতে পারে।যেখানে শিখবেন: পর্ব ০৩পর্ব ০৯পর্ব ৫৩
Namespaceনেমস্পেস
নামের একটি আলাদা পরিবার বা ঘর, যাতে বিভিন্ন library-র একই নামের জিনিস সংঘাত না করে। Standard library-র সব নাম থাকে std namespace-এ।যেখানে শিখবেন: পর্ব ০৪পর্ব ১১পর্ব ১৯
Namespace aliasনেমস্পেস অ্যালিয়াস
লম্বা namespace-এর একটি ছোট ডাকনাম, যেমন namespace fs = std::filesystem; এটি নতুন কিছু তৈরি করে না, কোনো নামও খুলে দেয় না।যেখানে শিখবেন: পর্ব ১১পর্ব ৫৪
Narrowing conversionন্যারোয়িং কনভার্শন
এমন টাইপ বদল, যাতে তথ্য হারাতে পারে — যেমন double থেকে int-এ গেলে দশমিক অংশ কেটে যায়।যেখানে শিখবেন: পর্ব ০৫পর্ব ২১পর্ব ৪৩
NDEBUGএন-ডিবাগ
একটি macro; সংজ্ঞায়িত থাকলে assert পুরো মুছে যায়। Release build সাধারণত -DNDEBUG বসায়।যেখানে শিখবেন: পর্ব ৪৭পর্ব ৪৮
Negative markingনেগেটিভ মার্কিং
ভুল উত্তরের জন্য নম্বর কেটে নেওয়ার নিয়ম। এমন পরীক্ষায় আন্দাজ করার আগে প্রত্যাশিত লাভ-ক্ষতি হিসাব করতে হয়।যেখানে শিখবেন: পর্ব ৫৩
Nested loopনেস্টেড লুপ
একটি লুপের দেহের ভেতরে আরেকটি লুপ; বাইরেরটি n বার আর ভেতরেরটি n বার চললে মোট কাজ n x n.যেখানে শিখবেন: পর্ব ০৮পর্ব ৪৯
Nested namespaceনেস্টেড নেমস্পেস
একটি namespace-এর ভেতরে আরেকটি namespace, যেমন shop::billing. C++17 থেকে namespace shop::billing { } লিখে এক লাইনেই বানানো যায়।যেখানে শিখবেন: পর্ব ১১
nested requirementনেস্টেড রিকোয়ারমেন্ট
requires expression-এর ভেতরে requires দিয়ে শুরু শর্ত, যার compile-time মান সত্য হতে হয়। requires শব্দ বাদ দিলে এটি শুধু বৈধতা দেখে।যেখানে শিখবেন: পর্ব ৪০
new expressionনিউ এক্সপ্রেশন
C++-এর new T(...) লেখা: heap-এ একটি T-এর জায়গা নেয়, সেখানে constructor চালিয়ে object বানায়, আর তার ঠিকানা (T*) ফেরত দেয়। new T[n] একসাথে n টি object বানায়।যেখানে শিখবেন: পর্ব ১৬
Newline translationনিউলাইন ট্রান্সলেশন
text mode-এ লেখার সময় '\n'-কে প্ল্যাটফর্মের লাইন-শেষে (Windows-এ \r\n) বদলানো আর পড়ার সময় উল্টো করা। Linux ও macOS-এ কিছুই বদলায় না।যেখানে শিখবেন: পর্ব ৪৪
Ninjaনিনজা
Evan Martin-এর তৈরি দ্রুত build টুল। এর ফাইল মানুষ নয়, CMake-এর মতো generator লেখে; বড় প্রজেক্টে কিছু না বদলালে প্রায় সাথে সাথে কাজ শেষ করে।যেখানে শিখবেন: পর্ব ৪৭
Node handle (extract)নোড হ্যান্ডেল
C++17 থেকে map/set-এর extract() একটি node-কে container থেকে বের করে এনে node handle হিসেবে দেয়। তখন চাবি বদলে আবার insert করা যায়, নতুন মেমরি নেওয়া বা কপি ছাড়াই।যেখানে শিখবেন: পর্ব ৩১
Node-based containerনোড-বেসড কন্টেইনার
যে container প্রতিটি উপাদান heap-এ আলাদা একটি node-এ রাখে আর pointer দিয়ে জোড়ে — যেমন std::list, std::map, std::unordered_map. উপাদানের ঠিকানা স্থির থাকে, কিন্তু cache locality কম।যেখানে শিখবেন: পর্ব ৩০পর্ব ৩১
noexceptনো-এক্সেপ্ট
ফাংশনের প্রতিশ্রুতি যে সে exception ছুড়বে না; তবু ছুড়লে std::terminate চলে। C++11 থেকে destructor ডিফল্টভাবে noexcept.যেখানে শিখবেন: পর্ব ২১পর্ব ২২পর্ব ৩৭
nominal typingনমিনাল টাইপিং
যে ব্যবস্থায় একটি টাইপ কোনো চুক্তি মানে শুধু নাম ধরে ঘোষণা দিলে, যেমন base class থেকে inherit করা বা Rust-এর impl.যেখানে শিখবেন: পর্ব ৪০
Non-fatal assertionনন-ফেটাল অ্যাসারশন
যে যাচাই ব্যর্থতা রিপোর্ট করে কিন্তু টেস্ট চালিয়ে যায়, যেমন EXPECT_EQ বা Catch2-এর CHECK; একবারে কয়েকটি ভুল দেখা যায়।যেখানে শিখবেন: পর্ব ৪৮
Non-owning viewনন-ওনিং ভিউ
এমন বস্তু, যা অন্যের ডেটা দেখায় কিন্তু তার মালিক নয় — ডেটা মুছে গেলে view-টি অকেজো হয়ে যায়। std::span আর std::string_view এর উদাহরণ।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০
Non-type template parameterনন-টাইপ টেমপ্লেট প্যারামিটার
টাইপের বদলে একটি compile-time ধ্রুবক মান নেওয়া template parameter, যেমন template বা std::array-এর 5. মানটি compile-এর সময় জানা থাকতে হয়।যেখানে শিখবেন: পর্ব ২৮পর্ব ২৯
Nothrow guaranteeনো-থ্রো গ্যারান্টি
সবচেয়ে কঠোর exception safety প্রতিশ্রুতি: ফাংশনটি কখনো exception ছোড়ে না, সবসময় সফল হয়। destructor, swap আর ভালো move operation এমন হওয়া উচিত; সাধারণত noexcept দিয়ে ঘোষণা করা হয়।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৫৪
notify_one / notify_allনোটিফাই ওয়ান / নোটিফাই অল
condition_variable-এর দুটি ফাংশন: notify_one অপেক্ষারত একটি thread-কে জাগায়, notify_all সবাইকে জাগায়।যেখানে শিখবেন: পর্ব ৪৫
NRVO (Named Return Value Optimization)এন-আর-ভি-ও
নাম থাকা local ভ্যারিয়েবল ফেরত দেওয়ার সময় সেটিকে শুরু থেকেই caller-এর জায়গায় বানানো, যাতে copy বা move না লাগে। compiler-এর জন্য এটি অনুমোদিত, কিন্তু standard নিশ্চিত করে না।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৫২পর্ব ৫৩
Null dereferenceনাল ডিরেফারেন্স
null pointer-এর ভেতরে * বা -> দিয়ে ঢোকার চেষ্টা; এটি undefined behavior, সাধারণত প্রোগ্রাম crash করে।যেখানে শিখবেন: পর্ব ১৫পর্ব ৩৮পর্ব ৪৩
Null pointerনাল পয়েন্টার
যে pointer কোনো object-কে দেখায় না; ব্যবহারের আগে nullptr-এর সাথে তুলনা করে পরীক্ষা করতে হয়।যেখানে শিখবেন: পর্ব ১৫
Null terminator (NUL)নাল টার্মিনেটর
মান শূন্য এমন একটি char ('\0'), যা C string-এর শেষ চিহ্ন হিসেবে বসে; strlen-এর মতো ফাংশন এটি না পাওয়া পর্যন্ত পড়তে থাকে।যেখানে শিখবেন: পর্ব ১৪
nullptrনাল-পিটিআর
C++11 থেকে আসা একটি keyword, যার অর্থ “কোনো object-কে দেখাচ্ছে না” এমন pointer; এর নিজস্ব টাইপ std::nullptr_t, তাই int-এর সাথে গুলিয়ে যায় না।যেখানে শিখবেন: পর্ব ১৫পর্ব ১৭পর্ব ২২
NVI (Non-Virtual Interface)এন-ভি-আই
একটি নকশা-রীতি: public ফাংশন non-virtual থাকে আর সবার জন্য একই নিয়ম (যেমন log) চালায়, ভেতরে একটি private বা protected virtual ফাংশন ডাকে, যা derived class override করে।যেখানে শিখবেন: পর্ব ২৬

O

Objectঅবজেক্ট
একটি class থেকে বানানো আসল জিনিস — যার নিজের ডেটা (অবস্থা) আছে, আর যে নির্দিষ্ট কিছু কাজ করতে জানে। যেমন রিনার ওয়ালেট একটি object, করিমের ওয়ালেট আরেকটি।যেখানে শিখবেন: পর্ব ০২পর্ব ১৭পর্ব ২০
Object fileঅবজেক্ট ফাইল
একটি translation unit compile হওয়ার পর তৈরি machine code-এর ফাইল (.o বা .obj). এতে অন্য ফাইলের ফাংশনের জায়গাগুলো ফাঁকা থাকে, linker পরে পূরণ করে।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৭
Object poolঅবজেক্ট পুল
একই ধরনের অনেক বস্তু আগেই বানিয়ে রাখা, আর ব্যবহার শেষে মুছে না ফেলে আবার ব্যবহারের জন্য ফেরত রাখা — যাতে বারবার allocation আর মুক্ত করার খরচ না লাগে।যেখানে শিখবেন: পর্ব ৪৯
Object slicingঅবজেক্ট স্লাইসিং
derived object-কে by value base টাইপে কপি করলে শুধু base অংশ কপি হয় — derived-এর সদস্য আর আসল টাইপের আচরণ হারায়। এড়াতে reference, pointer বা vector-এ unique_ptr ব্যবহার করুন।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৫পর্ব ২৬
Object-Oriented Programming (OOP)অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
প্রোগ্রামকে object দিয়ে সাজানোর পদ্ধতি — প্রতিটি object নিজের ডেটা আর সেই ডেটার ওপর কাজ একসাথে রাখে, আর নির্দিষ্ট দায়িত্ব পালন করে।যেখানে শিখবেন: পর্ব ০১পর্ব ৫৪
Observer (non-owning) pointerঅবজার্ভার পয়েন্টার
যে raw pointer শুধু অন্য কারও object দেখে বা ব্যবহার করে, কিন্তু সেটি মুছে ফেলার দায়িত্ব নেয় না।যেখানে শিখবেন: পর্ব ১৫
ODR (One Definition Rule)ওয়ান ডেফিনিশন রুল
C++-এর নিয়ম: পুরো প্রোগ্রামে একটি ফাংশন বা ভ্যারিয়েবলের definition একবারই থাকবে; inline জিনিসের বেলায় প্রতিটি ফাইলে থাকতে পারে, কিন্তু সব কপি হুবহু এক হতে হবে।যেখানে শিখবেন: পর্ব ০৯পর্ব ১১পর্ব ২৮
Off-by-one errorঅফ-বাই-ওয়ান এরর
সীমানায় এক ঘর ভুলের বাগ: লুপ একবার বেশি বা কম চলা, বা < আর <=, > আর >= গুলিয়ে ফেলা; প্রায়ই array-এর সীমার বাইরে পড়ার কারণ।যেখানে শিখবেন: পর্ব ০৮পর্ব ১৩পর্ব ৩২
Online judgeঅনলাইন জাজ
যে ওয়েবসাইট আপনার কোড compile করে, গোপন ইনপুট ফাইল stdin-এ দিয়ে চালায়, আর আউটপুট সঠিক উত্তরের সাথে মিলিয়ে রায় দেয় — যেমন Codeforces, AtCoder.যেখানে শিখবেন: পর্ব ০৭পর্ব ৫০পর্ব ৫৫
Open addressingওপেন অ্যাড্রেসিং
collision সামলানোর আরেক কৌশল: সব উপাদান একটি পাশাপাশি সাজানো array-তেই থাকে; ঘর ভরা থাকলে নিয়ম মেনে পরের খালি ঘর খোঁজা হয়। cache-বান্ধব বলে প্রায়ই দ্রুত।যেখানে শিখবেন: পর্ব ৩১
Open modeওপেন মোড
ফাইল কীভাবে খোলা হবে তার flag — std::ios::in, out, app, trunc, binary, ate, আর C++23 থেকে noreplace; | দিয়ে একাধিক জোড়া যায়।যেখানে শিখবেন: পর্ব ৪৪পর্ব ৫২
Open-closed principleওপেন-ক্লোজড প্রিন্সিপল
নকশার নীতি: কোড নতুন আচরণ যোগের জন্য খোলা, কিন্তু পুরোনো অংশ বদলানোর জন্য বন্ধ থাকবে — যেমন নতুন derived class যোগ করা, ডাকার কোড না বদলে।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৭পর্ব ৫৪
Operandঅপারেন্ড
অপারেটর যে মানগুলোর ওপর কাজ করে; a + b-তে a আর b দুটি operand.যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩
Operatorঅপারেটর
কোনো মানের ওপর কাজ করার চিহ্ন, যেমন +, ==, << বা []; C++-এ নিজের টাইপের জন্য এর অর্থ ঠিক করে দেওয়া যায়।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩
Operator overloadingঅপারেটর ওভারলোডিং
একই অপারেটরকে (যেমন << বা +) বিভিন্ন টাইপের জন্য আলাদা অর্থ দেওয়া। compiler মানের টাইপ দেখে ঠিক সংস্করণটি বেছে নেয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৬পর্ব ২৩
Operator precedenceপ্রেসিডেন্স
কোন অপারেটর আগে তার operand-গুলোকে জোড়া বাঁধবে, সেই স্তরের নিয়ম; যেমন * আগে, + পরে.যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩পর্ব ৫২
Optimizationঅপটিমাইজেশন
প্রোগ্রামের অর্থ ঠিক রেখে compiler যখন কোডকে দ্রুত বা ছোট রূপে বদলে দেয়। -O0 মানে প্রায় বন্ধ, -O2 মানে বেশিরভাগ নিরাপদ optimization চালু।যেখানে শিখবেন: পর্ব ০৩পর্ব ০৯পর্ব ৪৩
Out parameterআউট প্যারামিটার
যে প্যারামিটারের মাধ্যমে ফাংশন ফল বাইরে পাঠায় (সাধারণত non-const reference বা pointer); আধুনিক C++-এ সাধারণত return করাই ভালো।যেখানে শিখবেন: পর্ব ১০পর্ব ১৯
Out-of-bounds accessআউট-অব-বাউন্ডস অ্যাক্সেস
Array, vector বা buffer-এর সীমার বাইরের ঘর পড়া বা লেখা; C++-এ এটি undefined behavior, আর buffer overflow-এর মূল কারণ।যেখানে শিখবেন: পর্ব ৪৩
Out-of-source buildআউট-অফ-সোর্স বিল্ড
সব তৈরি ফাইল source থেকে আলাদা একটি ফোল্ডারে (যেমন build/) রাখা। ফোল্ডার মুছে নিরাপদে আবার শুরু করা যায়।যেখানে শিখবেন: পর্ব ৪৭
Output iteratorআউটপুট ইটারেটর
শুধু লেখার iterator: *it = x লিখে এগিয়ে যাওয়া, একবারে একটি করে। std::back_inserter আর std::ostream_iterator এর উদাহরণ।যেখানে শিখবেন: পর্ব ৩২
over-constrainingওভার-কনস্ট্রেইনিং
template-এর শরীর যা ব্যবহার করে তার চেয়ে বেশি শর্ত চাওয়া; এতে নিরাপত্তা বাড়ে না, শুধু কাজের টাইপ অকারণে বাদ পড়ে।যেখানে শিখবেন: পর্ব ৪০
Over-engineeringওভার-ইঞ্জিনিয়ারিং
সমস্যার তুলনায় অনেক বেশি স্তর, class আর নিয়ম বানিয়ে ফেলা — যা বোঝা, বদলানো ও পরীক্ষা করা কঠিন করে তোলে।যেখানে শিখবেন: পর্ব ০২পর্ব ২৬পর্ব ২৭
Overflowওভারফ্লো
হিসাবের ফল টাইপের সীমা ছাড়িয়ে গেলে যা ঘটে; signed পূর্ণসংখ্যায় এটি undefined behavior, unsigned-এ মান 2ⁿ দিয়ে ঘুরে আসে (wrap) — সর্বোচ্চ মানের পরে আবার শূন্য, যা সংজ্ঞায়িত আচরণ।যেখানে শিখবেন: পর্ব ০৫পর্ব ০৬পর্ব ১৯
Overload resolutionওভারলোড রেজোলিউশন
একই নামের অনেক ফাংশনের মধ্যে কোনটি ডাকা হবে, তা argument-এর টাইপ মিলিয়ে compiler-এর বেছে নেওয়ার প্রক্রিয়া: exact match, তারপর promotion, তারপর conversion.যেখানে শিখবেন: পর্ব ০৯পর্ব ২৩পর্ব ২৪
Overloaded pattern (overloaded lambdas)ওভারলোডেড প্যাটার্ন
template struct overloaded : Ts... { using Ts::operator()...; }; — কয়েকটি lambda-কে একটি object-এ জুড়ে overload-এর সেট বানানোর কৌশল, যাতে std::visit-এ প্রতিটি টাইপের জন্য আলাদা lambda দেওয়া যায়। এটি standard library-তে নেই, নিজে লিখতে হয়।যেখানে শিখবেন: পর্ব ৩৮
overrideওভাররাইড
C++11 থেকে derived class-এর ফাংশনের শেষে লেখা বিশেষ শব্দ; দাবি করে যে ফাংশনটি base-এর একটি virtual ফাংশন বদলাচ্ছে, না মিললে compile error হয়।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৬পর্ব ৫৪
Ownershipওনারশিপ
কোন অংশের কোড একটি রিসোর্সের মালিক — অর্থাৎ শেষে সেটি ফেরত দেওয়ার দায়িত্ব কার। প্রতিটি heap block-এর ঠিক একজন স্পষ্ট মালিক থাকা উচিত।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ১৮
Owning pointerওনিং পয়েন্টার
যে pointer-এর দায়িত্ব object-টি শেষে মুছে ফেলা; আধুনিক C++-এ এই কাজ raw pointer নয়, smart pointer করে।যেখানে শিখবেন: পর্ব ১৫

P

Package managerপ্যাকেজ ম্যানেজার
বাইরের library নামানো, ঠিক version বাছা, build করা আর build system-কে খুঁজে দেওয়ার টুল। C++-এ vcpkg ও Conan প্রচলিত।যেখানে শিখবেন: পর্ব ৪৭
Paddingপ্যাডিং
struct-এর member-দের মাঝে বা শেষে compiler যে ফাঁকা বাইট বসায়, যাতে প্রতিটি member CPU-র পছন্দের ঠিকানায় (alignment) থাকে।যেখানে শিখবেন: পর্ব ১২পর্ব ২০পর্ব ৩৯
Page cacheপেজ ক্যাশ
অপারেটিং সিস্টেমের মেমরিতে রাখা ফাইলের অংশ; লেখা আগে এখানে জমে, পরে OS নিজের সময়ে ডিস্কে পাঠায়, আর বারবার পড়া দ্রুত হয়।যেখানে শিখবেন: পর্ব ৪৪
Pair programmingপেয়ার প্রোগ্রামিং
দুজন মিলে একটি কোড লেখার পদ্ধতি: একজন লেখেন (driver), অন্যজন পাশে বসে প্রতিটি লাইন যাচাই করেন ও দিক ঠিক করেন (navigator). এখন AI-কে driver বানিয়ে নিজে navigator হওয়াও এর একটি রূপ।যেখানে শিখবেন: পর্ব ১৯পর্ব ৫১
Parallelismপ্যারালেলিজম
একই মুহূর্তে একাধিক কাজ সত্যিই একসাথে চলা, যার জন্য একাধিক CPU core লাগে।যেখানে শিখবেন: পর্ব ৪৫
Parameterপ্যারামিটার
ফাংশনের সংজ্ঞায় লেখা ইনপুটের নাম ও টাইপ, যেমন double price; ফাংশনের ভেতরে এটি একটি local ভ্যারিয়েবলের মতো কাজ করে।যেখানে শিখবেন: পর্ব ০৯পর্ব ২৩
Parameter packপ্যারামিটার প্যাক
তিনটি বিন্দু (...) দিয়ে লেখা শূন্য বা তার বেশি টাইপ বা মানের একটি ব্যাগ, যেমন typename... Args আর Args... args. ভেতরে কয়টি আছে, জানা যায় sizeof...(Args) দিয়ে।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৮
Parameterized constructorপ্যারামিটারাইজড কনস্ট্রাক্টর
যে constructor argument নেয়, যেমন Date(int d, int m, int y); object শুরু থেকেই দেওয়া মান নিয়ে তৈরি হয়।যেখানে শিখবেন: পর্ব ২১পর্ব ৫৪
Partial specializationপার্শিয়াল স্পেশালাইজেশন
এক দল টাইপের ধাঁচের জন্য লেখা সংস্করণ, যেখানে কিছু parameter খোলা থাকে, যেমন template struct Storage — যেকোনো pointer. শুধু class আর variable template-এ চলে, function template-এ নয়।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৪
Pass by referenceপাস বাই রেফারেন্স
ফাংশনের প্যারামিটারকে reference বানানো, যাতে ফাংশন কপি নয়, ডাকার মানুষের আসল ভ্যারিয়েবলে কাজ করে।যেখানে শিখবেন: পর্ব ১০
Pass by valueপাস বাই ভ্যালু
ফাংশনে মানের একটি কপি পাঠানো; ফাংশন কপি বদলালে বাইরের আসল ভ্যারিয়েবল বদলায় না।যেখানে শিখবেন: পর্ব ০৯পর্ব ১০পর্ব ৫৫
Past-the-end iteratorপাস্ট-দ্য-এন্ড ইটারেটর
end() যে iterator দেয়: শেষ উপাদানের ঠিক পরের জায়গা। এর সাথে তুলনা করা যায়, কিন্তু একে dereference করা undefined behavior.যেখানে শিখবেন: পর্ব ৩২
Path traversalপাথ ট্রাভার্সাল
ব্যবহারকারীর দেওয়া পথে ../ বা absolute পথ দিয়ে অনুমোদিত ফোল্ডারের বাইরের ফাইলে পৌঁছানোর নিরাপত্তা-ত্রুটি। প্রতিরোধ: allowlist, বা canonical করে সীমা যাচাই।যেখানে শিখবেন: পর্ব ৪৪
Pattern matchingপ্যাটার্ন ম্যাচিং
একটি মানের গঠন মিলিয়ে দেখে শাখা বেছে নেওয়া আর ভেতরের অংশ নামে বেঁধে ফেলার ভাষা-সুবিধা, যেমন Rust-এর match. C++-এ এটি আনার কয়েকটি প্রস্তাব আছে, কিন্তু এখনো standard-এ নেই।যেখানে শিখবেন: পর্ব ৩৮
Percentile (p50, p99)পার্সেন্টাইল
যে মানের নিচে নির্দিষ্ট শতাংশ পরিমাপ পড়ে। p99 latency ২০০ ms মানে ৯৯% অনুরোধ ২০০ ms বা তার কম সময়ে শেষ হয়; গড়ের চেয়ে এটি খারাপ দিকটা ভালো দেখায়।যেখানে শিখবেন: পর্ব ৪৯
perfপার্ফ
Linux-এর বিনামূল্যের profiler. perf record দিয়ে sample জমায়, perf report দিয়ে ফাংশন অনুযায়ী সময় দেখায়, আর CPU-র ভেতরের counter (cache miss, branch miss) পড়তে পারে।যেখানে শিখবেন: পর্ব ৪৯
Perfect forwardingপারফেক্ট ফরওয়ার্ডিং
একটি wrapper ফাংশন যে আর্গুমেন্ট পেয়েছে, সেগুলোকে টাইপ, const আর lvalue/rvalue পরিচয় না বদলে অন্য ফাংশনে পাঠানো — forwarding reference আর std::forward দিয়ে; make_unique আর emplace_back এভাবেই লেখা।যেখানে শিখবেন: পর্ব ৩৬
Persistenceপারসিস্টেন্স
ডেটাকে প্রোগ্রামের জীবনের বাইরে টিকিয়ে রাখা — ফাইল বা ডেটাবেসে, যাতে প্রোগ্রাম বন্ধ হয়ে আবার খুললেও তথ্য ফিরে পাওয়া যায়।যেখানে শিখবেন: পর্ব ৫১
Pessimizing moveপেসিমাইজিং মুভ
return std::move(local); — এমন std::move, যা NRVO বন্ধ করে একটি বাড়তি move যোগ করে, ফলে কোড ধীর হয়। GCC আর Clang-এ -Wall দিলে -Wpessimizing-move warning দেয়।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৫৪
Pipe syntax (|)পাইপ সিনট্যাক্স
range | adaptor লেখার রীতি: r | views::filter(f) আর views::filter(r, f) একই, কিন্তু pipe-এ ধাপগুলো ডেটা বয়ে যাওয়ার ক্রমে বাঁ থেকে ডানে পড়া যায়। ধারণাটি Unix shell-এর pipe থেকে এসেছে।যেখানে শিখবেন: পর্ব ৩৫
Placeholder ({})প্লেসহোল্ডার
std::format বা std::print-এর format string-এর ভেতরে ফাঁকা ঘর {}, যা পরের আর্গুমেন্টগুলো দিয়ে ক্রমানুসারে ভরে যায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭
Placement newপ্লেসমেন্ট নিউ
new (ঠিকানা) T(...) — নতুন মেমরি না নিয়ে আগে থেকে থাকা একটি জায়গায় শুধু object বানানো; লাইব্রেরি আর allocator লেখকদের নিচু স্তরের যন্ত্র।যেখানে শিখবেন: পর্ব ১৬
Pointerপয়েন্টার
এমন ভ্যারিয়েবল, যার ভেতরে আরেকটি object-এর মেমরি ঠিকানা থাকে; nullptr হতে পারে, অন্য object-এর দিকে সরানো যায়।যেখানে শিখবেন: পর্ব ১০পর্ব ১৩পর্ব ১৫
Pointer / iterator invalidationপয়েন্টার ইনভ্যালিডেশন
container বদলানোর পর (যেমন vector-এ push_back করে জায়গা বাড়লে) আগে নেওয়া pointer, reference বা iterator আর বৈধ না থাকা; তখন সেটা ব্যবহার করা undefined behavior.যেখানে শিখবেন: পর্ব ১৯
Pointer arithmeticপয়েন্টার অ্যারিথমেটিক
pointer-এর সাথে পূর্ণসংখ্যা যোগ-বিয়োগ করে array-র পরের বা আগের উপাদানে যাওয়া; p + 1 মানে এক বাইট নয়, পরের একটি উপাদান।যেখানে শিখবেন: পর্ব ১৫
Pointer to constপয়েন্টার টু কনস্ট
const int* p — যে pointer দিয়ে ডেটা শুধু পড়া যায়, লেখা যায় না; তবে pointer-টিকে অন্য object-এর দিকে সরানো যায়।যেখানে শিখবেন: পর্ব ১৫পর্ব ৫৩পর্ব ৫৪
Pointer to memberপয়েন্টার টু মেম্বার
&Student::marks-এর মতো লেখা, যা কোনো নির্দিষ্ট object নয়, বরং একটি class-এর একটি member-কে নির্দেশ করে; যেকোনো Student-এর ওপর প্রয়োগ করে তার marks পাওয়া যায়।যেখানে শিখবেন: পর্ব ৩৫
Pointer to pointerপয়েন্টার টু পয়েন্টার
int** pp — এমন pointer, যার ভেতরে আরেকটি pointer-এর ঠিকানা থাকে; C API-তে আর ফাংশন দিয়ে pointer বদলাতে দেখা যায়।যেখানে শিখবেন: পর্ব ১৫
Polymorphismপলিমরফিজম
একই বার্তা পেয়ে ভিন্ন ভিন্ন object নিজের মতো করে সাড়া দেওয়া। যেমন “ফি হিসাব করো” বললে সাধারণ ও মার্চেন্ট ওয়ালেট আলাদা ফি দেয়। C++-এ পর্ব ২৫-এ।যেখানে শিখবেন: পর্ব ০২পর্ব ২৫পর্ব ২৬
Postfix increment (x++)পোস্টফিক্স ইনক্রিমেন্ট
পুরোনো মান ফেরত দিয়ে তারপর বাড়ানো। overload করতে T operator++(int) লেখা হয় — অব্যবহৃত int প্যারামিটারটি শুধু prefix রূপ থেকে আলাদা করার চিহ্ন; এটি পুরোনো মানের কপি ফেরত দেয়।যেখানে শিখবেন: পর্ব ২৩পর্ব ৩২
#pragma onceপ্রাগমা ওয়ান্স
Header-এর প্রথম লাইনে লেখা একটি নির্দেশ: এই ফাইল একটি translation unit-এ একবারই ঢুকবে। Standard-এর অংশ নয়, তবে GCC, Clang ও MSVC সবাই মানে।যেখানে শিখবেন: পর্ব ১১পর্ব ৫৪
Preconditionপ্রিকন্ডিশন
ফাংশন ডাকার আগে যে শর্ত সত্য থাকতে হবে, যেমন binary_search-এর জন্য range সাজানো থাকা; ফাংশন সাধারণত এটি যাচাই করে না, ভাঙলে ভুল ফল বা undefined behavior.যেখানে শিখবেন: পর্ব ৩৩পর্ব ৩৭
Predicateপ্রেডিকেট
এমন একটি callable, যা একটি মান নিয়ে true বা false ফেরত দেয়, যেমন “নম্বর ৪০-এর বেশি কি না”; count_if, find_if, erase_if-এর মতো algorithm এটি নেয়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৩৪পর্ব ৪০
Prefix sumপ্রিফিক্স সাম
pre[i] = প্রথম i টি উপাদানের যোগফল — একবার O(n)-এ বানালে যেকোনো পরপর অংশের যোগফল pre[r] - pre[l-1] দিয়ে O(1)-এ পাওয়া যায়।যেখানে শিখবেন: পর্ব ৫০
Premature optimizationপ্রিম্যাচিওর অপ্টিমাইজেশন
কোথায় আসলে সময় যায় তা মেপে জানার আগেই অনুমানে কোড জটিল করে দ্রুত করার চেষ্টা। Knuth-এর ১৯৭৪ সালের প্রবন্ধ থেকে আসা কথা; তাঁর পরামর্শ ছিল সংকটপূর্ণ ছোট অংশটি মেপে খুঁজে সেখানেই মন দেওয়া।যেখানে শিখবেন: পর্ব ৪৯
Preprocessorপ্রিপ্রসেসর
Compile শুরুর আগের ধাপ। #include দেওয়া ফাইলের লেখা এনে বসায়, #define-এর ম্যাক্রো বদলে দেয় আর #if দিয়ে কোড বাদ-রাখা ঠিক করে।যেখানে শিখবেন: পর্ব ০৩পর্ব ০৪পর্ব ২৮
Primary templateপ্রাইমারি টেমপ্লেট
একটি template-এর মূল, সাধারণ নকশা, যা কোনো specialization না মিললে ব্যবহার হয়। specialization লেখার আগে এর ঘোষণা থাকতেই হয়।যেখানে শিখবেন: পর্ব ২৯
Principle of least surpriseপ্রিন্সিপল অফ লিস্ট সারপ্রাইজ
নকশার নীতি: কোড, নাম বা operator এমনভাবে আচরণ করবে, যেমনটা পাঠক স্বাভাবিকভাবে আশা করেন। পরিচিত চিহ্নের অপরিচিত অর্থ দেওয়া এই নীতি ভাঙে।যেখানে শিখবেন: পর্ব ২৩
Print debuggingপ্রিন্ট ডিবাগিং
কোডে বাড়তি print বসিয়ে মান ও পথ দেখে বাগ খোঁজা; stderr-এ, প্রসঙ্গসহ লিখলে খুব কার্যকর।যেখানে শিখবেন: পর্ব ৪৮
Private inheritanceপ্রাইভেট ইনহেরিট্যান্স
class D : private B — base-এর public ও protected সদস্য D-তে private হয়ে যায়, আর বাইরের কোড D-কে B হিসেবে ব্যবহার করতে পারে না। মানে “implemented in terms of”, is-a নয়; class-এ কিছু না লিখলে এটিই ডিফল্ট।যেখানে শিখবেন: পর্ব ২৪
Procedural programmingপ্রসিডিউরাল প্রোগ্রামিং
প্রোগ্রামকে ধাপে ধাপে চলা ফাংশনের সারি হিসেবে সাজানো, যেখানে ডেটা আলাদা থাকে আর ফাংশনগুলো সেই ডেটা বদলায়। C ভাষার স্বাভাবিক ধারা।যেখানে শিখবেন: পর্ব ০২
Processপ্রসেস
চলমান একটি প্রোগ্রাম, যার নিজস্ব আলাদা মেমরি-জগৎ আছে। এক process অন্য process-এর মেমরি সরাসরি ছুঁতে পারে না; একটি process-এর ভেতরে এক বা একাধিক thread থাকে।যেখানে শিখবেন: পর্ব ৪৫
Producer–consumerপ্রডিউসার-কনজিউমার
একটি নকশা, যেখানে এক বা একাধিক thread কাজ বানিয়ে একটি ভাগ করা queue-তে রাখে (producer), আর অন্যরা সেখান থেকে নিয়ে কাজ করে (consumer) — মাঝে queue-টিই একমাত্র ভাগ করা জিনিস।যেখানে শিখবেন: পর্ব ৪৫
Profile-guided optimization (PGO)প্রোফাইল-গাইডেড অপ্টিমাইজেশন
আগে প্রোগ্রাম চালিয়ে আসল ব্যবহারের তথ্য (কোন শাখা বেশি, কোন ফাংশন গরম) জমা করা, তারপর সেই তথ্য দিয়ে আবার compile করা — GCC-তে -fprofile-generate আর -fprofile-use.যেখানে শিখবেন: পর্ব ৪৯
Profilerপ্রোফাইলার
যে টুল প্রোগ্রাম চলার সময় দেখে কোন ফাংশনে কত সময় যায় (বা কতবার ডাকা হয়)। অনুমানের বদলে আসল hotspot দেখায় — যেমন perf, Intel VTune, Visual Studio Profiler, gprof.যেখানে শিখবেন: পর্ব ৪৯
Projection (ranges)প্রজেকশন
C++20 ranges algorithm-এর একটি ঐচ্ছিক argument, যা তুলনা বা পরীক্ষার আগে প্রতিটি উপাদান থেকে একটি অংশ বের করে, যেমন &Student::marks দিলে শুধু marks দেখে সাজানো হয়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৩৫
Promise typeপ্রমিস টাইপ
coroutine-এর ফেরত-টাইপের ভেতরের একটি টাইপ, যা ঠিক করে coroutine শুরুতে থামবে কি না, co_yield-এর মান কোথায় যাবে, শেষে কী হবে। std::generator-এর মতো লাইব্রেরি টাইপ এটি তৈরি করে দেয়।যেখানে শিখবেন: পর্ব ৪২
Promotionপ্রোমোশন
ছোট টাইপকে তথ্য না হারিয়ে তার “স্বাভাবিক” বড় টাইপে তোলা — যেমন char, short বা bool থেকে int, আর float থেকে double. Overload বাছাইয়ে এটি সাধারণ conversion-এর চেয়ে ভালো মিল।যেখানে শিখবেন: পর্ব ০৯পর্ব ৫২
Property-based testingপ্রপার্টি-বেসড টেস্টিং
নির্দিষ্ট উদাহরণের বদলে এমন একটি নিয়ম লেখা যা সব ইনপুটে সত্য, আর টুল দিয়ে অনেক ইনপুট বানিয়ে নিয়মটি ভাঙার চেষ্টা করা।যেখানে শিখবেন: পর্ব ৪৮
protectedপ্রোটেক্টেড
একটি access specifier: সদস্যটি class নিজে আর তার derived class-রা ছুঁতে পারে, বাইরের কোড পারে না। data-র জন্য এড়িয়ে চলা ভালো; derived-দের জন্য protected ফাংশন দিন।যেখানে শিখবেন: পর্ব ২৪
Protected inheritanceপ্রোটেক্টেড ইনহেরিট্যান্স
class D : protected B — base-এর public ও protected সদস্য D-তে protected হয়; শুধু D আর D থেকে derived class-রা জানে যে D এক ধরনের B. বাস্তবে খুবই বিরল।যেখানে শিখবেন: পর্ব ২৪
Proxy objectপ্রক্সি অবজেক্ট
অন্য কোনো জিনিসের প্রতিনিধি হয়ে কাজ করা একটি ছোট সহকারী object, যেমন std::vector::reference, যা একটি বিট পড়ে বা বদলায়। দেখতে আসল মানের মতো, কিন্তু আসলে আলাদা টাইপ।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫৩
prvalue (pure rvalue)পিআর-ভ্যালু
একেবারে নতুন, নামহীন মান — যেমন 42, a + b বা by value ফেরত দেওয়া ফাংশনের ফল। C++17 থেকে এটি একটি object বানানোর নির্দেশ মাত্র, তাই ফেরত দেওয়ার সময় copy elision নিশ্চিত।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৫২
Public inheritanceপাবলিক ইনহেরিট্যান্স
class D : public B — base-এর public সদস্য derived-এও public থাকে, আর বাইরের কোড D-কে B হিসেবে ব্যবহার করতে পারে। is-a সম্পর্কের জন্য প্রায় সবসময় এটিই।যেখানে শিখবেন: পর্ব ২৪
Pure functionপিওর ফাংশন
যে ফাংশন একই ইনপুটে সবসময় একই ফল দেয় এবং বাইরের কিছু বদলায় না (side effect নেই); পরীক্ষা ও বোঝা সবচেয়ে সহজ।যেখানে শিখবেন: পর্ব ০৯পর্ব ৪৮
Pure virtual functionপিওর ভার্চুয়াল ফাংশন
শেষে = 0 লেখা virtual function — যেমন virtual void send() = 0; — derived class override না করলে সেটিও abstract থেকে যায়। এমন একটি ফাংশন থাকলেই class abstract হয়; চাইলে এর definition-ও দেওয়া যায়।যেখানে শিখবেন: পর্ব ২৬পর্ব ৪০পর্ব ৫২
push_back()পুশ ব্যাক
vector-এর শেষে একটি উপাদান যোগ করা। জায়গা থাকলে খুব দ্রুত; জায়গা না থাকলে আগে reallocation হয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০

R

Race conditionরেস কন্ডিশন
যখন প্রোগ্রামের ফল নির্ভর করে কোন thread আগে, কোনটি পরে চলল তার ওপর। এটি data race থেকে আলাদা ধারণা: প্রতিটি অপারেশনে mutex থাকলেও যুক্তির ভুলে race condition থাকতে পারে।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৪
RAIIআর-এ-আই-আই
Resource Acquisition Is Initialization — যে object কোনো রিসোর্স (মেমরি, ফাইল, lock) নেয়, তার জীবন শেষ হলে destructor নিজে থেকেই সেটি ফেরত দেয়। ফলে হাতে free বা close মনে রাখতে হয় না।যেখানে শিখবেন: পর্ব ০১পর্ব ১৩পর্ব ১৫
Random accessর‍্যান্ডম অ্যাক্সেস
সূচক দিয়ে যেকোনো উপাদানে এক লাফে, ধ্রুবক সময়ে (O(1)) পৌঁছানোর ক্ষমতা — যেমন v[500]. vector, array আর deque দেয়; list দেয় না, সেখানে শুরু থেকে হাঁটতে হয়।যেখানে শিখবেন: পর্ব ৩০
Random access iteratorর‍্যান্ডম অ্যাক্সেস ইটারেটর
যে iterator এক ধাপে যেকোনো দূরত্বে যেতে পারে: it + n, it[i], দুটি iterator-এর বিয়োগ, < দিয়ে তুলনা। std::deque-এর iterator এমন; std::sort এটি চায়।যেখানে শিখবেন: পর্ব ৩২
Random number distributionর‍্যান্ডম ডিস্ট্রিবিউশন
যে object engine-এর কাঁচা সংখ্যাকে চাওয়া সীমা ও আকারে আনে (সমান, normal, হ্যাঁ/না); এর অ্যালগরিদম standard নির্দিষ্ট করেনি, তাই ফল লাইব্রেরিভেদে আলাদা হতে পারে।যেখানে শিখবেন: পর্ব ৪১
Random number engineর‍্যান্ডম নাম্বার ইঞ্জিন
-এর যে object নিজের ভেতরের অবস্থা থেকে একের পর এক সমান-সম্ভাব্য কাঁচা পূর্ণসংখ্যা বানায়, যেমন std::mt19937; একই seed দিলে একই ধারা।যেখানে শিখবেন: পর্ব ৪১
Rangeরেঞ্জ
C++20-এর ধারণা: এমন যেকোনো জিনিস, যার begin() একটি iterator আর end() শেষের চিহ্ন দেয় — যেমন vector, string, array, map বা একটি view.যেখানে শিখবেন: পর্ব ৩৫
Range adaptorরেঞ্জ অ্যাডাপ্টার
std::views-এর filter, transform, take-এর মতো যন্ত্র, যা একটি range নিয়ে তার ওপর একটি নতুন view বানায়; pipe দিয়ে একের পর এক জোড়া যায়।যেখানে শিখবেন: পর্ব ৩৫
Range-based forরেঞ্জ-ফর
for (auto x : list) ধাঁচের লুপ, যা একটি container-এর প্রতিটি উপাদানে একে একে যায় — index বা আকার হাতে গুনতে হয় না। C++11 থেকে আছে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৮পর্ব ১৩
range-v3রেঞ্জ ভি-থ্রি
Eric Niebler-এর লেখা open-source C++ লাইব্রেরি, যেখানে view, pipe আর অলস পাইপলাইন প্রথম পূর্ণাঙ্গ রূপ পায়; C++20-এর std::ranges এর ভিত্তিতে তৈরি, তবে নামে ও ফিচারে কিছু পার্থক্য আছে।যেখানে শিখবেন: পর্ব ৩৫
Raw loopর লুপ
হাতে লেখা for বা while লুপ, যার কাজ আসলে একটি পরিচিত algorithm, কিন্তু কোডে তার নাম লেখা নেই; Sean Parent-এর “no raw loops” পরামর্শ এমন লুপকে নাম-ওয়ালা algorithm বা ফাংশনে বদলাতে বলে।যেখানে শিখবেন: পর্ব ৩৩
Raw pointerর পয়েন্টার
সাধারণ T* pointer, যার নিজের কোনো destructor-এর কাজ নেই; আধুনিক C++-এ এটি শুধু দেখার জন্য (non-owning), মালিকানার জন্য নয়।যেখানে শিখবেন: পর্ব ১৭পর্ব ২২
Read-modify-writeরিড-মডিফাই-রাইট
মেমরি থেকে মান পড়া, বদলানো, তারপর ফেরত লেখা — তিন ধাপের কাজ, যেমন ++counter. মাঝখানে অন্য thread ঢুকলে একটি বৃদ্ধি হারিয়ে যেতে পারে।যেখানে শিখবেন: পর্ব ৪৫
READMEরিডমি
প্রজেক্টের মূল ফোল্ডারের পরিচিতি-ফাইল (সাধারণত README.md): প্রজেক্ট কী করে, কীভাবে বিল্ড ও চালাতে হয়, নকশার সিদ্ধান্ত আর সীমাবদ্ধতা — GitHub এটি প্রথম পাতায় দেখায়।যেখানে শিখবেন: পর্ব ৫১পর্ব ৫৫
Reallocationরি-অ্যালোকেশন
জায়গা ফুরিয়ে গেলে নতুন, বড় একটি মেমরি-খণ্ড নেওয়া, পুরোনো উপাদানগুলো সেখানে সরানো আর পুরোনো খণ্ড ফেরত দেওয়া। এর পর পুরোনো জায়গার দিকে তাকানো pointer, reference বা view অবৈধ হয়ে যায়।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৪পর্ব ১৮
Recursionরিকার্শন
একটি ফাংশন যখন নিজেকেই ডাকে, প্রতিবার সমস্যার ছোট একটি রূপ দিয়ে, যতক্ষণ না একটি base case-এ পৌঁছায়।যেখানে শিখবেন: পর্ব ০৮পর্ব ০৯পর্ব ৫৫
Red-black treeরেড-ব্ল্যাক ট্রি
একটি balanced binary search tree, যার প্রতিটি node লাল বা কালো; লাল node-এর সন্তান লাল হয় না, আর মূল থেকে প্রতিটি পাতা পর্যন্ত কালো node-এর সংখ্যা সমান। উচ্চতা থাকে 2·log₂(n+1)-এর মধ্যে।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫৪
Redirectionরিডাইরেকশন
Terminal-এ < , > বা 2> দিয়ে প্রোগ্রামের stdin, stdout বা stderr-কে কিবোর্ড/স্ক্রিনের বদলে কোনো ফাইলের সাথে জুড়ে দেওয়া। প্রোগ্রাম নিজে পার্থক্য টের পায় না।যেখানে শিখবেন: পর্ব ০৭পর্ব ১৯
Red–green–refactorরেড-গ্রিন-রিফ্যাক্টর
TDD-এর চক্র: লাল (ব্যর্থ টেস্ট লেখা), সবুজ (ন্যূনতম কোডে পাস করানো), refactor (টেস্ট সবুজ রেখে কোড সুন্দর করা).যেখানে শিখবেন: পর্ব ৪৮
Refactoringরিফ্যাক্টরিং
প্রোগ্রামের আচরণ একদম একই রেখে ভেতরের কোড আরও পরিষ্কার, ছোট বা সহজ করা। টেস্ট থাকলে নিরাপদে করা যায়।যেখানে শিখবেন: পর্ব ১৯পর্ব ২৭পর্ব ৪৮
Referenceরেফারেন্স
একটি বিদ্যমান ভ্যারিয়েবল বা object-এর আরেকটি নাম; কপি না করে সরাসরি সেটিকেই বোঝায়, আর একবার বাঁধলে অন্য object-এ সরানো যায় না।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৮পর্ব ০৯
Reference collapsingরেফারেন্স কলাপসিং
template বা type alias-এ reference-এর reference তৈরি হলে তা একটি reference-এ মিলে যাওয়ার নিয়ম: কোথাও একটি & থাকলে ফল &, দুটিই && হলে তবেই &&.যেখানে শিখবেন: পর্ব ৩৬
Reference countingরেফারেন্স কাউন্টিং
একটি object-এর কতজন মালিক আছে, তা একটি সংখ্যায় গুনে রাখা; নতুন মালিক এলে বাড়ে, চলে গেলে কমে, শূন্য হলে object মুছে যায়।যেখানে শিখবেন: পর্ব ১৭
Reference cycleরেফারেন্স সাইকেল
দুই বা ততোধিক object যখন shared_ptr দিয়ে একে অপরকে ধরে রাখে; কারও মালিক-সংখ্যা শূন্য হয় না, তাই কেউ মোছে না — memory leak.যেখানে শিখবেন: পর্ব ১৭পর্ব ৫৪
Reference stabilityরেফারেন্স স্টেবিলিটি
container বদলালেও (যোগ বা অন্য উপাদান মোছা) পুরোনো উপাদানের reference ও pointer ঠিক থাকার নিশ্চয়তা। std::list-এ এটি সবসময় থাকে, std::vector-এ reallocation হলে থাকে না।যেখানে শিখবেন: পর্ব ৩০
Registerরেজিস্টার
CPU-র ভেতরের সবচেয়ে দ্রুত আর সবচেয়ে ছোট মেমরি — কয়েক ডজন ঘর, প্রতিটি সাধারণত ৮ বাইট। CPU সরাসরি এখানেই হিসাব করে; ভ্যারিয়েবল register-এ রাখার সিদ্ধান্ত নেয় compiler.যেখানে শিখবেন: পর্ব ৪৯
Regression testরিগ্রেশন টেস্ট
একবার ধরা পড়া বাগের জন্য রেখে দেওয়া টেস্ট, যা প্রতিবার আবার চালানো হয়। পুরোনো বাগ ফিরে এলে সাথে সাথে ধরা পড়ে।যেখানে শিখবেন: পর্ব ১৯পর্ব ৪৩পর্ব ৪৮
Rehashরিহ্যাশ
hash table-এ bucket-এর সংখ্যা বাড়িয়ে সব উপাদানকে নতুন bucket-এ সরানো। এতে সব iterator অচল হয়ে যায়, তবে উপাদানের pointer আর reference ঠিক থাকে।যেখানে শিখবেন: পর্ব ৩১পর্ব ৩২পর্ব ৫৫
Reorderingরিঅর্ডারিং
compiler বা CPU দ্রুত চলার জন্য স্বাধীন পড়া-লেখার ক্রম বদলে দেয়; এক thread-এ ফল একই থাকে, কিন্তু অন্য thread ভিন্ন ক্রম দেখতে পারে।যেখানে শিখবেন: পর্ব ৪৬
Requirementরিকোয়ারমেন্ট
সফটওয়্যারকে কী করতে হবে, তার স্পষ্ট লিখিত চাহিদা। কীভাবে করবে তা নয়, শুধু কী করবে সেটুকু।যেখানে শিখবেন: পর্ব ১৯
requires clauseরিকোয়ার্স ক্লজ
C++20-এ template-এর সাথে লেখা শর্ত, যেমন requires std::totally_ordered. শর্ত না মিললে template বাদ পড়ে, আর error আসে ডাকার জায়গায়, ছোট ও স্পষ্টভাবে।যেখানে শিখবেন: পর্ব ২৮পর্ব ৪০
requires expressionরিকোয়ারস এক্সপ্রেশন
requires(params) { ... } রূপের একটি compile-time প্রশ্ন, যা ভেতরের শর্তগুলো বৈধ হলে true দেয়। ভেতরের কোড কখনো চলে না।যেখানে শিখবেন: পর্ব ৪০
reserve()রিজার্ভ
vector-কে আগে থেকে অন্তত এতগুলো উপাদানের জায়গা নিয়ে রাখতে বলা। size বদলায় না, শুধু capacity বাড়ে, ফলে পরের push_back-গুলোতে reallocation হয় না।যেখানে শিখবেন: পর্ব ১৩পর্ব ৪৯পর্ব ৫৫
Resourceরিসোর্স
প্রোগ্রাম যা সিস্টেম থেকে ধার নেয় আর পরে ফেরত দিতে হয় — heap মেমরি, খোলা ফাইল, lock, নেটওয়ার্ক বা ডেটাবেস সংযোগ। ফেরত না দিলে সেটি আটকে থাকে।যেখানে শিখবেন: পর্ব ১৭পর্ব ২২
Responsibility (দায়িত্ব)রেসপন্সিবিলিটি
একটি class কী জানে আর কী করে, তার সংক্ষিপ্ত তালিকা। ভালো নকশায় প্রতিটি class-এর দায়িত্ব অল্প ও স্পষ্ট।যেখানে শিখবেন: পর্ব ০২
Rethrow (throw;)রিথ্রো
catch ব্লকের ভেতরে নাম ছাড়া throw; লিখে বর্তমানে সামলানো একই exception object আসল টাইপসহ আবার ওপরে পাঠানো। throw e; লিখলে বরং একটি নতুন কপি যায়, আর টাইপ কেটে যেতে পারে।যেখানে শিখবেন: পর্ব ৩৭
Return type deductionরিটার্ন টাইপ ডিডাকশন
return টাইপের জায়গায় auto লিখলে compiler return-এর মান দেখে নিজেই টাইপ ঠিক করে (C++14 থেকে)।যেখানে শিখবেন: পর্ব ০৯পর্ব ২৮পর্ব ৩৪
Return valueরিটার্ন ভ্যালু
ফাংশন কাজ শেষে return দিয়ে যে মান ডাকার জায়গায় ফেরত পাঠায়; এর টাইপ ফাংশনের নামের আগে লেখা থাকে।যেখানে শিখবেন: পর্ব ০৯
Reverse iteratorরিভার্স ইটারেটর
যে iterator-এ ++ করলে পেছনের দিকে যায়; rbegin() শেষ উপাদানে, rend() প্রথমটির আগের জায়গায়। অন্তত bidirectional iterator থেকে বানানো যায়।যেখানে শিখবেন: পর্ব ৩২
Rewritten comparison candidateরিরিটেন ক্যান্ডিডেট
C++20-এর নিয়ম, যাতে compiler তুলনার expression নিজে নতুন করে লেখে: a != b হয় !(a == b), a < b হয় (a <=> b) < 0, আর দরকারে দুই দিক উল্টে b == a বা 0 < (b <=> a).যেখানে শিখবেন: পর্ব ২৩
Ring buffer (circular buffer)রিং বাফার
নির্দিষ্ট মাপের একটি array, যেখানে শেষ ঘরের পরে লেখা আবার প্রথম ঘরে ফিরে যায় আর সবচেয়ে পুরোনো মানের ওপর নতুনটি বসে। sensor-এর শেষ কয়েকটি রিডিং বা অডিও ডেটা রাখতে প্রচলিত।যেখানে শিখবেন: পর্ব ২৯
Round-trip testরাউন্ড-ট্রিপ টেস্ট
যে টেস্ট একটি মানকে লেখায় (বা ফাইলে) রূপান্তর করে আবার পড়ে দেখে হুবহু আগের মান ফিরে এল কি না — save/load বা serialize/parse-এর সঠিকতার প্রমাণ।যেখানে শিখবেন: পর্ব ৫১
Row-major orderরো-মেজর অর্ডার
দুই মাত্রার ডেটাকে এক সারিতে রাখার নিয়ম: আগে প্রথম সারির সব ঘর, তারপর দ্বিতীয় সারির। সারি r, কলাম c-এর সূচক = r × কলামের সংখ্যা + c.যেখানে শিখবেন: পর্ব ১৩পর্ব ২৩পর্ব ৪৯
RTTI (Run-Time Type Information)আর-টি-টি-আই
polymorphic object-এর আসল টাইপ সম্পর্কে চলার সময় পাওয়া তথ্য; dynamic_cast আর typeid এটি ব্যবহার করে।যেখানে শিখবেন: পর্ব ২৫
Rubber duck debuggingরাবার ডাক ডিবাগিং
কোডটি লাইন ধরে ধরে কাউকে (এমনকি একটি খেলনা হাঁসকে) জোরে বুঝিয়ে বলা, যাতে লুকোনো ভুল অনুমান নিজেই চোখে পড়ে।যেখানে শিখবেন: পর্ব ৪৮
Rule of Fiveরুল অব ফাইভ
C++11-এর নিয়ম: Rule of Three-এর তিনটির সাথে move constructor আর move assignment — পাঁচটির একটি লিখলে বা delete করলে পাঁচটির কথাই ভাবতে হবে।যেখানে শিখবেন: পর্ব ২২পর্ব ৫৪পর্ব ৫৫
Rule of Threeরুল অব থ্রি
পুরোনো নিয়ম: destructor, copy constructor বা copy assignment — এর একটিও নিজে লিখতে হলে সম্ভবত তিনটিই লিখতে হবে, কারণ class টি নিজে কোনো রিসোর্স সামলাচ্ছে।যেখানে শিখবেন: পর্ব ২২পর্ব ৫৩পর্ব ৫৪
Rule of Zeroরুল অব জিরো
নকশার নিয়ম: নিজের class-এ destructor, copy বা move নিজে লিখবেন না; রিসোর্স রাখুন vector, string, unique_ptr-এর মতো RAII সদস্যে, তারা নিজেরাই সব সামলাবে।যেখানে শিখবেন: পর্ব ১৭পর্ব ২১পর্ব ২২
Runtime errorরানটাইম এরর
প্রোগ্রাম তৈরি হয়ে চলার সময় যে ভুল ধরা পড়ে — crash, ভুল মেমরিতে হাত দেওয়া বা ভুল ফল।যেখানে শিখবেন: পর্ব ০৩
rvalueআর-ভ্যালু
অস্থায়ী বা মেয়াদ-শেষ বলে চিহ্নিত মান — prvalue (5, a + b) বা xvalue (std::move(x)); এর থেকে move করা যায়।যেখানে শিখবেন: পর্ব ১০পর্ব ২২পর্ব ৩৬
rvalue referenceআর-ভ্যালু রেফারেন্স
T&& — C++11-এ আসা reference, যা rvalue-র সাথে bind হয়: temporary, বা std::move দিয়ে চিহ্নিত object; move semantics-এর ভিত্তি।যেখানে শিখবেন: পর্ব ১০পর্ব ২২পর্ব ৩৬
RVO (Return Value Optimization)আর-ভি-ও
ফাংশনের ফেরত দেওয়া object-কে ডাকার জায়গার ভ্যারিয়েবলেই সরাসরি তৈরি করা, যাতে by value ফেরত দেওয়াতেও কপি না লাগে।যেখানে শিখবেন: পর্ব ১৮পর্ব ৩৬

S

Safety profileসেফটি প্রোফাইল
C++ নিয়ে আলোচিত একটি প্রস্তাব-ধারণা: কোডের একটি অংশে নির্দিষ্ট নিরাপদ নিয়ম চালু করা, যাতে compiler বিপজ্জনক ধরনের কোড আটকায়; এখনো standard-এর অংশ নয়।যেখানে শিখবেন: পর্ব ১৮পর্ব ৪৩
Sampling profilerস্যাম্পলিং প্রোফাইলার
যে profiler সেকেন্ডে বহুবার প্রোগ্রাম থামিয়ে দেখে তখন কোন ফাংশন চলছে আর কে তাকে ডেকেছে। যে ফাংশন বেশিবার ধরা পড়ে, সে বেশি সময় নেয়; খরচ কম, তাই আসল গতিতে মাপা যায়।যেখানে শিখবেন: পর্ব ৪৯
Sanitizerস্যানিটাইজার
Compiler-এর একটি সুবিধা (যেমন -fsanitize=address,undefined), যা প্রোগ্রামে বাড়তি পাহারা-কোড বসায় এবং চলার সময় মেমরির ভুল বা undefined behavior হাতেনাতে ধরে।যেখানে শিখবেন: পর্ব ০৩পর্ব ১৩পর্ব ১৬
Saturation arithmeticস্যাচুরেশন অ্যারিথমেটিক
এমন হিসাব যেখানে ফল সীমা ছাড়ালে সর্বোচ্চ বা সর্বনিম্ন মানে আটকে থাকে, ঘুরে যায় না; C++26-এ std::add_sat ইত্যাদি ফাংশন হিসেবে এসেছে।যেখানে শিখবেন: পর্ব ৪৩
Scopeস্কোপ
কোডের যে অংশে একটি নাম (ভ্যারিয়েবল, ফাংশন) চেনা যায় ও ব্যবহার করা যায়; সাধারণত নামটি যে block-এ ঘোষিত, তার শেষ পর্যন্ত।যেখানে শিখবেন: পর্ব ০৮পর্ব ০৯পর্ব ১১
Scope creepস্কোপ ক্রিপ
কাজ চলার মাঝে একটু একটু করে নতুন চাহিদা ঢুকতে থাকা, যতক্ষণ না প্রজেক্ট কখনো শেষই হয় না।যেখানে শিখবেন: পর্ব ১৯পর্ব ৫১
Scope guardস্কোপ গার্ড
ছোট RAII object, যে একটি কাজ (প্রায়ই lambda) মনে রাখে আর scope শেষে destructor-এ সেটি চালায়; যেমন gsl::finally.যেখানে শিখবেন: পর্ব ২১
Scope resolution operator (::)স্কোপ রেজোলিউশন অপারেটর
:: চিহ্ন, যা বলে দেয় কোন namespace বা class-এর ভেতরের নাম চাওয়া হচ্ছে — যেমন std::cout মানে std-এর ভেতরের cout.যেখানে শিখবেন: পর্ব ০৪পর্ব ১১পর্ব ২০
Seedসিড
random engine-এর শুরুর অবস্থা ঠিক করার মান; একই seed মানে একই ধারা, তাই টেস্টে স্থির seed আর আসল ব্যবহারে random_device থেকে seed নেওয়া হয়।যেখানে শিখবেন: পর্ব ৪১পর্ব ৪৮
Segmentation faultসেগমেন্টেশন ফল্ট
প্রোগ্রাম নিষিদ্ধ মেমরিতে হাত দিলে অপারেটিং সিস্টেম যে ত্রুটি দিয়ে তাকে থামিয়ে দেয়; null dereference-এর সাধারণ ফল।যেখানে শিখবেন: পর্ব ১৫
Self-assignmentসেলফ অ্যাসাইনমেন্ট
একটি object-কে নিজেকেই assign করা, যেমন a = a; বা দুটি reference একই object দেখালে x = y; অসাবধান assignment এখানে নিজের ডেটা মুছে ফেলতে পারে।যেখানে শিখবেন: পর্ব ২২
semantic requirementসিমান্টিক রিকোয়ারমেন্ট
concept-এর অর্থের নিয়ম, যেমন a < b আর b < a একসাথে সত্য নয়। standard-এ লেখা থাকে, কিন্তু compiler যাচাই করে না।যেখানে শিখবেন: পর্ব ৪০
Sentinelসেন্টিনেল
range-এর শেষ চিহ্নিত করার একটি বস্তু, যার টাইপ begin-এর iterator থেকে আলাদা হতে পারে — শুধু iterator-এর সাথে তুলনা করা গেলেই হলো। C++20-এর ranges-এ এর ব্যবহার ব্যাপক।যেখানে শিখবেন: পর্ব ৩২পর্ব ৩৫
Sentinel valueসেন্টিনেল ভ্যালু
“নেই” বা “ব্যর্থ” বোঝাতে ফেরত দেওয়া একটি বিশেষ মান, যেমন -1, খালি string বা nullptr. টাইপে এর কোনো চিহ্ন থাকে না, তাই যাচাই করতে ভুলে গেলে ভুল মানটিই নীরবে হিসাবে ঢুকে যায়।যেখানে শিখবেন: পর্ব ৩৮
Separate chainingসেপারেট চেইনিং
collision সামলানোর কৌশল: প্রতিটি bucket-এ একটি linked list, একই bucket-এর সব উপাদান সেই তালিকায়। std::unordered_map-এর প্রচলিত বাস্তবায়ন এই পদ্ধতির।যেখানে শিখবেন: পর্ব ৩১
Separation of concernsসেপারেশন অব কনসার্নস
প্রোগ্রামের আলাদা দায়িত্ব আলাদা অংশে রাখার নীতি — যেমন ব্যবহারকারীর সাথে কথা বলা এক জায়গায়, হিসাবের যুক্তি আরেক জায়গায়।যেখানে শিখবেন: পর্ব ১৯পর্ব ২৭
Sequence containerসিকোয়েন্স কন্টেইনার
যে container উপাদানগুলোকে আপনার দেওয়া ক্রমেই রাখে — প্রথম, দ্বিতীয়, তৃতীয়… C++-এ এরা হলো array, vector, deque, list আর forward_list.যেখানে শিখবেন: পর্ব ৩০
Sequencing (sequenced before)সিকোয়েন্সিং
কোন হিসাব বা side effect অন্যটির আগে শেষ হতেই হবে, সেই নিয়ম; একই ভ্যারিয়েবলে দুটি ক্রমহীন বদল undefined behavior.যেখানে শিখবেন: পর্ব ০৬পর্ব ৫২
Sequential consistency (seq_cst)সিকোয়েনশিয়াল কনসিস্টেন্সি
atomic-এর ডিফল্ট ordering: সব thread সব seq_cst কাজ একটিই সাধারণ ক্রমে দেখে, যেন সব একটি লাইনে ঘটছে। বোঝা সবচেয়ে সহজ।যেখানে শিখবেন: পর্ব ৪৬
Serializationসিরিয়ালাইজেশন
মেমরির object-কে একটি নির্ধারিত format-এ বাইটের সারিতে রূপান্তর করা (ফাইল বা নেটওয়ার্কের জন্য), আর উল্টো কাজটি deserialization.যেখানে শিখবেন: পর্ব ৪৪পর্ব ৫১
Service layerসার্ভিস লেয়ার
যে স্তর একটি অনুরোধ পূর্ণ করতে কাকে কোন ক্রমে ডাকতে হবে তা সাজায় — domain-এর কাজ আর storage-এর কাজ জোড়া লাগায়, কিন্তু নিজে ব্যবসার নিয়ম রাখে না।যেখানে শিখবেন: পর্ব ৫১
Set operations (set_union, set_intersection …)সেট অপারেশন
দুটি সাজানো range থেকে একবার হেঁটে union, intersection, difference বানানো বা includes যাচাই করার algorithm; খরচ O(n + m), ফল একটি output iterator-এ লেখা হয়।যেখানে শিখবেন: পর্ব ৩৩
SFINAEস্ফিনায়ে
Substitution Failure Is Not An Error: template-এর ঘোষণায় টাইপ বসাতে ব্যর্থ হলে error না দিয়ে প্রার্থীটি বাদ দেওয়ার নিয়ম। concepts-এর আগের শর্ত-কৌশলের ভিত্তি।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৪
Shadow memoryশ্যাডো মেমরি
Sanitizer-এর রাখা বাড়তি পাহারা-মেমরি; ASan প্রতি ৮ বাইটের জন্য একটি বাইট রাখে, যা বলে ওই মেমরির কতটুকু ব্যবহার করা বৈধ।যেখানে শিখবেন: পর্ব ৪৩
Shallow copyশ্যালো কপি
শুধু pointer-এর মান (ঠিকানা) কপি করা, যে জিনিস সে দেখায় তা নয়; ফলে দুটি object একই মেমরি ভাগ করে, আর দুজনেই মুছতে গেলে double delete হয়।যেখানে শিখবেন: পর্ব ২২পর্ব ৫৪
Shared libraryশেয়ার্ড লাইব্রেরি
আলাদা ফাইল (.so, .dll, .dylib), যা প্রোগ্রাম চলার সময় লোড হয়। কয়েকটি প্রোগ্রাম একই কপি ভাগ করে নিতে পারে।যেখানে শিখবেন: পর্ব ৪৭
Shared stateশেয়ারড স্টেট
future আর তার উৎসের (async, promise, packaged_task) মাঝের লুকানো জায়গা, যেখানে ফল বা exception রাখা হয় এবং “ready” চিহ্ন দেওয়া হয়।যেখানে শিখবেন: পর্ব ৪৬
Short-circuit evaluationশর্ট-সার্কিট ইভ্যালুয়েশন
&& বা ||-এর বাম পাশ দেখেই উত্তর জানা গেলে ডান পাশ একেবারেই না চালানো; C++ এটির নিশ্চয়তা দেয়।যেখানে শিখবেন: পর্ব ০৬পর্ব ২৩পর্ব ৫৩
Side effectসাইড ইফেক্ট
ফাংশনের ফেরত মানের বাইরে বাইরের জগতে কোনো পরিবর্তন — স্ক্রিনে লেখা, ফাইলে লেখা, global ভ্যারিয়েবল বদলানো ইত্যাদি।যেখানে শিখবেন: পর্ব ০৬পর্ব ০৯পর্ব ২৮
Sieve of Eratosthenesসিভ অব এরাটোস্থেনিস
মৌলিক সংখ্যা বের করার প্রাচীন গ্রিক পদ্ধতি: ২ থেকে শুরু করে প্রতিটি মৌলিক সংখ্যার সব গুণিতক কেটে দেওয়া; যা বাকি থাকে তারাই মৌলিক।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৫০
Signed / unsignedসাইনড / আনসাইনড
Signed টাইপ (যেমন int) ঋণাত্মক মান রাখতে পারে, unsigned টাইপ (যেমন std::size_t) পারে না। দুটি মিশিয়ে তুলনা করলে ঋণাত্মক মান বিশাল ধনাত্মক সংখ্যায় বদলে যেতে পারে।যেখানে শিখবেন: পর্ব ০৩পর্ব ০৬পর্ব ১৩
Signed integer overflowসাইনড ইন্টিজার ওভারফ্লো
int-এর মতো signed টাইপের হিসাবের ফল সীমা ছাড়িয়ে যাওয়া; C++-এ এটি undefined behavior, C++20-এ two's complement বাধ্যতামূলক হওয়ার পরেও।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫০পর্ব ৫৪
SIMDসিমড
Single Instruction, Multiple Data: একটি নির্দেশে পাশাপাশি থাকা কয়েকটি সংখ্যার ওপর একই হিসাব (যেমন একসাথে ৮টি int যোগ)। compiler ফাঁকহীন সরল লুপকে নিজেই SIMD-এ বদলাতে পারে।যেখানে শিখবেন: পর্ব ৪৯
simple requirementসিম্পল রিকোয়ারমেন্ট
requires expression-এর ভেতরের একটি সাধারণ expression; শুধু দেখা হয় সেটি লেখা বৈধ কি না, তার মান বা ফলের টাইপ নয়।যেখানে শিখবেন: পর্ব ৪০
Simula 67সিমুলা
নরওয়েতে Ole-Johan Dahl আর Kristen Nygaard-এর বানানো প্রোগ্রামিং ভাষা, যেখানে প্রথম class, object আর inheritance এসেছিল; C++-এর class-এর মূল অনুপ্রেরণা।যেখানে শিখবেন: পর্ব ২০
Single Responsibility Principle (SRP)সিঙ্গল রেসপন্সিবিলিটি প্রিন্সিপল
একটি class বা module-এর বদলানোর কারণ থাকবে মাত্র একটি — অর্থাৎ সে একটিই দায়িত্বের এলাকার জন্য দায়ী থাকবে।যেখানে শিখবেন: পর্ব ২৭পর্ব ৫১পর্ব ৫৪
Single-config generatorসিঙ্গেল-কনফিগ জেনারেটর
যে generator একটি build ফোল্ডারে একটিই build type রাখে, যেমন Ninja আর Makefile. Build type configure-এর সময় CMAKE_BUILD_TYPE দিয়ে বলতে হয়।যেখানে শিখবেন: পর্ব ৪৭
Sink parameterসিংক প্যারামিটার
যে প্যারামিটারের মান ফাংশনটি নিজের কাছে রেখে দেয় (যেমন setter-এ)। আধুনিক কৌশল: by value নিন, তারপর ভেতরে std::move — lvalue দিলে একটি কপি, temporary দিলে কোনো কপি নয়।যেখানে শিখবেন: পর্ব ৩৬
sizeofসাইজ-অফ
একটি operator, যা বলে দেয় কোনো টাইপ বা ভ্যারিয়েবল মেমরিতে কত বাইট জায়গা নেয়; উত্তর compile-এর সময়েই জানা যায়।যেখানে শিখবেন: পর্ব ০৫পর্ব ২০পর্ব ৩৯
Sliding windowস্লাইডিং উইন্ডো
পরপর উপাদানের একটি চলমান জানালা — ডান দিক নতুন উপাদান ঢোকায়, বাঁ দিক পুরোনো বের করে — যাতে প্রতিটি অংশ নতুন করে না গুনে হিসাব হালনাগাদ হয়।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Small buffer optimization (SBO)স্মল বাফার অপটিমাইজেশন
std::function বা std::any-র মতো টাইপের ভেতরে রাখা ছোট একটি জায়গা, যেখানে ছোট মান বা callable সরাসরি রাখা যায়, heap থেকে মেমরি নিতে হয় না; মাপ বাস্তবায়নভেদে আলাদা।যেখানে শিখবেন: পর্ব ৩৪পর্ব ৩৮
Small String Optimization (SSO)স্মল স্ট্রিং অপটিমাইজেশন
ছোট লেখাকে heap-এ না পাঠিয়ে std::string object-এর নিজের ভেতরেই রেখে দেওয়ার কৌশল; standard এটি বাধ্যতামূলক করেনি, তবে প্রধান সব লাইব্রেরি এটি করে।যেখানে শিখবেন: পর্ব ১৪পর্ব ৩৬পর্ব ৪৯
Smart pointerস্মার্ট পয়েন্টার
std::unique_ptr বা std::shared_ptr-এর মতো class, যা pointer-এর মতো ব্যবহার করা যায় কিন্তু object-এর মালিক হয়, আর কাজ শেষে নিজেই মেমরি ফেরত দেয়।যেখানে শিখবেন: পর্ব ১৫পর্ব ১৬পর্ব ১৭
SOLIDসলিড
object-oriented ডিজাইনের পাঁচটি নীতির সংক্ষিপ্ত নাম — Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation আর Dependency Inversion. নীতিগুলো জনপ্রিয় করেন Robert C. Martin, নামটি দেন Michael Feathers.যেখানে শিখবেন: পর্ব ২৭পর্ব ৫৩পর্ব ৫৪
Source fileসোর্স ফাইল
যে .cpp ফাইল আলাদাভাবে compile হয়ে একটি object file বানায়। সাধারণ ফাংশনের আসল দেহ (সংজ্ঞা) এখানে থাকে।যেখানে শিখবেন: পর্ব ১১পর্ব ২০
Spatial localityস্প্যাশিয়াল লোকালিটি
একটি ঠিকানা পড়ার পরে কাছাকাছি ঠিকানাগুলো শিগগিরই পড়ার প্রবণতা। cache পুরো cache line আনে বলে পাশাপাশি ডেটা পরপর পড়লে বাকিগুলো প্রায় বিনা খরচে পাওয়া যায়।যেখানে শিখবেন: পর্ব ৪৯
Special member functionস্পেশাল মেম্বার ফাংশন
ছয়টি ফাংশন — default constructor, destructor, copy constructor, copy assignment, move constructor, move assignment — যা দরকার হলে compiler নিজে তৈরি করতে পারে।যেখানে শিখবেন: পর্ব ২১পর্ব ২২পর্ব ৫৩
Specification (spec)স্পেসিফিকেশন
একটি প্রোগ্রাম ঠিক কী করবে তার নির্ভুল বর্ণনা — কী ইনপুট নেবে, কী আউটপুট দেবে, কোন নিয়ম মানবে, ভুল ইনপুটে কী করবে।যেখানে শিখবেন: পর্ব ১৯পর্ব ৫১
Spinlockস্পিনলক
এমন তালা, যেখানে অপেক্ষাকারী thread ঘুমায় না, লুপে বারবার চেষ্টা করে; খুব ছোট কাজে দ্রুত, কিন্তু দীর্ঘ অপেক্ষায় CPU নষ্ট করে।যেখানে শিখবেন: পর্ব ৪৬
splice()স্প্লাইস
std::list-এর member function, যা একটি list থেকে node (এক বা একাধিক) খুলে আরেকটি list-এর নির্দিষ্ট জায়গায় জুড়ে দেয় — উপাদান কপি বা move না করে, শুধু pointer বদলে।যেখানে শিখবেন: পর্ব ৩০পর্ব ৫৫
Spurious failureস্পিউরিয়াস ফেইলিওর
compare_exchange_weak মান মিললেও মাঝে মাঝে কারণ ছাড়াই ব্যর্থ হতে পারে; তাই এটিকে সবসময় লুপে রাখা হয়। _strong রূপে এমন হয় না।যেখানে শিখবেন: পর্ব ৪৬
Spurious wakeupস্পুরিয়াস ওয়েকআপ
কেউ notify না করলেও condition_variable-এ অপেক্ষারত thread-এর হঠাৎ জেগে ওঠা। standard এটি ঘটতে দেয়, তাই জেগে উঠে শর্তটা আবার যাচাই করতে হয়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৩পর্ব ৫৫
Stable sort (stability)স্টেবল সর্ট
যে sort সমান (equivalent) উপাদানগুলোর আপেক্ষিক ক্রম ইনপুটে যেমন ছিল, তেমনই রাখে; যেমন সমান নম্বরের শিক্ষার্থীরা রোলের ক্রমেই থাকে।যেখানে শিখবেন: পর্ব ৩৩
Stack (memory)স্ট্যাক
ফাংশনের local ভ্যারিয়েবল যে মেমরি-এলাকায় থাকে; ফাংশন ডাকলে জায়গা নেওয়া হয়, ফাংশন শেষ হলে নিজে থেকেই ফেরত যায়। দ্রুত, কিন্তু আকারে ছোট।যেখানে শিখবেন: পর্ব ১৬
Stack frameস্ট্যাক ফ্রেম
একটি ফাংশন ডাকলে stack মেমরিতে তার জন্য তৈরি হওয়া জায়গা, যেখানে তার প্যারামিটার আর local ভ্যারিয়েবল থাকে; ফাংশন শেষ হলে এটি মুছে যায়।যেখানে শিখবেন: পর্ব ০৯পর্ব ১০পর্ব ১৬
Stack overflowস্ট্যাক ওভারফ্লো
call stack-এর জায়গা ফুরিয়ে যাওয়া — সাধারণত খুব গভীর বা অসীম recursion-এর কারণে; প্রোগ্রাম সাধারণত crash করে।যেখানে শিখবেন: পর্ব ০৯পর্ব ৫৫
Stack unwindingস্ট্যাক আনওয়াইন্ডিং
exception ছোড়া হলে catch না পাওয়া পর্যন্ত একে একে ফাংশনের frame বন্ধ হওয়া; এ সময় stack-এর object-গুলোর destructor চলে, কিন্তু হাতে লেখা delete-এর লাইন চলে না।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ৩৭
Stack-use-after-returnস্ট্যাক ইউজ আফটার রিটার্ন
ফাংশন ফেরত যাওয়ার পর তার stack frame-এর কোনো local ভ্যারিয়েবলের মেমরি ব্যবহার করা; AddressSanitizer এই নামে ভুলটি জানায়।যেখানে শিখবেন: পর্ব ১৮
Stackful coroutine (fiber)স্ট্যাকফুল কোরুটিন
যে coroutine নিজের একটি পুরো stack পায়, তাই ভেতরের যেকোনো গভীর ফাংশন-ডাক থেকেও থামতে পারে। ব্যবহার সহজ, কিন্তু প্রতিটির জন্য বেশি মেমরি লাগে।যেখানে শিখবেন: পর্ব ৪২
Stackless coroutineস্ট্যাকলেস কোরুটিন
যে coroutine শুধু নিজের frame রাখে, পুরো stack নয়; তাই কেবল নিজের শরীরের ভেতরেই থামতে পারে। C++20-এর coroutine এই ধরনের।যেখানে শিখবেন: পর্ব ৪২
Standard libraryস্ট্যান্ডার্ড লাইব্রেরি
C++ standard-এর অংশ হিসেবে প্রতিটি compiler-এর সাথে আসা তৈরি কোডের ভান্ডার — std::cout, std::vector, std::string, std::sort ইত্যাদি।যেখানে শিখবেন: পর্ব ০৩পর্ব ৩৮পর্ব ৪১
STAR methodস্টার মেথড
আচরণগত প্রশ্নের উত্তর সাজানোর কাঠামো: Situation (পরিস্থিতি), Task (দায়িত্ব), Action (নিজে কী করলেন), Result (ফল ও শিক্ষা)।যেখানে শিখবেন: পর্ব ৫৫
State (অবস্থা)স্টেট
কোনো object-এর ভেতরে এই মুহূর্তে যে ডেটা আছে — যেমন ওয়ালেটের বর্তমান ব্যালান্স। কাজ করার সাথে সাথে অবস্থা বদলায়।যেখানে শিখবেন: পর্ব ০২
Statementস্টেটমেন্ট
প্রোগ্রামের একটি সম্পূর্ণ নির্দেশ। সাধারণ statement শেষ হয় সেমিকোলন ; দিয়ে, আর ওপর থেকে নিচে একটার পর একটা চলে।যেখানে শিখবেন: পর্ব ০৪
static (file scope)স্ট্যাটিক
Namespace-এর স্তরে ফাংশন বা ভ্যারিয়েবলের আগে static লিখলে সেটি internal linkage পায় — শুধু সেই ফাইলে দেখা যায়। C থেকে আসা পদ্ধতি; class-এর ভেতরের static-এর মানে আলাদা।যেখানে শিখবেন: পর্ব ১১
Static analysisস্ট্যাটিক অ্যানালাইসিস
প্রোগ্রাম না চালিয়ে শুধু কোড পড়ে সম্ভাব্য বাগ খোঁজা; clang-tidy আর cppcheck এর পরিচিত টুল। কখনো ভুল সতর্কবার্তা দেয়, কিছু বাগ ছেড়েও যায়।যেখানে শিখবেন: পর্ব ৪৩
Static bindingস্ট্যাটিক বাইন্ডিং
কোন ফাংশন চলবে, তা compile-এর সময় ঘোষিত টাইপ দেখে ঠিক করা; non-virtual ফাংশনে এটাই হয়। একে early binding-ও বলে।যেখানে শিখবেন: পর্ব ২৫পর্ব ৫৪
Static initialization order fiascoস্ট্যাটিক ইনিশিয়ালাইজেশন অর্ডার ফিয়াস্কো
এক .cpp ফাইলের global ভ্যারিয়েবল তৈরির সময় অন্য ফাইলের এমন global পড়ে, যা হয়তো তখনো তৈরি হয়নি — কারণ ফাইলগুলোর মধ্যে ক্রম অনির্দিষ্ট। constinit বা ফাংশনের ভেতরের static দিয়ে এড়ানো যায়।যেখানে শিখবেন: পর্ব ৩৯
Static libraryস্ট্যাটিক লাইব্রেরি
object file-এর একটি সংকলন, ফাইলের নাম .a বা .lib হয়। Link-এর সময় দরকারি কোড প্রোগ্রামের ভেতরে কপি হয়ে যায়।যেখানে শিখবেন: পর্ব ৪৭
Static local variableস্ট্যাটিক লোকাল ভ্যারিয়েবল
ফাংশনের ভেতরে static দিয়ে ঘোষিত ভ্যারিয়েবল; নাম শুধু ফাংশনের ভেতরে চেনা যায়, কিন্তু প্রথমবার তৈরি হওয়ার পর প্রোগ্রাম শেষ পর্যন্ত বাঁচে।যেখানে শিখবেন: পর্ব ১৮
Static memberস্ট্যাটিক মেম্বার
class-এর ভেতরে static দিয়ে ঘোষণা করা ডেটা বা ফাংশন, যার পুরো প্রোগ্রামে একটিই কপি; কোনো object-এর ভেতরে থাকে না, আর static ফাংশনে this থাকে না।যেখানে শিখবেন: পর্ব ২০পর্ব ২৯পর্ব ৫৪
Static polymorphismস্ট্যাটিক পলিমরফিজম
template দিয়ে পাওয়া polymorphism, যেখানে কোন ফাংশন চলবে তা compile-এর সময়েই ঠিক হয়। vtable লাগে না, ফাংশন inline হতে পারে।যেখানে শিখবেন: পর্ব ২৬পর্ব ২৮পর্ব ২৯
Static reflectionস্ট্যাটিক রিফ্লেকশন
C++26-এ গৃহীত বৈশিষ্ট্য: compile-এর সময় প্রোগ্রাম নিজের গঠন দেখতে পারে — struct-এর ঘর, enum-এর মানের নাম — আর তা থেকে কোড তৈরি করতে পারে।যেখানে শিখবেন: পর্ব ৪২
Static storage durationস্ট্যাটিক স্টোরেজ ডিউরেশন
Global, namespace-এর ভেতরের আর static হিসেবে ঘোষিত ভ্যারিয়েবলের আয়ু: প্রোগ্রাম শেষ হওয়া পর্যন্ত বাঁচে।যেখানে শিখবেন: পর্ব ১৮পর্ব ৩৯
Static typeস্ট্যাটিক টাইপ
কোডে একটি ভ্যারিয়েবল, reference বা pointer-এর যে টাইপ ঘোষণা করা আছে — compiler compile-এর সময় যা দেখে।যেখানে শিখবেন: পর্ব ২৫
Static typingস্ট্যাটিক টাইপিং
প্রতিটি ভ্যারিয়েবল ও মানের টাইপ compile-এর সময়েই ঠিক থাকে আর যাচাই হয়। টাইপের ভুল প্রোগ্রাম চালানোর আগেই ধরা পড়ে।যেখানে শিখবেন: পর্ব ০১
static_assertস্ট্যাটিক অ্যাসার্ট
compile-এর সময়ে একটি শর্ত পরীক্ষা করে; শর্ত মিথ্যা হলে বার্তা দেখিয়ে বিল্ড থামায়। চলার সময় এর কোনো খরচ নেই।যেখানে শিখবেন: পর্ব ৩৯পর্ব ৪০
static_castস্ট্যাটিক কাস্ট
C++-এর স্পষ্ট টাইপ বদলের লেখা, যেমন static_cast(x); শুধু যুক্তিসংগত বদল করে এবং কোডে সহজে খুঁজে পাওয়া যায়।যেখানে শিখবেন: পর্ব ০৫পর্ব ১২পর্ব ৩৬
std::accumulateএস-টি-ডি অ্যাকিউমুলেট
-এর algorithm, যা একটি range-এর সব উপাদান একটি শুরুর মানের সাথে যোগ (বা অন্য কোনো নিয়মে জোড়া) করে ফল দেয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩৩পর্ব ৩৫
std::addressofএসটিডি অ্যাড্রেসঅফ
-এর ফাংশন, যা একটি object-এর আসল ঠিকানা দেয়, এমনকি তার class unary & overload করে থাকলেও। generic লাইব্রেরি কোড & এর বদলে এটি ব্যবহার করে।যেখানে শিখবেন: পর্ব ২৩
std::advanceস্টাড অ্যাডভান্স
একটি iterator-কে n ঘর সরায় (নিজেকেই বদলে), কিছু ফেরত দেয় না। random access হলে এক ধাপে, নাহলে n ধাপে; সীমা যাচাই করে না।যেখানে শিখবেন: পর্ব ৩২
std::all_of / any_of / none_ofএস-টি-ডি অল অফ
range-এর সব, অন্তত একটি, বা একটিও উপাদান predicate পূরণ করে কি না, তা bool-এ জানায় (C++11 থেকে)। খালি range-এ all_of আর none_of true, any_of false দেয়।যেখানে শিখবেন: পর্ব ৩৩
std::anyএস-টি-ডি এনি
C++17-এর হেডারের টাইপ, যা যেকোনো (কপি করা যায় এমন) টাইপের একটি মান রাখতে পারে। কোন টাইপ আছে তা যাচাই হয় চলার সময়, std::any_cast দিয়ে পড়ার মুহূর্তে।যেখানে শিখবেন: পর্ব ৩৮
std::any_castএনি কাস্ট
std::any থেকে মান বের করার ফাংশন; চাওয়া টাইপ ভেতরের টাইপের সাথে হুবহু মিলতে হয়, কোনো রূপান্তর হয় না। any-র pointer দিলে ভুল টাইপে nullptr দেয়।যেখানে শিখবেন: পর্ব ৩৮
std::arrayএস-টি-ডি অ্যারে
C++-এর নির্দিষ্ট আকারের array, যার আকার compile-এর সময়েই ঠিক থাকে। নিজের আকার জানে, কপি করা যায়, আর গতিতে সাধারণ C-ধাঁচের array-র সমান।যেখানে শিখবেন: পর্ব ০১পর্ব ১৩পর্ব ২৯
std::asyncস্টাড অ্যাসিঙ্ক
-এর ফাংশন, যা একটি কাজ চালানোর ব্যবস্থা করে আর সাথে সাথে একটি std::future ফেরত দেয়। launch policy না দিলে কাজটি নতুন thread-এ চলবে না deferred হবে, তা লাইব্রেরি বেছে নেয়।যেখানে শিখবেন: পর্ব ৪৬
std::atomicস্টাড অ্যাটমিক
-এর টেমপ্লেট, যার ওপর পড়া, লেখা বা ++ একটি অবিভাজ্য কাজ — মাঝখানে অন্য thread ঢুকতে পারে না, তাই data race হয় না।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৪৬পর্ব ৫২
std::atomic_flagস্টাড অ্যাটমিক ফ্ল্যাগ
সবচেয়ে সরল atomic বুলিয়ান পতাকা, test_and_set() আর clear() দিয়ে চলে; standard একমাত্র এটিকেই সব প্ল্যাটফর্মে lock-free হওয়ার নিশ্চয়তা দেয়।যেখানে শিখবেন: পর্ব ৪৬
std::auto_ptrঅটো পয়েন্টার
C++98-এর প্রথম smart pointer; "কপি" করলে গোপনে মালিকানা সরে যেত। C++11-এ deprecated, C++17-এ ভাষা থেকে সরিয়ে ফেলা হয়েছে।যেখানে শিখবেন: পর্ব ১৭
std::back_inserterস্টাড ব্যাক ইনসার্টার
একটি container থেকে এমন output iterator বানায়, যাতে লিখলে আসলে push_back হয় — খালি container-এ algorithm দিয়ে উপাদান যোগ করতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩২
std::back_inserterএস-টি-ডি ব্যাক ইনসার্টার
header-এর একটি সহায়ক, যা এমন output iterator বানায়, যাতে প্রতিটি লেখা container-এর push_back হয়ে যায়; খালি vector-এ copy বা copy_if করার নিরাপদ উপায়।যেখানে শিখবেন: পর্ব ৩৩
std::bad_allocব্যাড অ্যালক
সাধারণ new যখন মেমরি জোগাড় করতে পারে না, তখন যে exception ছোড়ে। new(std::nothrow) ব্যবহার করলে exception-এর বদলে nullptr ফেরত আসে।যেখানে শিখবেন: পর্ব ১৬পর্ব ৩৭
std::bad_any_castব্যাড এনি কাস্ট
std::any_cast-এ চাওয়া টাইপ any-র ভেতরের টাইপের সাথে না মিললে যে exception ছোড়া হয় — যেমন ভেতরে int, চাওয়া হয়েছে long.যেখানে শিখবেন: পর্ব ৩৮
std::bad_function_callব্যাড ফাংশন কল
খালি std::function ডাকলে যে exception ছোড়া হয়; এড়াতে ডাকার আগে if (f) দিয়ে দেখে নিন।যেখানে শিখবেন: পর্ব ৩৪
std::bad_optional_accessব্যাড অপশনাল অ্যাক্সেস
খালি std::optional-এর ওপর value() ডাকলে যে exception ছোড়া হয়। *opt-এর মতো যাচাইহীন পড়ায় এটি আসে না — সেখানে undefined behavior.যেখানে শিখবেন: পর্ব ৩৮
std::bad_variant_accessব্যাড ভ্যারিয়েন্ট অ্যাক্সেস
std::get দিয়ে variant থেকে এমন টাইপ পড়তে চাইলে যে exception ছোড়া হয়, যা এখন ভেতরে নেই। valueless অবস্থায় visit ডাকলেও এটি আসে।যেখানে শিখবেন: পর্ব ৩৮
std::barrierস্টাড ব্যারিয়ার
C++20-এর বারবার ব্যবহারযোগ্য মিলনবিন্দু (): নির্দিষ্ট সংখ্যক thread সবাই পৌঁছালে তবেই সবাই পরের ধাপে যায়, তারপর গণক আবার শুরু হয়।যেখানে শিখবেন: পর্ব ৪৫
std::bindস্টান্ডার্ড বাইন্ড
C++11-এর একটি পুরোনো যন্ত্র, যা একটি ফাংশনের কিছু argument আগে বসিয়ে নতুন callable বানায় (_1, _2 placeholder দিয়ে); নতুন কোডে এর বদলে lambda লিখুন।যেখানে শিখবেন: পর্ব ৩৪
std::bit_castএসটিডি বিট কাস্ট
C++20-এর header-এর ফাংশন, যা একই মাপের দুটি টাইপের মধ্যে বিটগুলো হুবহু কপি করে নতুন object দেয় — strict aliasing না ভেঙে।যেখানে শিখবেন: পর্ব ৪২পর্ব ৪৩
std::bitsetবিটসেট
compile-এর সময় জানা নির্দিষ্ট সংখ্যক bit-এর সংগ্রহ; bit-গুলো শব্দে ভরে রাখে, তাই AND, OR, shift একসাথে অনেক bit-এ চলে।যেখানে শিখবেন: পর্ব ৫০
std::cerrএসটিডি সি-এরর
Error মেসেজের জন্য standard error stream (stderr). এর buffer নেই, তাই লেখা সঙ্গে সঙ্গে যায়; stdout ফাইলে পাঠালেও এটি আলাদা পথে আসে।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭পর্ব ৪৮
std::chronoএস-টি-ডি ক্রোনো
C++11-এর সময়ের লাইব্রেরি (header ): duration, time_point আর clock দেয়, যেখানে সময়ের একক টাইপের অংশ; C++20 থেকে এতে ক্যালেন্ডার আর time zone-ও আছে।যেখানে শিখবেন: পর্ব ৪১পর্ব ৪৯
std::chrono::steady_clockস্টেডি ক্লক
এমন ঘড়ি যা কখনো পেছনে যায় না (monotonic); দেয়ালঘড়ি বদলালেও প্রভাবিত হয় না, তাই সময়কাল, timeout আর benchmark মাপার সঠিক ঘড়ি।যেখানে শিখবেন: পর্ব ৪১পর্ব ৪৯
std::chrono::sys_daysসিস ডেজ
দিন-এককের system_clock time_point — ১৯৭০-এর ১ জানুয়ারি থেকে কত দিন; তারিখের যোগ-বিয়োগ আর দুই তারিখের মধ্যে দিন গোনা এতেই করা হয়।যেখানে শিখবেন: পর্ব ৪১
std::chrono::system_clockসিস্টেম ক্লক
কম্পিউটারের দেয়ালঘড়ি — আসল তারিখ ও সময়, UTC-তে; ক্যালেন্ডারে রূপান্তর করা যায়, কিন্তু ব্যবহারকারী বা NTP সময় ঠিক করলে লাফ দিতে পারে, তাই সময়কাল মাপার জন্য নয়।যেখানে শিখবেন: পর্ব ৪১
std::chrono::year_month_dayইয়ার মান্থ ডে
C++20-এর তারিখের টাইপ, যা বছর, মাস আর দিন তিনটি আলাদা ঘরে রাখে, যেমন 2026y/October/17; ok() বলে তারিখটি বাস্তবে আছে কি না।যেখানে শিখবেন: পর্ব ৪১
std::cinএসটিডি সি-ইন
Standard input stream — সাধারণত কিবোর্ড। >> দিয়ে মান পড়া হয়; string-এ পড়লে প্রথম ফাঁকা জায়গা পর্যন্ত একটি শব্দ আসে।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭
std::cin.ignoreসি-ইন ইগনোর
Input buffer থেকে নির্দিষ্ট সংখ্যক অক্ষর, অথবা একটি নির্দিষ্ট অক্ষর (সাধারণত \n) পাওয়া পর্যন্ত সব অক্ষর পড়ে ফেলে দেয়।যেখানে শিখবেন: পর্ব ০৭
std::cin.tieসি-ইন টাই
cin কোন output stream-এর সাথে বাঁধা তা ঠিক করে; ডিফল্টে cout, তাই প্রতিবার পড়ার আগে cout flush হয়। tie(nullptr) দিলে এই বাঁধন খুলে যায়।যেখানে শিখবেন: পর্ব ০৭পর্ব ৫০
std::clampএস-টি-ডি ক্ল্যাম্প
C++17-এর ফাংশন: clamp(x, lo, hi) মানটিকে [lo, hi] সীমার ভেতরে টেনে আনে — lo-এর নিচে হলে lo, hi-এর ওপরে হলে hi; lo যেন hi-এর চেয়ে বড় না হয়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৪১
std::condition_variableস্টাড কন্ডিশন ভ্যারিয়েবল
-এর টাইপ, যা দিয়ে একটি thread কোনো শর্ত সত্য হওয়া পর্যন্ত CPU না খরচ করে ঘুমিয়ে অপেক্ষা করে, আর অন্য thread notify দিয়ে তাকে জাগায়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৫
std::convertible_toএস-টি-ডি কনভার্টিবল টু
standard concept; প্রথম টাইপের মান নিজে থেকে দ্বিতীয় টাইপে রূপান্তর হতে পারলে সত্য, যেমন int থেকে double.যেখানে শিখবেন: পর্ব ৪০
std::copyableএস-টি-ডি কপিয়েবল
standard concept; টাইপটির object কপি করে বানানো, move করা আর assign করা যায় কি না। std::unique_ptr এটি মানে না।যেখানে শিখবেন: পর্ব ৪০
std::coutএসটিডি সি-আউট
Standard output stream — সাধারণত স্ক্রিন। << দিয়ে লেখা, সংখ্যা বা অক্ষর এতে পাঠানো হয়; header .যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭
std::dequeস্টাড ডেক
দুই প্রান্তেই দ্রুত যোগ-বিয়োগ করা যায় এমন sequence container; ডেটা কয়েকটি খণ্ডে থাকে, iterator random access.যেখানে শিখবেন: পর্ব ৩০পর্ব ৩২পর্ব ৫৩
std::distanceস্টাড ডিসট্যান্স
দুটি iterator-এর মাঝে কয় ধাপ, তা বের করে। random access iterator-এ এক ধাপে (বিয়োগ), অন্যগুলোতে একে একে গুনে — তাতে O(n) সময় লাগে।যেখানে শিখবেন: পর্ব ৩২
std::enable_ifএস-টি-ডি এনেবল ইফ
C++11-এর একটি type trait, যার ভেতরের type থাকে শুধু শর্ত সত্য হলে; SFINAE দিয়ে template বাদ দেওয়ার পুরোনো কৌশল।যেখানে শিখবেন: পর্ব ৪০
std::endlএসটিডি এন্ড-এল
Stream-এ নতুন লাইন লিখে সাথে সাথে flush করে এমন manipulator. শুধু নতুন লাইন চাইলে \n দ্রুততর।যেখানে শিখবেন: পর্ব ০৪পর্ব ৫০পর্ব ৫৪
std::equal_rangeএস-টি-ডি ইকুয়াল রেঞ্জ
সাজানো range-এ একটি মানের সমান সব উপাদানের শুরু আর শেষ — lower_bound আর upper_bound — একটি জোড়া হিসেবে ফেরত দেয়; দুটির দূরত্বই সেই মানের সংখ্যা।যেখানে শিখবেন: পর্ব ৩৩
std::eraseএস-টি-ডি ইরেজ
C++20-এর free function: std::erase(v, x) container থেকে x-এর সমান সব উপাদান মুছে দেয় আর কয়টি মুছল তা ফেরত দেয়; erase-remove idiom-এর এক লাইনের রূপ।যেখানে শিখবেন: পর্ব ৩০
std::erase_ifএস-টি-ডি ইরেজ ইফ
C++20-এর ফাংশন, যা একটি শর্ত পূরণ করা সব উপাদান container থেকে এক ধাক্কায় মুছে দেয় — লুপের ভেতরে erase-এর ঝামেলা ছাড়াই।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩০পর্ব ৩২
std::errcএস-টি-ডি ই-আর-আর-সি
standard error code-এর একটি enum class; from_chars আর to_chars ফল হিসেবে এটি দেয় — std::errc{} মানে সফল, invalid_argument বা result_out_of_range মানে ভুল।যেখানে শিখবেন: পর্ব ৪১
std::error_codeএসটিডি এরর কোড
C++11-এর -এর টাইপ: একটি ভুলের সংখ্যা আর তার category, সাথে message(). std::filesystem-এর অনেক ফাংশনের exception-ছাড়া রূপ ভুলটি এতে লিখে দেয়।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৪৪
std::exceptionএসটিডি এক্সেপশন
standard library-র সব exception-এর ভিত্তি class ( header-এ আছে)। এর virtual ফাংশন what() ভুলের একটি বর্ণনা দেয়; তাই const std::exception& দিয়ে পুরো পরিবারকে ধরা যায়।যেখানে শিখবেন: পর্ব ৩৭
std::exception_ptrস্টাড এক্সেপশন পিটিআর
একটি ধরা exception-কে ধরে রাখার হাতল, যা কপি করে অন্য জায়গায় বা অন্য thread-এ নিয়ে std::rethrow_exception দিয়ে আবার ছোড়া যায়। future ভেতরে এটিই ব্যবহার করে।যেখানে শিখবেন: পর্ব ৪৬
std::exchangeস্টাড এক্সচেঞ্জ
-এর ফাংশন (C++14): std::exchange(x, v) x-এ নতুন মান v বসায় আর x-এর পুরোনো মান ফেরত দেয়; move constructor লিখতে খুব কাজে লাগে।যেখানে শিখবেন: পর্ব ২২পর্ব ৫৫
std::execution (senders/receivers)স্টাড এক্সিকিউশন
C++26-এ গৃহীত async ও সমান্তরাল কাজের কাঠামো। sender আর receiver দিয়ে ঠিক করা হয় কোন কাজ কোথায় চলবে আর কাজগুলো কীভাবে জোড়া লাগবে।যেখানে শিখবেন: পর্ব ৪২পর্ব ৪৬
std::expectedএস-টি-ডি এক্সপেক্টেড
C++23-এর টাইপ std::expected, যা হয় একটি সফল মান T রাখে, নয়তো ব্যর্থতার কারণ হিসেবে একটি error E. optional-এর মতো, কিন্তু “কেন নেই” তাও জানায়।যেখানে শিখবেন: পর্ব ৩৭পর্ব ৩৮পর্ব ৫১
std::filesystemএস-টি-ডি ফাইলসিস্টেম
C++17-এর লাইব্রেরি (header ), যা ফাইল ও ফোল্ডারের পথ, অস্তিত্ব, তালিকা, কপি, মোছা — সব অপারেটিং সিস্টেমে একই কোডে করতে দেয়।যেখানে শিখবেন: পর্ব ৪১পর্ব ৪৪
std::filesystem::filesystem_errorফাইলসিস্টেম এরর
std::filesystem-এর ফাংশন error_code ছাড়া ডাকলে ভুল হলে যে exception ছোড়ে; std::system_error থেকে আসা, code(), path1() আর path2() দেয়।যেখানে শিখবেন: পর্ব ৪৪
std::filesystem::pathফাইলসিস্টেম পাথ
ফাইল বা ফোল্ডারের পথের টাইপ; filename(), extension(), parent_path() দিয়ে অংশ আলাদা করা যায়, আর / দিয়ে পথ জোড়া যায় — string কাটাকাটি ছাড়াই।যেখানে শিখবেন: পর্ব ৪১পর্ব ৪৪
std::filesystem::recursive_directory_iteratorরিকার্সিভ ডিরেক্টরি ইটারেটর
একটি ফোল্ডার আর তার ভেতরের সব ফোল্ডারের প্রতিটি জিনিস একবার করে দেখায়; depth() দিয়ে স্তর জানা যায়। ক্রম অনির্দিষ্ট, ডিফল্টে symlink-করা ফোল্ডারে ঢোকে না।যেখানে শিখবেন: পর্ব ৪৪
std::flat_mapস্ট্যান্ডার্ড ফ্ল্যাট ম্যাপ
C++23-এ আসা container, যা map-এর মতো আচরণ করে কিন্তু ভেতরে চাবি আর মান সাজানো vector-এ রাখে। খোঁজা আর হাঁটা cache-বান্ধব, তবে মাঝখানে ঢোকানো বা মোছা O(n).যেখানে শিখবেন: পর্ব ৩১পর্ব ৪২
std::floating_pointএস-টি-ডি ফ্লোটিং পয়েন্ট
standard concept; T যদি float, double বা long double-এর মতো দশমিক সংখ্যার টাইপ হয়, তবে সত্য।যেখানে শিখবেন: পর্ব ৪০
std::formatএসটিডি ফরম্যাট
C++20-এর ফাংশন (header ), যা {} placeholder-যুক্ত format string থেকে একটি std::string বানায়; format string compile-এর সময় যাচাই হয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭পর্ব ১৯
std::formattableএস-টি-ডি ফরম্যাটেবল
C++23-এর standard concept; একটি টাইপকে std::format বা std::println দিয়ে ছাপানো যায় কি না।যেখানে শিখবেন: পর্ব ৪০
std::formatterএসটিডি ফরম্যাটার
C++20-এর লাইব্রেরির class template, যা বলে দেয় একটি টাইপ কীভাবে std::format, std::print আর std::println-এ ছাপা হবে। নিজের টাইপের জন্য এর specialization লিখতে হয়।যেখানে শিখবেন: পর্ব ২৩
std::forwardস্টাড ফরওয়ার্ড
-এর একটি শর্তসাপেক্ষ cast: std::forward(x) মূল আর্গুমেন্ট lvalue হলে lvalue, rvalue হলে rvalue ফেরত দেয়। forwarding reference-এর সাথে ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৩৬
std::forward_listএস-টি-ডি ফরোয়ার্ড লিস্ট
C++11-এর singly linked list: প্রতিটি node শুধু পরেরটির ঠিকানা রাখে, তাই শুধু সামনের দিকে হাঁটা যায়। std::list-এর চেয়ে প্রতি উপাদানে একটি pointer কম খরচ; size() member-ও নেই।যেখানে শিখবেন: পর্ব ৩০
std::from_charsএস-টি-ডি ফ্রম-চার্স
C++17-এর দ্রুত রূপান্তর-ফাংশন (header ), যা লেখা থেকে সংখ্যা পড়ে; exception ছোড়ে না, locale দেখে না, বরং ফল হিসেবে একটি error code আর থামার জায়গা ফেরত দেয়।যেখানে শিখবেন: পর্ব ১৪পর্ব ৩৭পর্ব ৪১
std::fstreamস্টাড এফ-স্ট্রিম
-এর টাইপ, যা একটি খোলা ফাইলে পড়া ও লেখার stream; ifstream আর ofstream এর আত্মীয়। C++11 থেকে এগুলো move করা যায়, কিন্তু কপি করা যায় না।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৪৪
std::functionস্টান্ডার্ড ফাংশন
functional হেডারের একটি টাইপ, যা নির্দিষ্ট স্বাক্ষরের যেকোনো ডাকা যায় এমন জিনিস — সাধারণ ফাংশন, lambda বা function object — ধরে রাখতে পারে।যেখানে শিখবেন: পর্ব ১৫পর্ব ১৮পর্ব ২৬
std::futureস্টাড ফিউচার
ভবিষ্যতে আসবে এমন একটি ফলের রসিদ। get() ফল তৈরি না হওয়া পর্যন্ত অপেক্ষা করে, ফল বা জমা থাকা exception ফেরত দেয়, আর একবারই ডাকা যায়; future কপি হয় না, শুধু move হয়।যেখানে শিখবেন: পর্ব ৪৬
std::gcdএস-টি-ডি জি-সি-ডি
দুটি পূর্ণসংখ্যার গরিষ্ঠ সাধারণ গুণনীয়ক (C++17, header ); যেমন gcd(12, 18) = 6.যেখানে শিখবেন: পর্ব ৪১পর্ব ৫০
std::generatorস্টাড জেনারেটর
C++23-এর লাইব্রেরি টাইপ ( header), যা দিয়ে co_yield-ওয়ালা coroutine একটি range হয়ে যায় — মানগুলো একটি একটি করে, শুধু চাওয়া হলে তৈরি হয়।যেখানে শিখবেন: পর্ব ৪২
std::get_ifএস-টি-ডি গেট ইফ
variant-এর pointer নিয়ে চাওয়া টাইপের মানের pointer দেয়; ভেতরে অন্য টাইপ থাকলে exception-এর বদলে nullptr দেয়।যেখানে শিখবেন: পর্ব ৩৮
std::getlineএসটিডি গেটলাইন
Stream থেকে একটি পুরো লাইন (স্পেসসহ) std::string-এ পড়ে; লাইনের শেষের \n খেয়ে ফেলে, কিন্তু string-এ রাখে না। header .যেখানে শিখবেন: পর্ব ০৭পর্ব ১৯পর্ব ৪৪
std::hashস্ট্যান্ডার্ড হ্যাশ
C++ standard library-র hash ফাংশন-object টেমপ্লেট; int, std::string-এর মতো টাইপের জন্য তৈরি আছে। নিজের টাইপকে unordered_map-এর চাবি করতে std::hash-এর specialization লিখতে হয়, বা আলাদা hasher দিতে হয়।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫০
std::holds_alternativeহোল্ডস অল্টারনেটিভ
std::holds_alternative(v) জানায়, variant v-এর ভেতরে এই মুহূর্তে T টাইপের মান আছে কি না — true বা false.যেখানে শিখবেন: পর্ব ৩৮
std::ifstreamস্টাড আই-এফ-স্ট্রিম
-এর input file stream: ফাইল থেকে পড়ার টাইপ, ব্যবহার cin-এর মতো, >> আর getline দিয়ে। ফাইল না থাকলে খোলা ব্যর্থ হয়, exception নয়।যেখানে শিখবেন: পর্ব ৪৪
std::initializer_listইনিশিয়ালাইজার লিস্ট
{1, 2, 3}-এর মতো brace-তালিকা গ্রহণ করার টাইপ; যে class-এর এমন constructor আছে (যেমন vector), {} দিলে সেটিই অগ্রাধিকার পায়।যেখানে শিখবেন: পর্ব ২১পর্ব ৫৩
std::integralএস-টি-ডি ইন্টিগ্রাল
C++20-এর standard concept; T পূর্ণসংখ্যার টাইপ হলে সত্য। int, long, unsigned-এর সাথে bool আর char-ও এর মধ্যে পড়ে।যেখানে শিখবেন: পর্ব ৪০
std::invalid_argumentএসটিডি ইনভ্যালিড আর্গুমেন্ট
std::logic_error থেকে আসা exception, যা বোঝায় প্যারামিটারের মানই অর্থহীন। যেমন std::stoi("abc") এটি ছোড়ে।যেখানে শিখবেন: পর্ব ৩৭
std::invocableএস-টি-ডি ইনভোকেবল
standard concept; একটি callable-কে নির্দিষ্ট টাইপের argument দিয়ে ডাকা যায় কি না। ফলের টাইপ নিয়ে কোনো শর্ত নেই।যেখানে শিখবেন: পর্ব ৪০
std::ios::sync_with_stdioসিঙ্ক উইথ এসটিডিআইও
C++ stream আর C-এর printf/scanf একই ক্রমে মিলিয়ে চলবে কি না, তা ঠিক করার ফাংশন। false দিলে C++ stream নিজের buffer পায় ও দ্রুত হয়, কিন্তু তখন দুই ধরনের I/O মেশানো যায় না।যেখানে শিখবেন: পর্ব ০৭পর্ব ৫০
std::iotaএস-টি-ডি আয়োটা
-এর algorithm, যা একটি range-কে শুরুর মান থেকে একে একে বাড়িয়ে ভরে দেয়, যেমন 1 2 3 4 5; views::iota-র মতো নয়, এটি সত্যিই ঘরগুলোতে লেখে।যেখানে শিখবেন: পর্ব ৩৩
std::is_constant_evaluatedএসটিডি ইজ কনস্ট্যান্ট ইভ্যালুয়েটেড
C++20-এর ফাংশন (); constexpr ফাংশনের ভেতরে জানায় এই মুহূর্তে হিসাবটি compile-এর সময়ে চলছে কি না। if constexpr-এর শর্তে দিলে সবসময় true.যেখানে শিখবেন: পর্ব ৩৯
std::istream_iteratorস্টাড আইস্ট্রিম ইটারেটর
একটি input iterator, যা প্রতিবার ++ করলে একটি stream (যেমন std::cin) থেকে একটি মান পড়ে; ইনপুট ফুরালে খালিভাবে তৈরি করা iterator-এর সমান হয়ে যায়।যেখানে শিখবেন: পর্ব ৩২
std::istringstreamআই-স্ট্রিং-স্ট্রিম
একটি std::string-কে ইনপুট stream-এর মতো পড়ার টাইপ (header ); cin-এর মতো >> বা getline দিয়ে লেখার টুকরো বের করা যায়।যেখানে শিখবেন: পর্ব ১৪পর্ব ১৯পর্ব ৪৪
std::iterator_traitsস্টাড ইটারেটর ট্রেইটস
একটি template, যা দিয়ে লাইব্রেরি কোনো iterator-এর value_type, difference_type আর category-র মতো তথ্য পড়ে নেয়।যেখানে শিখবেন: পর্ব ৩২
std::jthreadস্টাড জে-থ্রেড
C++20-এর thread টাইপ ( header). destructor নিজে থেকে stop চায় আর join করে, তাই join ভুলে যাওয়ার সুযোগ নেই; সাথে std::stop_token দিয়ে থামার অনুরোধ পাঠানো যায়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫১পর্ব ৫৪
std::latchস্টাড ল্যাচ
C++20-এর একবার-ব্যবহারের গণক (): count_down() দিয়ে সংখ্যা কমে, আর wait() শূন্য হওয়া পর্যন্ত অপেক্ষা করে। শূন্য হলে আর ফিরিয়ে দেওয়া যায় না।যেখানে শিখবেন: পর্ব ৪৫
std::lcmএস-টি-ডি এল-সি-এম
দুটি পূর্ণসংখ্যার লঘিষ্ঠ সাধারণ গুণিতক (C++17, header ); যেমন lcm(4, 6) = 12. ফল টাইপে না ধরলে আচরণ অনির্ধারিত।যেখানে শিখবেন: পর্ব ৪১পর্ব ৫০
std::listস্টাড লিস্ট
দ্বিমুখী linked list: প্রতিটি উপাদান আলাদা node-এ, আগে-পরের লিংকসহ। যেকোনো জায়গায় যোগ-বিয়োগ সস্তা, iterator bidirectional, আর যোগ করলে কোনো iterator অকেজো হয় না।যেখানে শিখবেন: পর্ব ৩০পর্ব ৩২পর্ব ৫৪
std::lock_guardলক গার্ড
-এর ছোট RAII class: তৈরির সময় mutex lock করে, scope শেষে destructor-এ নিজে থেকেই unlock করে।যেখানে শিখবেন: পর্ব ১৭পর্ব ৪৫পর্ব ৫৫
std::logic_errorএসটিডি লজিক এরর
std::exception-এর একটি শাখা, যা ডাকার মানুষের যুক্তির ভুল বোঝায় — যা চলার আগেই এড়ানো যেত। এর সন্তান std::invalid_argument, std::out_of_range, std::length_error, std::domain_error.যেখানে শিখবেন: পর্ব ৩৭
std::lower_bound / upper_boundএস-টি-ডি লোয়ার বাউন্ড
সাজানো range-এ binary search করে প্রথম উপাদানের iterator দেয়, যা মানটির চেয়ে ছোট নয় (lower_bound) বা যা মানটির চেয়ে বড় (upper_bound); না থাকলে কোথায় বসত, তাও জানায়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৪৯পর্ব ৫০
std::make_sharedমেক শেয়ার্ড
C++11 থেকে থাকা ফাংশন, যা object আর তার হিসাবের খাতা (control block) একবারেই বরাদ্দ করে একটি shared_ptr ফেরত দেয়।যেখানে শিখবেন: পর্ব ১৭
std::make_uniqueমেক ইউনিক
C++14-এর ফাংশন, যা heap-এ object বানিয়ে সরাসরি একটি std::unique_ptr-এর হাতে দেয় — কোডে new বা delete লিখতে হয় না।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ২৫
std::mapস্ট্যান্ডার্ড ম্যাপ
header-এর container, যা প্রতিটি চাবির একটি মান রাখে আর চাবিগুলো সবসময় সাজানো ক্রমে রাখে। খোঁজা, ঢোকানো, মোছা O(log n); ভেতরে সাধারণত red-black tree.যেখানে শিখবেন: পর্ব ৩১পর্ব ৩২পর্ব ৫০
std::mdspanএস-টি-ডি এম-ডি-স্প্যান
C++23-এর বহু-মাত্রার view: এক সারিতে রাখা ডেটাকে সারি-কলাম ধরে m[r, c] লিখে পড়ার সুযোগ দেয়, নিজে মেমরির মালিক নয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ৪২
std::midpointএস-টি-ডি মিডপয়েন্ট
দুটি সংখ্যা বা pointer-এর মাঝের মান (C++20, header ), overflow ছাড়া; (a + b) / 2-তে বড় int যোগ করলে যে overflow হয়, এটি তা এড়ায়।যেখানে শিখবেন: পর্ব ৪১
std::min_element / max_elementএস-টি-ডি মিন এলিমেন্ট
range-এর সবচেয়ে ছোট বা সবচেয়ে বড় উপাদানের iterator (মান নয়) ফেরত দেয়; খালি range-এ end() দেয়, তাই dereference-এর আগে যাচাই দরকার। দুটোই একসাথে চাইলে minmax_element.যেখানে শিখবেন: পর্ব ৩৩
std::mismatchএস-টি-ডি মিসম্যাচ
দুটি range পাশাপাশি হেঁটে প্রথম যে জায়গায় উপাদান মেলে না, সেখানকার দুটি iterator-এর জোড়া (std::pair) ফেরত দেয়; চার-iterator রূপ (C++14 থেকে) দুই range-এর শেষই যাচাই করে।যেখানে শিখবেন: পর্ব ৩৩
std::monostateএস-টি-ডি মনোস্টেট
একটি ফাঁকা টাইপ, যা variant-এর প্রথম বিকল্প হিসেবে রাখলে “এখনো কিছু নেই” অবস্থা বোঝায়। প্রথম টাইপের ডিফল্ট constructor না থাকলেও এটি কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৮
std::moveস্টাড মুভ
-এর ফাংশন, যা নিজে কিছু সরায় না — শুধু বলে দেয় "এই object-এর ভেতরের জিনিস সরিয়ে নেওয়া যাবে"; তখন move constructor বা move assignment চলে।যেখানে শিখবেন: পর্ব ১৭পর্ব ২২পর্ব ৩৬
std::move (algorithm)স্টাড মুভ অ্যালগরিদম
-এর তিন-আর্গুমেন্টের ফাংশন std::move(first, last, dest): একটি range-এর প্রতিটি উপাদান গন্তব্যে move করে। মূল range-এ উপাদানগুলো moved-from অবস্থায় থেকে যায়।যেখানে শিখবেন: পর্ব ৩৬
std::move_only_functionমুভ অনলি ফাংশন
C++23-এর std::function-এর মতো টাইপ, যা কপি করা যায় না এমন callable-ও রাখতে পারে, যেমন unique_ptr capture করা lambda.যেখানে শিখবেন: পর্ব ৩৪
std::mt19937এস-টি-ডি এমটি নাইনটিন নাইন থ্রি সেভেন
header-এর Mersenne Twister engine; একই seed দিলে সব বাস্তবায়নে হুবহু একই সংখ্যার ধারা দেয়, তাই টেস্ট আর পুনরাবৃত্তিযোগ্য পরীক্ষায় জনপ্রিয়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৪১পর্ব ৫০
std::multimapস্ট্যান্ডার্ড মাল্টিম্যাপ
std::map-এর মতো সাজানো চাবি-মানের container, কিন্তু একই চাবি একাধিকবার থাকতে পারে। operator[] নেই; একই চাবির সবগুলো পেতে equal_range ব্যবহার হয়।যেখানে শিখবেন: পর্ব ৩১
std::multisetস্ট্যান্ডার্ড মাল্টিসেট
std::set-এর মতো সাজানো container, কিন্তু একই মান একাধিকবার রাখা যায়। count(x) জানায় x কতবার আছে।যেখানে শিখবেন: পর্ব ৩১
std::nextস্টাড নেক্সট
একটি iterator থেকে n ঘর পরের নতুন iterator ফেরত দেয়; মূল iterator বদলায় না। n না দিলে এক ঘর।যেখানে শিখবেন: পর্ব ৩২
std::next_permutationনেক্সট পারমুটেশন
একটি range-কে অভিধানের ক্রমে পরের বিন্যাসে বদলায়; শেষ বিন্যাসের পরে false দিয়ে প্রথমটিতে ফেরে। সব বিন্যাস পেতে শুরুতে sort লাগে।যেখানে শিখবেন: পর্ব ৫০
std::normal_distributionনরমাল ডিস্ট্রিবিউশন
ঘণ্টার আকারের (Gaussian) বণ্টনে দশমিক মান দেয় — গড় (mean) আর বিস্তার (standard deviation) দিয়ে; উচ্চতা বা মাপের ভুলের মতো স্বাভাবিক বৈচিত্র্য সিমুলেট করতে।যেখানে শিখবেন: পর্ব ৪১
std::nth_elementএস-টি-ডি এনথ এলিমেন্ট
n-তম ঘরে ঠিক সেই উপাদান বসায়, যা পুরো sort করলে সেখানে থাকত, আর তার বাঁয়ে ছোট-বা-সমান, ডানে বড়-বা-সমান রাখে; গড়ে O(n), median বের করতে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৫
std::nulloptএস-টি-ডি নাল-অপ্ট
খালি std::optional বোঝানোর বিশেষ মান। return std::nullopt; লিখলে বোঝায় “কোনো মান নেই”।যেখানে শিখবেন: পর্ব ৩৮
std::numbersএস-টি-ডি নাম্বার্স
C++20-এর header -এর গাণিতিক ধ্রুবক, যেমন std::numbers::pi, e, sqrt2; অ-standard M_PI-এর টাইপ-নিরাপদ বিকল্প।যেখানে শিখবেন: পর্ব ৪১
std::numeric_limitsনিউমেরিক লিমিটস
limits হেডারের একটি template, যা কোনো সংখ্যার টাইপের সর্বনিম্ন ও সর্বোচ্চ মানসহ নানা তথ্য দেয়; যেমন std::numeric_limits::max()যেখানে শিখবেন: পর্ব ০৫
std::ofstreamস্টাড ও-এফ-স্ট্রিম
-এর output file stream: ফাইলে লেখার টাইপ, ব্যবহার cout-এর মতো। ডিফল্টে খোলার সময় পুরোনো লেখা মুছে দেয়; destructor নিজে flush করে ফাইল বন্ধ করে।যেখানে শিখবেন: পর্ব ৪৪পর্ব ৫২
std::optionalঅপশনাল
C++17-এর একটি টাইপ, যা হয় একটি মান রাখে, নয়তো “কিছু নেই” অবস্থায় থাকে; null pointer ছাড়াই ঐচ্ছিক মান বোঝায়।যেখানে শিখবেন: পর্ব ১৫পর্ব ৩৮পর্ব ৫২
std::ostreamএসটিডি ও-স্ট্রিম
লেখা পাঠানোর stream-এর মূল টাইপ; std::cout, std::cerr আর ফাইলের ofstream সবই এর রূপ। নিজের operator<< এটিকে reference হিসেবে নেয় ও ফেরত দেয়।যেখানে শিখবেন: পর্ব ২৩
std::ostream_iteratorস্টাড অস্ট্রিম ইটারেটর
একটি output iterator, যাতে লেখা প্রতিটি মান একটি stream-এ (যেমন std::cout) চলে যায়, চাইলে মাঝে একটি বিভাজক লেখাসহ।যেখানে শিখবেন: পর্ব ৩২
std::out_of_rangeএস-টি-ডি আউট অব রেঞ্জ
-এর একটি exception টাইপ; সূচক বা মান বৈধ সীমার বাইরে গেলে .at()-এর মতো ফাংশন এটি ছোড়ে।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩৭পর্ব ৪৩
std::packaged_taskস্টাড প্যাকেজড টাস্ক
একটি callable-কে মুড়ে রাখে, যাতে পরে ডাকা হলে তার return value বা exception নিজে থেকে একটি future-এ যায়। কাজের সারি আর thread pool-এ কাজে লাগে।যেখানে শিখবেন: পর্ব ৪৬
std::pairএস-টি-ডি পেয়ার
হেডারের টাইপ, যা যেকোনো দুটি মান একসাথে রাখে; মান দুটির নাম সবসময় first আর second.যেখানে শিখবেন: পর্ব ১২পর্ব ৩৮পর্ব ৫০
std::partial_orderingএসটিডি পার্শিয়াল অর্ডারিং
<=>-এর ফলের টাইপ, যেখানে কিছু জোড়া তুলনাই করা যায় না — তাদের সম্পর্ককে বলে unordered. double-এ এটি আসে, কারণ NaN কোনো কিছুর চেয়ে ছোট, বড় বা সমান নয়।যেখানে শিখবেন: পর্ব ২৩
std::partial_sortএস-টি-ডি পার্শিয়াল সর্ট
পুরো range থেকে সবচেয়ে ছোট (বা comparator অনুযায়ী প্রথম) k টি উপাদান সাজানো অবস্থায় শুরুর k ঘরে বসায়, বাকিগুলো অনির্দিষ্ট ক্রমে রাখে; খরচ প্রায় n log k.যেখানে শিখবেন: পর্ব ৩৩
std::partial_sumএস-টি-ডি পার্শিয়াল সাম
-এর algorithm, যা চলতি যোগফল (prefix sum) লেখে: ফলের i-তম ঘরে প্রথম থেকে i-তম পর্যন্ত সব উপাদানের যোগফল।যেখানে শিখবেন: পর্ব ৩৩
std::pmrএস-টি-ডি পি-এম-আর
C++17-এর polymorphic memory resource: header-এর ব্যবস্থা, যাতে std::pmr::vector-এর মতো container-কে বলে দেওয়া যায় কোন memory resource (যেমন একটি arena) থেকে মেমরি নেবে।যেখানে শিখবেন: পর্ব ৪৯
std::popcountএস-টি-ডি পপকাউন্ট
একটি unsigned সংখ্যার কয়টি bit 1, তা গোনে (C++20, header ); যেমন popcount(13u) = 3. সাধারণত একটিমাত্র CPU নির্দেশে চলে।যেখানে শিখবেন: পর্ব ৪১পর্ব ৫০
std::predicateএস-টি-ডি প্রেডিকেট
standard concept; callable-টিকে দেওয়া argument দিয়ে ডাকা যায়, আর ফলটি সত্য-মিথ্যা হিসেবে পরীক্ষা করা যায়।যেখানে শিখবেন: পর্ব ৪০
std::prevস্টাড প্রেভ
একটি iterator থেকে n ঘর আগের নতুন iterator ফেরত দেয়; অন্তত bidirectional iterator লাগে। std::prev(c.end()) মানে শেষ উপাদান (container খালি না হলে)।যেখানে শিখবেন: পর্ব ৩২
std::print / std::printlnএসটিডি প্রিন্ট / প্রিন্টলাইন
C++23-এর আউটপুট ফাংশন (header ), যা {} placeholder দিয়ে সরাসরি standard output-এ লেখে; println শেষে নতুন লাইন যোগ করে।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭
std::printlnএস-টি-ডি প্রিন্ট-লাইন
C++23 থেকে আসা ছাপার ফাংশন: লেখার ভেতরের {} জায়গায় মান বসিয়ে ছাপে আর শেষে নতুন লাইন দেয়। টাইপ নিজেই বুঝে নেয়, printf-এর মতো %d মেলাতে হয় না।যেখানে শিখবেন: পর্ব ০১পর্ব ২৩পর্ব ৪১
std::priority_queueএস-টি-ডি প্রায়োরিটি কিউ
যে container adaptor সবসময় সবচেয়ে বেশি অগ্রাধিকারের উপাদানটি top-এ রাখে। ভেতরে vector-এর ওপর binary heap; push আর pop O(log n), top O(1). ডিফল্টে সবচেয়ে বড় মান top-এ থাকে (max-heap).যেখানে শিখবেন: পর্ব ৩০পর্ব ৫০পর্ব ৫৫
std::promiseস্টাড প্রমিস
future-এর লেখার প্রান্ত: get_future() দিয়ে future নেওয়া যায়, আর set_value বা set_exception দিয়ে একবার ফল পাঠানো যায় — সাধারণত অন্য thread থেকে।যেখানে শিখবেন: পর্ব ৪৬
std::queueএস-টি-ডি কিউ
FIFO নিয়মের container adaptor: push দিয়ে পেছনে যোগ, front দিয়ে সামনেরটি দেখা, pop দিয়ে সামনেরটি সরানো। ডিফল্টভাবে ভেতরে std::deque থাকে।যেখানে শিখবেন: পর্ব ৩০পর্ব ৪৫পর্ব ৫০
std::random_deviceর‍্যান্ডম ডিভাইস
অনুমান-অযোগ্য মান দেওয়ার উৎস, সাধারণত অপারেটিং সিস্টেমের এলোমেলোতা থেকে; মূলত engine-এর seed দিতে ব্যবহার হয়; standard এর নিরাপত্তা বা মান নিশ্চিত করে না।যেখানে শিখবেন: পর্ব ৪১
std::ranges (Ranges library)এস-টি-ডি রেঞ্জেস
C++20-এর লাইব্রেরি ও namespace, যেখানে পুরো range নেওয়া algorithm (sort, find…), projection আর range-সংক্রান্ত concepts আছে; view-গুলো থাকে std::views-এ।যেখানে শিখবেন: পর্ব ৩৫
std::ranges::count_ifকাউন্ট ইফ
algorithm হেডারের একটি algorithm, যা একটি predicate দিয়ে গোনে কয়টি উপাদান শর্ত পূরণ করে।যেখানে শিখবেন: পর্ব ৩৪
std::ranges::danglingরেঞ্জেস ড্যাংলিং
একটি ফাঁকা টাইপ, যা ranges algorithm iterator-এর বদলে ফেরত দেয় যখন তাকে একটি temporary (borrowed নয় এমন) range দেওয়া হয়; একে dereference করলে compile error হয়।যেখানে শিখবেন: পর্ব ৩৫পর্ব ৫২
std::ranges::fold_leftরেঞ্জেস ফোল্ড লেফট
C++23-এর algorithm, যা একটি শুরুর মান আর একটি ফাংশন দিয়ে বাঁ থেকে ডানে সব উপাদান জুড়ে একটি ফল বানায় — accumulate-এর ranges রূপ।যেখানে শিখবেন: পর্ব ৩৫
std::ranges::for_eachফর ইচ
algorithm হেডারের একটি algorithm, যা প্রতিটি উপাদানের ওপর একটি callable একবার করে চালায়।যেখানে শিখবেন: পর্ব ৩৪
std::ranges::owning_viewওনিং ভিউ
temporary (rvalue) container-কে pipe-এ দিলে যে view তৈরি হয়: container-টিকে move করে নিজের ভেতরে রাখে, তাই ডেটার মালিক view নিজেই (P2415, C++20-এর সংশোধনী)।যেখানে শিখবেন: পর্ব ৩৫
std::ranges::random_access_rangeর‍্যান্ডম অ্যাক্সেস রেঞ্জ
যে range-এর যেকোনো ঘরে সরাসরি লাফ দেওয়া যায়, যেমন vector আর array. std::list এটি মানে না, তাই ranges::sort list নেয় না।যেখানে শিখবেন: পর্ব ৪০
std::ranges::rangeএস-টি-ডি রেঞ্জেস রেঞ্জ
ranges লাইব্রেরির সবচেয়ে মৌলিক concept; যার ওপর begin আর end ডাকা যায়, অর্থাৎ range-for দিয়ে হাঁটা যায়।যেখানে শিখবেন: পর্ব ৪০
std::ranges::ref_viewরেফ ভিউ
নামযুক্ত container-কে pipe-এ দিলে যে view তৈরি হয়: ভেতরে শুধু container-এর ঠিকানা রাখে, কিছু কপি করে না; container মরে গেলে এটি dangling হয়।যেখানে শিখবেন: পর্ব ৩৫
std::ranges::sortএস-টি-ডি রেঞ্জেস সর্ট
C++20-এর sort, যাকে পুরো container দিলেই হয়; ডিফল্টভাবে ছোট থেকে বড় সাজায়, আর comparator ও projection (যেমন &Book::times_lent) নিতে পারে।যেখানে শিখবেন: পর্ব ১৩পর্ব ৩৩পর্ব ৩৫
std::ranges::toএস-টি-ডি রেঞ্জেস টু
C++23-এর ফাংশন, যা যেকোনো range থেকে নির্দিষ্ট container বানায় — যেমন view | std::ranges::to(); C++20-এ এটি নেই।যেখানে শিখবেন: পর্ব ৩৫
std::reduceএস-টি-ডি রিডিউস
C++17-এর algorithm, accumulate-এর মতো যোগফল দেয়, কিন্তু উপাদানগুলো যেকোনো ক্রমে ও দলে জোড়ার অনুমতি পায়, তাই সমান্তরালে চালানো যায়; অপারেশন associative ও commutative হতে হয়।যেখানে শিখবেন: পর্ব ৩৩পর্ব ৪৬
std::refস্টাড রেফ
-এর একটি ছোট মোড়ক, যা কপির বদলে আসল ভ্যারিয়েবলের reference পাঠায়। std::thread ডিফল্টভাবে সব argument কপি করে, তাই reference পাঠাতে std::ref লাগে।যেখানে শিখবেন: পর্ব ৪৫
std::remove / std::remove_ifএস-টি-ডি রিমুভ ইফ
algorithm, যা যেসব উপাদান রাখতে হবে সেগুলোকে ক্রম ঠিক রেখে সামনে সরিয়ে নতুন শেষের iterator ফেরত দেয়। নাম remove হলেও container-এর size বদলায় না — আসল মোছা হয় পরে erase দিয়ে।যেখানে শিখবেন: পর্ব ৩০পর্ব ৩৩
std::runtime_errorএসটিডি রানটাইম এরর
std::exception-এর শাখা, এমন ভুলের জন্য যা শুধু চলার সময়েই জানা যায় — ফাইল নেই, নেটওয়ার্ক নেই। নিজের exception class সাধারণত এটি থেকেই বানানো হয়।যেখানে শিখবেন: পর্ব ৩৭
std::same_asএস-টি-ডি সেম অ্যাজ
standard concept; দুটি টাইপ হুবহু একই হলে সত্য। রূপান্তর ধরা হয় না, তাই int আর long আলাদা।যেখানে শিখবেন: পর্ব ৪০
std::scoped_lockস্টাড স্কোপড লক
C++17-এর RAII lock, যা একসাথে এক বা একাধিক mutex নেয় — deadlock এড়ানোর নিয়ম মেনে — আর scope শেষে সবগুলো ছেড়ে দেয়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৩পর্ব ৫৪
std::setস্ট্যান্ডার্ড সেট
header-এর container, যা শুধু চাবি রাখে — প্রতিটি মান একবারই, সাজানো ক্রমে। একই মান আবার ঢোকাতে চাইলে নীরবে কিছুই হয় না।যেখানে শিখবেন: পর্ব ৩১পর্ব ৫০পর্ব ৫৫
std::setprecisionএসটিডি সেট-প্রিসিশন
-এর manipulator, যা দশমিক সংখ্যা কত অঙ্কে দেখাবে তা ঠিক করে। একা দিলে মোট significant অঙ্ক, std::fixed-এর সাথে দিলে দশমিকের পরের অঙ্ক। এটি stream-এ থেকে যায়।যেখানে শিখবেন: পর্ব ০৭
std::setwএসটিডি সেট-ডব্লিউ
-এর manipulator, যা পরের একটিমাত্র আউটপুটের ন্যূনতম প্রস্থ (width) ঠিক করে; কম অক্ষর হলে ফাঁকা দিয়ে ভরে। একবার ছাপার পর নিজে থেকেই মুছে যায়।যেখানে শিখবেন: পর্ব ০৭
std::shared_futureস্টাড শেয়ারড ফিউচার
কপি করা যায় এমন future; প্রতিটি কপি যতবার খুশি get() ডেকে একই ফল (const reference) পায়। future::share() দিয়ে বানানো হয়; প্রতিটি thread নিজের কপি রাখে।যেখানে শিখবেন: পর্ব ৪৬
std::shared_mutexস্টাড শেয়ারড মিউটেক্স
C++17-এর mutex (), যেখানে অনেক পাঠক একসাথে shared lock নিতে পারে, কিন্তু লেখককে একা exclusive lock নিতে হয়।যেখানে শিখবেন: পর্ব ৪৫
std::shared_ptr / std::make_sharedশেয়ার্ড পয়েন্টার
ভাগাভাগি মালিকানার smart pointer; কয়জন মালিক আছে গুনে রাখে, শেষ মালিক চলে গেলে object delete করে। std::make_shared দিয়ে বানানো হয়।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ৪৬
std::shuffleএস-টি-ডি শাফল
একটি random-number engine ব্যবহার করে range-এর উপাদানগুলো এলোমেলো করে (C++11); একই seed আর একই লাইব্রেরিতে একই ক্রম দেয়। পুরোনো random_shuffle C++17-এ বাদ পড়েছে।যেখানে শিখবেন: পর্ব ৩৩
std::signed_integralএস-টি-ডি সাইনড ইন্টিগ্রাল
standard concept, যার সংজ্ঞা std::integral আর is_signed একসাথে; তাই এটি std::integral-কে subsume করে।যেখানে শিখবেন: পর্ব ৪০
std::sortস্টাড সর্ট
একটি range-কে সাজানোর standard algorithm, গড়ে ও সবচেয়ে খারাপ ক্ষেত্রে O(n log n); random access iterator চায়, তাই std::list-এ চলে না।যেখানে শিখবেন: পর্ব ৩২পর্ব ৩৩
std::source_locationস্টাড সোর্স লোকেশন
C++20-এর টাইপ, যা কোডের একটি জায়গার ফাইলের নাম, লাইন নম্বর আর ফাংশনের নাম রাখে। default argument-এ current() লিখলে caller-এর জায়গা পাওয়া যায় — __LINE__ macro ছাড়াই।যেখানে শিখবেন: পর্ব ৪২পর্ব ৪৮
std::spanস্প্যান
C++20-এর একটি হালকা view, যা পাশাপাশি থাকা উপাদানের একটি সারির শুরুর ঠিকানা আর আকার একসাথে রাখে; নিজে কোনো উপাদানের মালিক নয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৫পর্ব ১৮
std::ssizeএস-সাইজ
C++20 থেকে পাওয়া ফাংশন, যা container-এর আকার signed সংখ্যা হিসেবে দেয়। ফলে int ইনডেক্সের সাথে তুলনায় signed/unsigned মিশে যাওয়ার ঝুঁকি থাকে না।যেখানে শিখবেন: পর্ব ০৩পর্ব ০৬পর্ব ১৩
std::stable_sortএস-টি-ডি স্টেবল সর্ট
সমান উপাদানের ক্রম অপরিবর্তিত রাখার নিশ্চয়তাসহ সাজায়; বাড়তি মেমরি পেলে O(n log n), না পেলে O(n log² n). ভেতরে সাধারণত merge sort.যেখানে শিখবেন: পর্ব ৩৩পর্ব ৫৩
std::stackএস-টি-ডি স্ট্যাক
LIFO নিয়মের container adaptor: push দিয়ে ওপরে রাখা, top দিয়ে ওপরেরটি দেখা, pop দিয়ে ওপরেরটি সরানো। ডিফল্টভাবে ভেতরে std::deque থাকে।যেখানে শিখবেন: পর্ব ৩০পর্ব ৫৫
std::stoi / std::stodএস-টু-আই
std::string থেকে int (stoi) বা double (stod) বের করার ফাংশন; লেখাটি সংখ্যা না হলে std::invalid_argument আর সীমার বাইরে হলে std::out_of_range exception ছোড়ে।যেখানে শিখবেন: পর্ব ১৪
std::stop_tokenস্টাড স্টপ টোকেন
C++20-এর টাইপ (), যা দিয়ে একটি thread জানতে পারে কেউ তাকে থামতে অনুরোধ করেছে কি না (stop_requested()). std::jthread নিজে এটি thread-এর ফাংশনে পাঠায়।যেখানে শিখবেন: পর্ব ৪৫
std::stringএস-টি-ডি স্ট্রিং
C++ standard library-র লেখা রাখার টাইপ; নিজে মেমরি সামলায়, আর size(), + এর মতো সুবিধা দেয়।যেখানে শিখবেন: পর্ব ০১পর্ব ০৪পর্ব ০৫
std::string::nposএন-পস
find-এর মতো ফাংশন কিছু খুঁজে না পেলে যে বিশেষ মান ফেরত দেয়; এটি size_t-এর সবচেয়ে বড় মান, অর্থাৎ "কোনো বৈধ অবস্থান নয়"।যেখানে শিখবেন: পর্ব ১৪
std::string_viewএস-টি-ডি স্ট্রিং ভিউ
C++17-এর হালকা টাইপ, যা অন্য কারও মালিকানায় থাকা লেখার দিকে শুধু তাকায়: ভেতরে একটি ঠিকানা আর একটি দৈর্ঘ্য। নিজে কোনো অক্ষর রাখে না, তাই কপি সস্তা, কিন্তু মূল লেখা মরে গেলে view অবৈধ হয়ে যায়।যেখানে শিখবেন: পর্ব ১৪পর্ব ১৮পর্ব ৩০
std::strong_orderingএসটিডি স্ট্রং অর্ডারিং
<=>-এর ফলের টাইপ, যেখানে “সমান” মানে সত্যিই একই — একটির জায়গায় অন্যটি বসালে কোনো পার্থক্য নেই। int আর পূর্ণসংখ্যার সদস্যওয়ালা টাইপে এটি আসে।যেখানে শিখবেন: পর্ব ২৩
std::swapস্টাড সোয়াপ
-এর ফাংশন, যা দুটি ভ্যারিয়েবলের মান অদলবদল করে; pointer বা int-এর ক্ষেত্রে এটি কখনো exception ছোড়ে না।যেখানে শিখবেন: পর্ব ২২
std::terminateস্টেড টার্মিনেট
যে ফাংশন প্রোগ্রামকে সঙ্গে সঙ্গে বন্ধ করে দেয়; noexcept ফাংশন থেকে exception বের হলে বা কোনো exception কোথাও ধরা না পড়লে চলে।যেখানে শিখবেন: পর্ব ২১পর্ব ৩৭পর্ব ৪৫
std::threadস্টাড থ্রেড
-এর টাইপ, যা অপারেটিং সিস্টেমের একটি চলমান thread-এর হাতল। একটি thread-এর মালিক একজনই হতে পারে, তাই এটি কপি করা যায় না, শুধু move করা যায়।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৪৫পর্ব ৪৬
std::to_charsএস-টি-ডি টু-চার্স
C++17-এর দ্রুত রূপান্তর (header ), যা সংখ্যাকে আপনার দেওয়া buffer-এ লেখায় আনে; মেমরি নেয় না, locale দেখে না, আর দশমিকের জন্য সবচেয়ে ছোট round-trip লেখা দেয়।যেখানে শিখবেন: পর্ব ৪১
std::to_underlyingটু আন্ডারলাইং
C++23-এর হেডারের ফাংশন, যা একটি enum-এর মানকে তার underlying type-এর সংখ্যায় বদলে দেয়।যেখানে শিখবেন: পর্ব ১২
std::totally_orderedএসটিডি টোটালি অর্ডারড
header -এর একটি standard concept (C++20): টাইপটির দুটি মানকে <, >, <=, >=, == আর != দিয়ে সংগতভাবে তুলনা করা যায়।যেখানে শিখবেন: পর্ব ২৮পর্ব ৪০
std::transformএস-টি-ডি ট্রান্সফর্ম
একটি range-এর প্রতিটি উপাদানে (বা দুটি range-এর জোড়ায় জোড়ায়) একটি ফাংশন চালিয়ে ফল গন্তব্য iterator-এ লেখে; গন্তব্য একই range-ও হতে পারে।যেখানে শিখবেন: পর্ব ৩৩
std::tupleএস-টি-ডি টাপল
হেডারের টাইপ, যা যেকোনো সংখ্যক মান একসাথে রাখে; মান পড়তে হয় std::get<0>(t)-এর মতো ক্রমিক নম্বর দিয়ে।যেখানে শিখবেন: পর্ব ১২পর্ব ২৯পর্ব ৩৮
std::unexpectedএসটিডি আনএক্সপেক্টেড
C++23-এর একটি ছোট মোড়ক class, যা বলে “এটা মান নয়, ভুলের কারণ”। return std::unexpected(err); লিখে std::expected-এ ভুল ফেরত দেওয়া হয়। (C++17-এর আগে একই নামে একটি সম্পূর্ণ ভিন্ন, এখন সরানো ফাংশন ছিল।)যেখানে শিখবেন: পর্ব ৩৭
std::uniform_int_distributionইউনিফর্ম ইন্ট ডিস্ট্রিবিউশন
দুই প্রান্তসহ সীমা [a, b]-এর প্রতিটি পূর্ণসংখ্যা সমান সম্ভাবনায় দেয়, পক্ষপাত ছাড়া; যেমন uniform_int_distribution{1, 6} দিয়ে ছক্কার দান।যেখানে শিখবেন: পর্ব ৪১
std::uniqueএস-টি-ডি ইউনিক
পরপর বসা একই মানের উপাদানের মধ্যে প্রথমটি রেখে বাকিগুলো বাদ দিয়ে নতুন শেষ ফেরত দেয়; পুরো তালিকার duplicate সরাতে আগে sort, পরে erase লাগে।যেখানে শিখবেন: পর্ব ৩৩
std::unique_lockস্টাড ইউনিক লক
নমনীয় RAII lock: মাঝপথে unlock ও আবার lock করা যায়, move করা যায়, পরে lock নেওয়া যায়। std::condition_variable-এর wait এটিই চায়।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৫
std::unique_ptrইউনিক পয়েন্টার
একক মালিকের smart pointer (C++11, ); কপি করা যায় না, শুধু move করা যায়, আর নিজে ধ্বংস হলে object-টি delete করে।যেখানে শিখবেন: পর্ব ১৬পর্ব ১৭পর্ব ১৮
std::unordered_mapস্ট্যান্ডার্ড আনঅর্ডারড ম্যাপ
C++11 থেকে header-এর hash table-ভিত্তিক চাবি-মানের container. গড়ে O(1)-এ খোঁজে, কিন্তু উপাদানের কোনো নির্দিষ্ট ক্রম নেই, আর খারাপ ক্ষেত্রে O(n).যেখানে শিখবেন: পর্ব ৩১পর্ব ৩২পর্ব ৫০
std::unordered_setস্ট্যান্ডার্ড আনঅর্ডারড সেট
C++11 থেকে আসা hash table-ভিত্তিক set: প্রতিটি মান একবার, গড়ে O(1)-এ খোঁজা, কিন্তু কোনো ক্রম নেই।যেখানে শিখবেন: পর্ব ৩১পর্ব ৪৯
std::variantএস-টি-ডি ভ্যারিয়েন্ট
C++17 থেকে এমন একটি টাইপ, যা নির্দিষ্ট কয়েকটি টাইপের যেকোনো একটির মান রাখে; std::visit দিয়ে প্রতিটি টাইপ আলাদাভাবে সামলানো যায়।যেখানে শিখবেন: পর্ব ২৫পর্ব ৩৮পর্ব ৫১
std::vectorএস-টি-ডি ভেক্টর
C++-এর দরকারমতো বড়-ছোট হতে পারা array. উপাদানগুলো মেমরিতে পাশাপাশি থাকে, নিজের আকার জানে (size()), আর কাজ শেষে মেমরি নিজেই ফেরত দেয়।যেখানে শিখবেন: পর্ব ০১পর্ব ০৮পর্ব ১০
std::vectorভেক্টর অব বুল
std::vector-এর একটি full specialization, যা প্রতিটি bool একটি বিটে রাখে। v[i] আসল bool& না দিয়ে একটি proxy দেয়, তাই অনেক generic কোড এতে ভাঙে; একে প্রায়ই নকশার ভুলের উদাহরণ ধরা হয়।যেখানে শিখবেন: পর্ব ২৯
std::views::chunkভিউজ চাংক
C++23-এর view, যা উৎসকে n টি করে পরপর দলে ভাগ করে দেখায়; শেষ দলটি ছোট হতে পারে।যেখানে শিখবেন: পর্ব ৩৫
std::views::dropভিউজ ড্রপ
যে view উৎসের প্রথম n টি উপাদান বাদ দিয়ে বাকিগুলো দেখায়।যেখানে শিখবেন: পর্ব ৩৫
std::views::enumerateভিউজ ইনিউমারেট
C++23-এর view, যা প্রতিটি উপাদানের সাথে ০ থেকে শুরু একটি ক্রমিক সূচক জোড়া দেয়; structured binding দিয়ে [i, x] হিসেবে নেওয়া যায়।যেখানে শিখবেন: পর্ব ৩৫
std::views::filterভিউজ ফিল্টার
যে view শুধু শর্ত পূরণ করা উপাদানগুলো দেখায়; প্রথম begin()-এর ফল cache করে, তাই const অবস্থায় ঘোরানো যায় না।যেখানে শিখবেন: পর্ব ৩৫পর্ব ৫১
std::views::iotaভিউজ আইওটা
C++20-এর একটি range view, যা একটি সংখ্যা থেকে শুরু করে পরপর বাড়তে থাকা সংখ্যার ক্রম দেয়; iota(1, 11) মানে ১ থেকে ১০, শেষ মানটি বাদ।যেখানে শিখবেন: পর্ব ০৮পর্ব ৩২পর্ব ৩৫
std::views::joinভিউজ জয়েন
range-এর range (যেমন vector-এর vector) সমান করে একটি একটানা সারি হিসেবে দেখায়; C++23-এর join_with মাঝে বিভাজক বসায়।যেখানে শিখবেন: পর্ব ৩৫
std::views::keys / valuesভিউজ কিজ / ভ্যালুজ
pair বা tuple-এর range থেকে (যেমন map) শুধু প্রথম অংশ (keys) বা দ্বিতীয় অংশ (values) দেখানো view.যেখানে শিখবেন: পর্ব ৩৫
std::views::reverseভিউজ রিভার্স
যে view উৎসকে উল্টো ক্রমে দেখায়, কোনো উপাদান না সরিয়ে বা কপি না করে; উৎসকে দুই দিকেই চলতে পারতে হয়।যেখানে শিখবেন: পর্ব ৩৫
std::views::slideভিউজ স্লাইড
C++23-এর view, যা n মাপের একটি জানালা এক ঘর করে সরিয়ে প্রতিটি অবস্থানের উপাদানগুলো দেখায় — চলমান গড়ের মতো হিসাবে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৫
std::views::splitভিউজ স্প্লিট
একটি বিভাজক (যেমন কমা) দেখে range-কে টুকরো করে, প্রতিটি টুকরো একটি sub-range হিসেবে দেয়; লেখার টুকরো থেকে string_view বানানো যায় কপি ছাড়াই।যেখানে শিখবেন: পর্ব ৩৫
std::views::takeভিউজ টেক
যে view উৎসের প্রথম n টি উপাদান দেখিয়ে থেমে যায়; অসীম ধারাকেও সীমিত করে।যেখানে শিখবেন: পর্ব ৩৫পর্ব ৫১
std::views::transformভিউজ ট্রান্সফর্ম
যে view প্রতিটি উপাদানকে একটি ফাংশনের ফল হিসেবে দেখায় (functional programming-এর map); মান হিসাব হয় উপাদান চাওয়ার মুহূর্তে।যেখানে শিখবেন: পর্ব ৩৫
std::views::zipভিউজ জিপ
C++23-এর view, যা দুই বা ততোধিক range-এর একই অবস্থানের উপাদানগুলো tuple হিসেবে পাশাপাশি জোড়া দেয়; সবচেয়ে ছোট range শেষ হলে থামে।যেখানে শিখবেন: পর্ব ৩৫
std::visitএস-টি-ডি ভিজিট
একটি visitor (ডাকা যায় এমন object) আর variant নিয়ে, variant-এ এখন যে টাইপ আছে সেটি দিয়ে visitor-এর ঠিক সংস্করণটি ডাকে। visitor সব টাইপ সামলাতে না পারলে compile error হয়।যেখানে শিখবেন: পর্ব ৩৮
std::weak_orderingএসটিডি উইক অর্ডারিং
<=>-এর ফলের টাইপ, যেখানে দুটি মান ক্রমের হিসাবে সমতুল্য হলেও আলাদা করে চেনা যায়, যেমন বড়-ছোট হাতের অক্ষর না মেনে সাজানো নাম।যেখানে শিখবেন: পর্ব ২৩
std::weak_ptrউইক পয়েন্টার
shared_ptr-এর object-কে দূর থেকে দেখে, কিন্তু মালিক হয় না — মালিকের সংখ্যা বাড়ায় না। ব্যবহারের আগে lock() দিয়ে দেখতে হয় object এখনো আছে কি না।যেখানে শিখবেন: পর্ব ১৭পর্ব ৫৩পর্ব ৫৪
std::wsএসটিডি ডব্লিউ-এস
Input manipulator, যা stream-এর সামনের সব whitespace (স্পেস, ট্যাব, নতুন লাইন) খেয়ে ফেলে। cin >> এর পরে getline-এর আগে রয়ে যাওয়া \n সরাতে কাজে লাগে।যেখানে শিখবেন: পর্ব ০৭
Step intoস্টেপ ইনটু
debugger-এ লাইনের ডাকা ফাংশনের ভেতরে ঢুকে তার প্রথম লাইনে থামা (GDB-তে step).যেখানে শিখবেন: পর্ব ৪৮
Step outস্টেপ আউট
debugger-এ বর্তমান ফাংশন শেষ পর্যন্ত চালিয়ে যে জায়গা থেকে ডাকা হয়েছিল সেখানে ফেরা (GDB-তে finish).যেখানে শিখবেন: পর্ব ৪৮
Step overস্টেপ ওভার
debugger-এ পরের লাইনে যাওয়া; লাইনে কোনো ফাংশন ডাক থাকলে সেটি পুরো এক ধাপে চলে (GDB-তে next).যেখানে শিখবেন: পর্ব ৪৮
STL (Standard Template Library)এস-টি-এল
C++ standard library-র container (vector, map…), iterator আর algorithm (sort, find…)-এর অংশ। Alexander Stepanov-এর নকশা থেকে এসে C++98-এ standard হয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ২৯পর্ব ৩০
Storage durationস্টোরেজ ডিউরেশন
একটি object-এর মেমরি কতক্ষণ বরাদ্দ থাকবে, তার নিয়ম। C++-এ চার রকম: automatic, static, dynamic আর thread.যেখানে শিখবেন: পর্ব ১৮
Strategy patternস্ট্র্যাটেজি প্যাটার্ন
একটি বদলযোগ্য আচরণ (যেমন ভাড়ার নিয়ম) একটি আলাদা object-এ রেখে মূল class-কে তার সদস্য হিসেবে দেওয়া, যাতে চলার সময় আচরণ বদলানো যায়। C++-এ প্রায়ই lambda বা std::function দিয়েও লেখা হয়।যেখানে শিখবেন: পর্ব ২৭
Streamস্ট্রিম
অক্ষর বা byte-এর একটানা প্রবাহের একটি বিমূর্ত রূপ — একদিকে লেখা ঢোকে, অন্যদিকে বের হয়। স্ক্রিন, কিবোর্ড, ফাইল সবই একই stream নিয়মে ব্যবহার করা যায়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৭পর্ব ৪৪
Stream stateস্ট্রিম স্টেট
প্রতিটি stream-এর ভেতরের কয়েকটি flag — goodbit, failbit, eofbit, badbit — যা বলে শেষ কাজটি সফল হয়েছে কি না। fail অবস্থায় stream পরের সব পড়া চুপচাপ বাদ দেয়, যতক্ষণ না clear() ডাকা হয়।যেখানে শিখবেন: পর্ব ০৭পর্ব ৪৪
Stress testingস্ট্রেস টেস্টিং
আসল সমাধান আর একটি সরল brute force সমাধানকে হাজারো ছোট এলোমেলো ইনপুটে চালিয়ে আউটপুট মেলানো, যাতে প্রথম অমিলের ইনপুট ধরা পড়ে।যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Strict aliasingস্ট্রিক্ট এলিয়াসিং
C++-এর নিয়ম যে একটি object-কে সাধারণত তার নিজের টাইপ (বা char, unsigned char, std::byte) দিয়েই পড়তে হবে; অন্য টাইপের pointer দিয়ে পড়া undefined behavior.যেখানে শিখবেন: পর্ব ৪৩
Strict weak orderingস্ট্রিক্ট উইক অর্ডারিং
std::map আর std::sort-এর তুলনা-ফাংশনের যে নিয়ম মানতে হয়: a < a কখনো সত্য নয়, a < b আর b < c হলে a < c, আর “সমান” সম্পর্কটি সুসংগত। নিয়ম ভাঙলে আচরণ undefined.যেখানে শিখবেন: পর্ব ৩১পর্ব ৩৩
String literalস্ট্রিং লিটারাল
কোডে উদ্ধৃতিচিহ্নের ভেতরে সরাসরি লেখা টেক্সট, যেমন "Dhaka"; এর টাইপ const char-এর array, std::string নয়, আর এটি পুরো প্রোগ্রাম জুড়ে বেঁচে থাকে।যেখানে শিখবেন: পর্ব ১৪
Strong exception guaranteeস্ট্রং এক্সেপশন গ্যারান্টি
কোনো অপারেশন হয় পুরোপুরি সফল হবে, নয়তো exception হলে সবকিছু আগের অবস্থায় থাকবে — মাঝামাঝি ভাঙা অবস্থা হবে না, এই প্রতিশ্রুতি।যেখানে শিখবেন: পর্ব ২২পর্ব ৩৭পর্ব ৫১
structস্ট্রাক্ট
কয়েকটি তথ্যকে এক নামের নিচে বাঁধার উপায়। C++-এ struct আর class প্রায় একই; পার্থক্য শুধু দুটি ডিফল্টে — সদস্যের access আর inheritance: struct-এ public, class-এ private.যেখানে শিখবেন: পর্ব ০২পর্ব ১২পর্ব ১৩
Struct of arrays (SoA)স্ট্রাক্ট অফ অ্যারেজ
প্রতিটি field-এর জন্য আলাদা একটি ফাঁকহীন সারি রাখা — যেমন সব gpa একটি vector-এ, সব roll আরেকটিতে। বহু বস্তুর ওপর অল্প কয়েকটি field নিয়ে কাজে cache আর SIMD-বান্ধব।যেখানে শিখবেন: পর্ব ৪৯
Structural typingস্ট্রাকচারাল টাইপিং
যে টাইপের দরকারি ফাংশনগুলো আছে, সে নিজে থেকেই চুক্তি মানে বলে ধরা — আলাদা করে ঘোষণা করতে হয় না। Go-র interface আর C++20-এর concept এভাবে কাজ করে; C++-এর abstract class করে না।যেখানে শিখবেন: পর্ব ২৬পর্ব ৪০
Structured bindingস্ট্রাকচার্ড বাইন্ডিং
C++17-এর লেখা auto [a, b] = x; যা একটি struct, pair, tuple বা array-এর ভেতরের মানগুলোকে একসাথে আলাদা নাম দেয়।যেখানে শিখবেন: পর্ব ১২পর্ব ৩১পর্ব ৩৮
Structured programmingস্ট্রাকচার্ড প্রোগ্রামিং
শুধু পরপর চলা, সিদ্ধান্ত আর লুপ দিয়ে প্রোগ্রাম লেখার নীতি, যেখানে প্রতিটি অংশের একটি প্রবেশপথ ও একটি বের হওয়ার পথ থাকে; goto-নির্ভর এলোমেলো লাফের বিকল্প।যেখানে শিখবেন: পর্ব ০৮
Subscript operator ([])সাবস্ক্রিপ্ট অপারেটর
সূচক দিয়ে পাত্রের উপাদান ধরার operator, যেমন v[3]. শুধু member হিসেবে overload করা যায়; সাধারণত const আর non-const দুই রূপে লেখা হয়। C++23 থেকে একাধিক আর্গুমেন্টও নিতে পারে।যেখানে শিখবেন: পর্ব ২৩
Substringসাবস্ট্রিং
একটি লেখার ভেতরের টানা একটি অংশ; std::string-এর substr(pos, len) এমন অংশের একটি নতুন কপি বানিয়ে দেয়।যেখানে শিখবেন: পর্ব ১৪
subsumptionসাবজাম্পশন
একটি শর্ত আরেকটির সবকিছু ধারণ করে আরও কিছু চাইলে সেটি বেশি নির্দিষ্ট; দুটি overload সমান মিললে বেশি নির্দিষ্ট শর্তেরটি জেতে।যেখানে শিখবেন: পর্ব ৪০পর্ব ৫৪
Sum typeসাম টাইপ
এমন টাইপ, যার মান কয়েকটি নির্দিষ্ট ধরনের ঠিক একটি — “এটা অথবা ওটা”। সম্ভাব্য অবস্থার সংখ্যা ধরনগুলোর অবস্থার যোগফল, তাই নাম sum. C++-এ std::variant এর উদাহরণ।যেখানে শিখবেন: পর্ব ৩৮
switch statementসুইচ
একটি পূর্ণসংখ্যা-জাতীয় বা enum মানের সাথে কয়েকটি ধ্রুবক case মিলিয়ে সংশ্লিষ্ট অংশে লাফ দেওয়ার কাঠামো; কোনোটি না মিললে default-এ যায়।যেখানে শিখবেন: পর্ব ০৮
Symbolসিম্বল
Object file-এর ভেতরে কোনো ফাংশন বা global ভ্যারিয়েবলের নাম-ঠিকানা। Linker এই নাম মিলিয়েই এক ফাইলের ডাক অন্য ফাইলের সংজ্ঞার সাথে জোড়ে।যেখানে শিখবেন: পর্ব ০৩

T

Tagged union (discriminated union)ট্যাগড ইউনিয়ন
একটি union আর তার পাশে একটি tag (লেবেল), যা বলে দেয় এই মুহূর্তে union-এর কোন সদস্যটি বৈধ। C-তে হাতে বানাতে হয়; C++-এ std::variant এটি নিরাপদভাবে করে।যেখানে শিখবেন: পর্ব ৩৮
Tail latencyটেইল লেটেন্সি
সবচেয়ে ধীর অল্প কিছু অনুরোধের latency — যেমন p99 বা p99.9. গড় ভালো থাকলেও এই প্রান্ত খারাপ হলে অনেক ব্যবহারকারী মাঝে মাঝে আটকে যান।যেখানে শিখবেন: পর্ব ৪৯
Target (CMake)টার্গেট
CMake যা বানায় — একটি executable বা library. প্রতিটি target-এর নিজের source, include ফোল্ডার, flag আর নির্ভরতা থাকে।যেখানে শিখবেন: পর্ব ৪৭
Target propertyটার্গেট প্রপার্টি
একটি target-এর গায়ে লেখা সেটিং, যেমন include ফোল্ডার, compile option বা C++ standard. target_* কমান্ড দিয়ে বসানো হয়।যেখানে শিখবেন: পর্ব ৪৭
Task-based programmingটাস্ক-বেসড প্রোগ্রামিং
thread বা কর্মী না সামলে শুধু “কাজ” আর তার “ফল” নিয়ে ভাবা; কাজটি কোথায়, কোন thread-এ চলবে, তা লাইব্রেরি ঠিক করে। C++-এ std::async এর সরল উদাহরণ।যেখানে শিখবেন: পর্ব ৪৬
Technical interviewটেকনিক্যাল ইন্টারভিউ
চাকরির যে ধাপে প্রার্থীর প্রোগ্রামিং ও সমস্যা সমাধানের দক্ষতা যাচাই হয় — সাধারণত সমস্যা দিয়ে কোড লেখানো, আলোচনা আর ভাষা বা ডিজাইনের প্রশ্ন।যেখানে শিখবেন: পর্ব ৫৫
Technical Specification (TS)টেকনিক্যাল স্পেসিফিকেশন
মূল standard-এর বাইরে প্রকাশিত একটি পরীক্ষামূলক দলিল। বড় বৈশিষ্ট্য আগে এখানে বাস্তবে যাচাই হয়, তারপর পরিণত হলে standard-এ নেওয়া হয় — যেমন Coroutines TS আর Modules TS.যেখানে শিখবেন: পর্ব ৪২
Tell, don't askটেল, ডোন্ট আস্ক
নকশার একটি পরামর্শ: object-এর অবস্থা জিজ্ঞেস করে বাইরে সিদ্ধান্ত না নিয়ে object-কে বলে দিন কী করতে হবে, যাতে নিয়মটি object-এর ভেতরেই থাকে।যেখানে শিখবেন: পর্ব ২০
Templateটেমপ্লেট
C++-এর generic programming-এর হাতিয়ার: একবার কোড লিখলে compiler প্রতিটি দরকারি টাইপের জন্য আলাদা সংস্করণ তৈরি করে দেয়। যেমন int-এর vector আর string-এর vector একই std::vector template থেকে আসে।যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ১১
Template argumentটেমপ্লেট আর্গুমেন্ট
template parameter-এর জায়গায় বসা আসল টাইপ বা মান, যেমন largest-এ int. compiler নিজে deduce করতে পারে, বা কোণ বন্ধনীতে লিখে দেওয়া যায়।যেখানে শিখবেন: পর্ব ২৮পর্ব ২৯
Template argument deductionটেমপ্লেট আর্গুমেন্ট ডিডাকশন
ফাংশন-ডাকের argument-এর টাইপ দেখে compiler-এর T খুঁজে বের করা। দুই argument থেকে T-এর দুই রকম উত্তর এলে deduction ব্যর্থ হয়, রূপান্তর ধরা হয় না।যেখানে শিখবেন: পর্ব ২৮পর্ব ৩৬পর্ব ৪০
Template instantiationটেমপ্লেট ইনস্ট্যানশিয়েশন
template-এর T-এর জায়গায় নির্দিষ্ট টাইপ বসিয়ে compiler-এর আসল ফাংশন বা class বানানো; compile-এর সময় হয়, প্রতিটি ভিন্ন টাইপের জন্য একবার।যেখানে শিখবেন: পর্ব ২৮পর্ব ২৯পর্ব ৪০
Template lambdaটেমপ্লেট ল্যাম্বডা
C++20 থেকে capture list-এর পরে লিখে template প্যারামিটারসহ lambda; body-তে টাইপটির নাম দরকার হলে কাজে লাগে।যেখানে শিখবেন: পর্ব ৩৪
Template metaprogrammingটেমপ্লেট মেটাপ্রোগ্রামিং
template-এর instantiation আর specialization-কে ব্যবহার করে compile-এর সময়েই হিসাব চালানো বা টাইপ নিয়ে কাজ করা। আধুনিক C++-এ সাধারণ হিসাবের জন্য constexpr বেশি সহজ।যেখানে শিখবেন: পর্ব ২৮পর্ব ২৯পর্ব ৩৯
Template parameterটেমপ্লেট প্যারামিটার
template -এর T-এর মতো ফাঁকা ঘর, যেখানে পরে একটি টাইপ (বা non-type parameter হলে একটি ধ্রুবক মান) বসবে।যেখানে শিখবেন: পর্ব ২৮
Template specializationটেমপ্লেট স্পেশালাইজেশন
একটি template-এর কোনো নির্দিষ্ট টাইপের জন্য আলাদা সংস্করণ লেখা, যেমন template <> struct std::formatter. বাকি টাইপের জন্য সাধারণ সংস্করণই চলে।যেখানে শিখবেন: পর্ব ২৩পর্ব ২৮পর্ব ২৯
Temporal localityটেম্পোরাল লোকালিটি
সম্প্রতি ব্যবহৃত ডেটা আবার শিগগিরই ব্যবহারের প্রবণতা। একই ডেটা নিয়ে কাজগুলো কাছাকাছি সময়ে সারলে ডেটা cache-এ থেকে যায়।যেখানে শিখবেন: পর্ব ৪৯
Temporary objectটেম্পোরারি অবজেক্ট
নাম ছাড়া অস্থায়ী object, যেমন a + b-এর ফল বা by value ফেরত দেওয়া মান; সাধারণত যে পূর্ণ expression-এ তৈরি, তার শেষেই ধ্বংস হয়।যেখানে শিখবেন: পর্ব ১০পর্ব ১৪পর্ব ১৮
Ternary operator (?:)টার্নারি অপারেটর
তিন operand-এর অপারেটর: শর্ত ? মান১ : মান২; শর্ত সত্য হলে প্রথম মান, মিথ্যা হলে দ্বিতীয় মান দেয়।যেখানে শিখবেন: পর্ব ০৬
Test caseটেস্ট কেস
একটি নির্দিষ্ট আচরণ যাচাইয়ের একটি টেস্ট — ইনপুট, কাজ আর প্রত্যাশিত ফলসহ, সাধারণত একটি বর্ণনামূলক নামে।যেখানে শিখবেন: পর্ব ৪৮
Test doubleটেস্ট ডাবল
টেস্টের সময় আসল অংশের (নেটওয়ার্ক, ফাইল, ডেটাবেস) জায়গায় বসানো বিকল্প object — যেমন Fake, Stub বা Mock — যা একই interface মানে কিন্তু দ্রুত ও নিরাপদ।যেখানে শিখবেন: পর্ব ২৬পর্ব ৪৮পর্ব ৫১
Test fixtureটেস্ট ফিক্সচার
কয়েকটি টেস্টের একই প্রস্তুতি ও পরিষ্কারের কাজ এক জায়গায়; প্রতিটি টেস্টের জন্য নতুন করে তৈরি হয়, যাতে টেস্টগুলো একে অপরকে প্রভাবিত না করে।যেখানে শিখবেন: পর্ব ৪৮
Test frameworkটেস্ট ফ্রেমওয়ার্ক
টেস্ট লেখা, নিবন্ধন, চালানো আর রিপোর্টের জন্য তৈরি library, যেমন GoogleTest, Catch2 বা doctest.যেখানে শিখবেন: পর্ব ৪৮
Test harnessটেস্ট হারনেস
যে কোড টেস্টগুলো চালায়, পাস-ফেল গোনে আর ব্যর্থতার জায়গা জানায়; ছোট একটি CHECK macro দিয়েও বানানো যায়।যেখানে শিখবেন: পর্ব ৪৮পর্ব ৫১
Test planটেস্ট প্ল্যান
কোন কোন পরিস্থিতিতে প্রোগ্রাম পরীক্ষা করা হবে, কী ইনপুট দেওয়া হবে আর কী ফল আশা করা হচ্ছে — তার আগাম লিখিত তালিকা।যেখানে শিখবেন: পর্ব ১৯
Test-driven development (TDD)টেস্ট-ড্রিভেন ডেভেলপমেন্ট
কোড লেখার আগে টেস্ট লেখার পদ্ধতি: ছোট একটি ব্যর্থ টেস্ট, তাকে পাস করানোর মতো কোড, তারপর পরিষ্কার করা।যেখানে শিখবেন: পর্ব ৪৮
Testabilityটেস্টেবিলিটি
কোডকে কত সহজে আলাদা করে টেস্ট করা যায়; pure function, interface আর বাইরে থেকে দেওয়া ঘড়ি বা seed এটি বাড়ায়।যেখানে শিখবেন: পর্ব ৪৮
Testing pyramidটেস্টিং পিরামিড
টেস্ট সাজানোর একটি নকশা: নিচে অনেক দ্রুত unit test, মাঝে কিছু integration test, ওপরে অল্প কয়েকটি ধীর end-to-end test.যেখানে শিখবেন: পর্ব ৪৮
Text modeটেক্সট মোড
ফাইল খোলার ডিফল্ট ধরন, যেখানে লাইব্রেরি প্ল্যাটফর্মের লাইন-শেষ চিহ্ন আর প্রোগ্রামের '\n'-এর মধ্যে রূপান্তর করতে পারে; Windows-এ লাইন-শেষ হলো \n দুই বাইট।যেখানে শিখবেন: পর্ব ৪৪
Text protocolটেক্সট প্রোটোকল
প্রোগ্রামের সাথে কথা বলার নিয়মবদ্ধ লেখার ভাষা — প্রতিটি লাইন একটি কমান্ড, শব্দের ক্রম ও অর্থ আগে থেকে ঠিক করা; মানুষ টাইপ করতে পারে, আবার ফাইলে লিখে স্বয়ংক্রিয় টেস্টও করা যায়।যেখানে শিখবেন: পর্ব ৫১
Textual inclusionটেক্সচুয়াল ইনক্লুশন
#include-এর কাজের ধরন: preprocessor header ফাইলের পুরো লেখা হুবহু কপি করে ফাইলের ভেতরে বসিয়ে দেয়, তার macro আর সব ঘোষণাসহ।যেখানে শিখবেন: পর্ব ৪২
Think aloudথিংক অ্যালাউড
সমস্যা সমাধানের সময় মনের ভাবনা জোরে জোরে বলে যাওয়া, যাতে পরীক্ষক আপনার যুক্তির পথ দেখতে পান। শেষ উত্তর ভুল হলেও পথ দেখে তিনি আংশিক কৃতিত্ব দিতে পারেন।যেখানে শিখবেন: পর্ব ৫৪পর্ব ৫৫
this / *this captureদিস ক্যাপচার
member function-এর ভেতরের lambda-তে [this] শুধু object-এর pointer কপি করে, আর C++17-এর [*this] পুরো object-এর কপি নেয়; দ্বিতীয়টি object-এর চেয়ে বেশি দিন বাঁচলেও নিরাপদ।যেখানে শিখবেন: পর্ব ৩৪
this pointerদিস পয়েন্টার
class-এর member function-এর ভেতরে লুকানো একটি pointer, যা সেই object-কে দেখায় যার ওপর ফাংশনটি ডাকা হয়েছে।যেখানে শিখবেন: পর্ব ১৫পর্ব ২০পর্ব ২২
Threadথ্রেড
একটি প্রোগ্রামের ভেতরে স্বাধীনভাবে চলা একটি কাজের ধারা। একই প্রোগ্রামের সব thread একই মেমরি (global আর heap) ভাগ করে, কিন্তু প্রত্যেকের নিজের stack থাকে।যেখানে শিখবেন: পর্ব ৪৫পর্ব ৫৪
Thread poolথ্রেড পুল
আগে থেকে তৈরি নির্দিষ্ট সংখ্যক thread, যারা একটি queue থেকে একের পর এক কাজ নিয়ে করে। প্রতিটি ছোট কাজের জন্য নতুন thread বানানোর খরচ বাঁচে।যেখানে শিখবেন: পর্ব ৪৫
Thread storage durationথ্রেড স্টোরেজ ডিউরেশন
thread_local দিয়ে ঘোষিত ভ্যারিয়েবলের আয়ু: প্রতিটি thread-এর নিজস্ব কপি, thread শেষ হলে সেটি ধ্বংস।যেখানে শিখবেন: পর্ব ১৮
ThreadSanitizer (TSan)থ্রেড স্যানিটাইজার
GCC ও Clang-এর টুল (-fsanitize=thread), যা চলার সময় data race ধরে; AddressSanitizer-এর সাথে একই build-এ চলে না।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৫পর্ব ৪৬
Three-way comparison (<=>)থ্রি-ওয়ে কম্প্যারিজন
C++20-এর spaceship operator; একবারে বলে দেয় প্রথম মান ছোট, সমান না বড়, আর এর থেকে compiler বাকি তুলনাগুলো বানাতে পারে।যেখানে শিখবেন: পর্ব ০৬পর্ব ১২পর্ব ২৩
Throughputথ্রুপুট
নির্দিষ্ট সময়ে কতগুলো কাজ শেষ হয় — যেমন সেকেন্ডে কত লেনদেন। কাজ জমিয়ে একসাথে করলে throughput বাড়ে, কিন্তু একেকটি কাজের latency বাড়তে পারে।যেখানে শিখবেন: পর্ব ৪৯
throwথ্রো
একটি exception object তৈরি করে ছুড়ে দেওয়ার এক্সপ্রেশন। চলার সঙ্গে সঙ্গে স্বাভাবিক পথ থেমে যায়, আর প্রোগ্রাম call stack বেয়ে মিলে-যাওয়া catch খুঁজতে থাকে।যেখানে শিখবেন: পর্ব ৩৭
Time zoneটাইম জোন
একটি অঞ্চলের স্থানীয় সময়ের নিয়ম, ইতিহাসসহ (যেমন "Asia/Dhaka"); C++20-এর zoned_time এগুলো IANA time zone database থেকে নেয়, তবে লাইব্রেরিভেদে সহায়তা আলাদা।যেখানে শিখবেন: পর্ব ৪১
time_pointটাইম পয়েন্ট
chrono-তে একটি নির্দিষ্ট মুহূর্ত, যা একটি clock-এর epoch থেকে কত duration পেরিয়েছে তা দিয়ে প্রকাশ করা; দুটি time_point বিয়োগ করলে একটি duration পাওয়া যায়।যেখানে শিখবেন: পর্ব ৪১
Toolchainটুলচেইন
Source code থেকে চালানো যায় এমন প্রোগ্রাম বানাতে পরপর যে প্রোগ্রামগুলো কাজ করে — preprocessor, compiler, assembler আর linker মিলে পুরো দলটি।যেখানে শিখবেন: পর্ব ০৩পর্ব ৪৭
Toolchain file (CMake)টুলচেইন ফাইল
configure-এর শুরুতে CMake যে script পড়ে compiler বা library খোঁজার জায়গা ঠিক করে; vcpkg এভাবে CMake-এর সাথে যুক্ত হয়।যেখানে শিখবেন: পর্ব ৪৭
Trace tableট্রেস টেবিল
কোড হাতে চালানোর সময় প্রতিটি ধাপে ভ্যারিয়েবল আর object-এর মান লিখে রাখার টেবিল। প্রতিটি কলামে একটি ভ্যারিয়েবল, প্রতিটি সারিতে একটি ধাপ, আর একটি কলামে আউটপুট থাকে।যেখানে শিখবেন: পর্ব ৫২
trailing requires clauseট্রেইলিং রিকোয়ারস ক্লজ
ফাংশনের ঘোষণার শেষে, parameter তালিকার পরে লেখা requires শর্ত। class template-এর সাধারণ member function-এ শর্ত বসাতে এটি লাগে।যেখানে শিখবেন: পর্ব ৪০
Trailing return typeট্রেইলিং রিটার্ন টাইপ
return টাইপ নামের আগে না লিখে parameter-এর পরে -> দিয়ে লেখা, যেমন auto area(double r) -> double (C++11 থেকে)।যেখানে শিখবেন: পর্ব ০৯পর্ব ৩৪
Train model (release schedule)ট্রেন মডেল
C++11-এর পর থেকে C++ কমিটির নিয়ম: প্রতি তিন বছরে নির্দিষ্ট সময়ে একটি standard বের হবে; যে বৈশিষ্ট্য তৈরি নয়, সে পরের সংস্করণের অপেক্ষা করবে।যেখানে শিখবেন: পর্ব ৪২
Transactionট্রানজ্যাকশন
কয়েকটি পরিবর্তনের একটি দল, যা ডেটাবেস একসাথে প্রয়োগ করে: হয় সবগুলো ঘটে, নয়তো একটিও না; একসাথে চলা অন্য কাজ থেকেও আলাদা রাখা হয়।যেখানে শিখবেন: পর্ব ৫১
Transient allocationট্রানজিয়েন্ট অ্যালোকেশন
C++20-এর নিয়ম: constant evaluation-এর সময় new দিয়ে মেমরি নেওয়া যায়, কিন্তু হিসাব শেষের আগেই ফেরত দিতে হয়। তাই constexpr ফাংশনের ভেতরে std::vector চলে, কিন্তু constexpr vector ভ্যারিয়েবল চলে না।যেখানে শিখবেন: পর্ব ৩৯
Transitive dependencyট্রানজিটিভ ডিপেনডেন্সি
পরোক্ষ নির্ভরতা: A যদি B-কে আর B যদি C-কে PUBLIC-ভাবে ব্যবহার করে, তাহলে A নিজে থেকেই C-এর usage requirements পায়।যেখানে শিখবেন: পর্ব ৪৭
Translation unitট্রান্সলেশন ইউনিট
একটি .cpp ফাইল আর preprocessing-এর পর তার ভেতরে ঢোকা সব header মিলে যে একটি বড় লেখা হয় — compiler একবারে ঠিক এটুকুই অনুবাদ করে।যেখানে শিখবেন: পর্ব ০৩পর্ব ১৯পর্ব ২৮
Tree rotationট্রি রোটেশন
একটি node আর তার সন্তানের বাবা-সন্তান সম্পর্ক উল্টে দেওয়ার ছোট পুনর্বিন্যাস। এতে tree-এর উচ্চতা কমে, কিন্তু বাম-ছোট ডান-বড় ক্রম ঠিক থাকে।যেখানে শিখবেন: পর্ব ৩১
try blockট্রাই ব্লক
কোডের যে অংশ থেকে বেরোনো exception তার পরের catch ক্লজগুলো ধরতে পারে। try নিজে কিছু ধরে না, শুধু পাহারার এলাকা চিহ্নিত করে।যেখানে শিখবেন: পর্ব ৩৭
try_emplaceট্রাই-এমপ্লেস
C++17 থেকে map-এর member ফাংশন: চাবি না থাকলে নতুন উপাদান বানায়, থাকলে কিছুই বদলায় না আর আর্গুমেন্ট থেকে move-ও করে না। ফেরত দেয় iterator আর একটি bool.যেখানে শিখবেন: পর্ব ৩১পর্ব ৫১
Two pointersটু পয়েন্টার্স
দুটি index শুধু সামনের দিকে সরিয়ে একটি range বা জোড়া খোঁজার কৌশল; প্রতিটি index সর্বোচ্চ n বার সরে, তাই মোট কাজ O(n).যেখানে শিখবেন: পর্ব ৫০পর্ব ৫৫
Two's complementটু'জ কমপ্লিমেন্ট
ঋণাত্মক পূর্ণসংখ্যা বিটে রাখার পদ্ধতি — সব বিট উল্টে ১ যোগ করা; C++20 থেকে signed পূর্ণসংখ্যার জন্য বাধ্যতামূলক।যেখানে শিখবেন: পর্ব ০৫পর্ব ৪৩
Two-phase initializationটু-ফেজ ইনিশিয়ালাইজেশন
object দুই ধাপে তৈরি করার রীতি: আগে প্রায় ফাঁকা constructor, পরে আলাদা init() ফাংশন; মাঝখানে object অর্ধেক-তৈরি থাকে বলে আধুনিক C++-এ এড়ানো হয়।যেখানে শিখবেন: পর্ব ২১
Type alias (using)টাইপ এলিয়াস
একটি টাইপের দ্বিতীয় নাম, যেমন using Taka = long long; এটি নতুন টাইপ তৈরি করে না, শুধু পড়ার সুবিধা আর এক জায়গায় সিদ্ধান্ত রাখার উপায়। C-এর typedef-এর আধুনিক রূপ।যেখানে শিখবেন: পর্ব ২৯পর্ব ৫০পর্ব ৫৩
type constraintটাইপ কনস্ট্রেইন্ট
template parameter-এর ঘোষণায় typename-এর জায়গায় concept-এর নাম লেখা, যেমন template <std::integral T> বা std::integral auto.যেখানে শিখবেন: পর্ব ৪০
Type deductionটাইপ ডিডাকশন
প্রোগ্রামার টাইপ না লিখলে compiler নিজেই মান বা হিসাব দেখে টাইপ ঠিক করে নেওয়া; যেমন auto বা template-এ।যেখানে শিখবেন: পর্ব ০৫পর্ব ২৮পর্ব ৫২
Type erasureটাইপ ইরেজার
নানা টাইপের জিনিসকে একটি সাধারণ টাইপের ভেতরে রেখে আসল টাইপটি বাইরে থেকে লুকিয়ে ফেলার কৌশল। std::function এর পরিচিত উদাহরণ — যেকোনো মানানসই ফাংশন বা lambda ধরে রাখে।যেখানে শিখবেন: পর্ব ২৬পর্ব ৩৪পর্ব ৩৮
Type punningটাইপ পানিং
একটি টাইপের object-এর ভেতরের বিটগুলো অন্য টাইপ হিসেবে দেখা, যেমন float-এর বিট uint32_t হিসেবে; নিরাপদ উপায় std::bit_cast বা std::memcpy.যেখানে শিখবেন: পর্ব ৪২পর্ব ৪৩
type requirementটাইপ রিকোয়ারমেন্ট
requires expression-এর ভেতরে typename দিয়ে শুরু শর্ত, যেমন typename T::value_type; নামটি একটি বৈধ টাইপ কি না দেখে।যেখানে শিখবেন: পর্ব ৪০
Type safetyটাইপ সেফটি
ভাষা বা লাইব্রেরির এমন নিশ্চয়তা, যাতে এক টাইপের মানকে ভুল করে অন্য টাইপ হিসেবে ব্যবহার করা না যায়; ভুল হলে compile-এর সময়েই ধরা পড়ে।যেখানে শিখবেন: পর্ব ৩৮
Type traitটাইপ ট্রেইট
compile-এর সময় একটি টাইপ সম্পর্কে প্রশ্নের উত্তর দেওয়া ছোট class template, যেমন std::is_pointer_v; হেডারে থাকে। ভেতরে সাধারণত partial specialization দিয়ে লেখা।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৯
typename (disambiguator)টাইপনেম
dependent name-এর আগে বসিয়ে compiler-কে জানানো যে নামটি একটি টাইপ, যেমন typename C::value_type x; না দিলে compiler একে মান ধরে আর error দেয়। C++20 কিছু জায়গায় এটি ঐচ্ছিক করেছে।যেখানে শিখবেন: পর্ব ২৯

U

UML (Unified Modeling Language)ইউএমএল
সফটওয়্যারের নকশা ছবিতে আঁকার একটি প্রমিত চিহ্ন-ব্যবস্থা। class diagram-এ প্রতিটি class একটি বাক্স: ওপরে নাম, মাঝে ডেটা, নিচে কাজ।যেখানে শিখবেন: পর্ব ০২
Undefined behaviorআনডিফাইন্ড বিহেভিয়ার
যে কাজের ফল C++ standard নির্দিষ্ট করে না — প্রোগ্রাম যা খুশি করতে পারে; যেমন মান না দেওয়া ভ্যারিয়েবল পড়া বা signed overflow.যেখানে শিখবেন: পর্ব ০১পর্ব ০৩পর্ব ০৫
UndefinedBehaviorSanitizer (UBSan)আনডিফাইন্ড বিহেভিয়ার স্যানিটাইজার
GCC ও Clang-এর টুল (-fsanitize=undefined), যা চলার সময় signed overflow, বেশি shift, null-এর ভেতরে ঢোকা, শূন্য দিয়ে ভাগের মতো ভাষার UB ধরে রিপোর্ট দেয়।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৪৭পর্ব ৫২
Underlying typeআন্ডারলাইং টাইপ
একটি enum মেমরিতে যে পূর্ণসংখ্যা টাইপ হিসেবে রাখা হয়; enum class-এ ডিফল্ট int, চাইলে : std::uint8_t লিখে বদলানো যায়।যেখানে শিখবেন: পর্ব ১২
Unicodeইউনিকোড
পৃথিবীর প্রায় সব লিপির প্রতিটি অক্ষরকে একটি করে নম্বর (code point) দেওয়ার আন্তর্জাতিক মান; বাংলা অক্ষরগুলোর নম্বর U+0980 থেকে U+09FF-এর মধ্যে।যেখানে শিখবেন: পর্ব ১৪
Uninitialized variableআনইনিশিয়ালাইজড ভ্যারিয়েবল
যে ভ্যারিয়েবলকে তৈরির সময় কোনো মান দেওয়া হয়নি; ভেতরে আগে থেকে পড়ে থাকা যেকোনো বিট (আবর্জনা মান) থাকে।যেখানে শিখবেন: পর্ব ০৫পর্ব ৪৩
Unit testইউনিট টেস্ট
প্রোগ্রামের একটি ছোট অংশ (সাধারণত একটি ফাংশন) আলাদাভাবে পরীক্ষা করার কোড — নির্দিষ্ট ইনপুটে ঠিক ফল আসছে কি না।যেখানে শিখবেন: পর্ব ১৯পর্ব ২৬পর্ব ৪৭
Unscoped enum (plain enum)আনস্কোপড ইনাম
C থেকে আসা পুরোনো enum; এর নামগুলো বাইরের scope-এ ছড়িয়ে পড়ে আর নিজে থেকেই পূর্ণসংখ্যায় বদলে যায়।যেখানে শিখবেন: পর্ব ১২
unsignedআনসাইনড
যে পূর্ণসংখ্যার টাইপে ঋণাত্মক মান নেই — শুধু শূন্য ও ধনাত্মক; তাই একই আকারে সর্বোচ্চ মান প্রায় দ্বিগুণ।যেখানে শিখবেন: পর্ব ০৫পর্ব ০৬পর্ব ৪৩
Unspecified behaviorআনস্পেসিফাইড বিহেভিয়ার
কয়েকটি বৈধ ফলের যেকোনো একটি হতে পারে, compiler-কে জানাতেও হয় না; যেমন ফাংশনের argument কোন ক্রমে হিসাব হবে। প্রোগ্রাম ভাঙে না।যেখানে শিখবেন: পর্ব ৪৩পর্ব ৫২পর্ব ৫৪
Upcastআপকাস্ট
derived object-কে base class-এর reference বা pointer দিয়ে ধরা; public inheritance-এ C++ এটি নিজে থেকে, নিরাপদে করে।যেখানে শিখবেন: পর্ব ২৫
upper_boundআপার বাউন্ড
সাজানো ক্রমে প্রথম যে উপাদানটি দেওয়া চাবির চেয়ে বড় (>), তার iterator দেয়। lower_bound(a) থেকে upper_bound(b) পর্যন্ত হাঁটলে a থেকে b-এর সব উপাদান পাওয়া যায়।যেখানে শিখবেন: পর্ব ৩১
Upsolvingআপসলভিং
কনটেস্ট শেষ হওয়ার পরে, যে সমস্যাগুলো পারেননি সেগুলো সমাধান করা; কনটেস্টের দক্ষতা বাড়ার সবচেয়ে কার্যকর পথগুলোর একটি।যেখানে শিখবেন: পর্ব ৫০
Usage requirementsইউসেজ রিকোয়ারমেন্টস
একটি target-কে ব্যবহার করতে ব্যবহারকারীর যা লাগে — include ফোল্ডার, flag, C++ standard, link করার library. PUBLIC বা INTERFACE দিয়ে ঘোষণা হয়।যেখানে শিখবেন: পর্ব ৪৭
Use-after-freeইউজ-আফটার-ফ্রি
মেমরি ফেরত দেওয়ার (delete বা free) পরেও সেই ঠিকানা দিয়ে পড়া বা লেখা; undefined behavior, আর হ্যাকারদের পরিচিত আক্রমণের পথ।যেখানে শিখবেন: পর্ব ১৩পর্ব ১৬পর্ব ১৮
Use-after-moveইউজ আফটার মুভ
কোনো object থেকে move করার পর, নতুন মান না দিয়েই তাকে আবার পড়া বা ব্যবহার করা। moved-from object-এর মান অনির্দিষ্ট, তাই এটি একটি বাগ; clang-tidy-এর bugprone-use-after-move check এটি খোঁজে।যেখানে শিখবেন: পর্ব ৩৬
use_count()ইউজ কাউন্ট
shared_ptr-এর member function, যা বলে এই মুহূর্তে object-টির কতজন shared_ptr মালিক আছে; বোঝা ও ডিবাগের জন্য, যুক্তির ভিত্তি হিসেবে নয়।যেখানে শিখবেন: পর্ব ১৭
User storyইউজার স্টোরি
ব্যবহারকারীর চোখে লেখা একটি ছোট চাহিদা: “আমি (কে) হিসেবে (কী) চাই, যাতে (কেন)।” কাজটি কার জন্য আর কেন দরকার, দুটোই মনে রাখায়।যেখানে শিখবেন: পর্ব ১৯
User-defined literalইউজার-ডিফাইন্ড লিটারাল
সংখ্যার শেষে একটি suffix লিখে বিশেষ টাইপের মান বানানোর উপায়, যেমন chrono-র 5s, 250ms, 2h (C++14) বা 2026y (C++20); string-এর জন্য "abc"s.যেখানে শিখবেন: পর্ব ৪১
User-defined typeইউজার-ডিফাইনড টাইপ
ভাষার তৈরি int, double-এর বাইরে প্রোগ্রামার নিজে যে টাইপ বানান — যেমন enum, struct বা class দিয়ে।যেখানে শিখবেন: পর্ব ১২পর্ব ২৩
using enumইউজিং ইনাম
C++20-এর ঘোষণা, যা একটি scope-এর ভেতরে enum class-এর মানগুলো নাম ছাড়াই লিখতে দেয় — Color::red-এর বদলে শুধু red.যেখানে শিখবেন: পর্ব ৪২
using-declarationইউজিং ডিক্লারেশন
using std::cout; বা using Base::f; — একটি নির্দিষ্ট নামকে বর্তমান scope-এ আনা: namespace-এর নাম পদবি ছাড়া ব্যবহার, বা derived class-এ base-এর ঢাকা পড়া নাম ফেরত আনা।যেখানে শিখবেন: পর্ব ০৪পর্ব ১১পর্ব ২৪
using-directiveইউজিং ডিরেক্টিভ
using namespace std; — একটি namespace-এর সব নাম পদবি ছাড়া দেখা যায় এমন করে দেয়। ছোট কোডে সুবিধাজনক, কিন্তু নামের সংঘাতের ঝুঁকি আনে; header-এ কখনো নয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ১১পর্ব ৫০
UTCইউ-টি-সি
Coordinated Universal Time — বিশ্বের সব স্থানীয় সময়ের ভিত্তি; বাংলাদেশের সময় UTC-র চেয়ে ৬ ঘণ্টা এগিয়ে, অর্থাৎ UTC+6.যেখানে শিখবেন: পর্ব ৪১
UTF-8ইউটিএফ-এইট
লেখাকে বাইটে রাখার সবচেয়ে প্রচলিত পদ্ধতি; ইংরেজি অক্ষর ১ বাইটে, আর বাংলা অক্ষর সাধারণত ৩ বাইটে রাখা হয়।যেখানে শিখবেন: পর্ব ০৪পর্ব ০৫পর্ব ০৭

V

Valgrindভ্যালগ্রিন্ড
Linux-এর একটি টুল, যার Memcheck অংশ প্রোগ্রামকে একটি কৃত্রিম CPU-তে চালিয়ে leak, use-after-free আর double free খুঁজে দেয়; recompile লাগে না, তবে অনেক ধীর।যেখানে শিখবেন: পর্ব ১৬
Value categoryভ্যালু ক্যাটাগরি
প্রতিটি C++ expression-এর একটি শ্রেণি — lvalue, xvalue অথবা prvalue. এটি বলে দেয় জিনিসটির স্থায়ী পরিচয় আছে কি না, আর তার থেকে move করা নিরাপদ কি না।যেখানে শিখবেন: পর্ব ৩৬পর্ব ৫২
Value objectভ্যালু অবজেক্ট
যে ছোট object-এর পরিচয় তার মানেই (যেমন Money): একই মানের দুটি object সমান গণ্য হয়; সাধারণত অপরিবর্তনীয় আর কপি করা সস্তা।যেখানে শিখবেন: পর্ব ৫১
Value semanticsভ্যালু সিমান্টিকস
একটি বস্তু কপি করলে পুরো আলাদা, স্বাধীন আরেকটি বস্তু তৈরি হওয়া — int-এর মতো আচরণ। std::array আর std::vector দুটোই এভাবে কপি হয়।যেখানে শিখবেন: পর্ব ১৩পর্ব ২২পর্ব ২৩
Value typeভ্যালু টাইপ
যে টাইপের object তার মান দিয়ে চেনা যায়, পরিচয় দিয়ে নয় — যেমন Money, Date, std::string. দুটি সমান মান মানে একই জিনিস, আর কপি করা স্বাভাবিক ও নিরাপদ।যেখানে শিখবেন: পর্ব ২৭
valueless_by_exceptionভ্যালুলেস বাই এক্সেপশন
variant-এর বিরল একটি অবস্থা: টাইপ বদলানোর সময় পুরোনো মান ধ্বংসের পরে নতুন মান তৈরিতে exception হলে variant-এ কোনো মান থাকে না। তখন index() দেয় std::variant_npos.যেখানে শিখবেন: পর্ব ৩৮
Variableভ্যারিয়েবল
মেমরিতে নাম দেওয়া একটি জায়গা, যেখানে একটি নির্দিষ্ট টাইপের মান রাখা হয় এবং দরকার হলে বদলানো যায়।যেখানে শিখবেন: পর্ব ০৫
Variadic templateভ্যারিয়াডিক টেমপ্লেট
যত খুশি template argument নিতে পারে এমন template, যেমন template . C++11 থেকে; std::tuple, std::make_unique, emplace_back আর std::format এর ওপর দাঁড়িয়ে।যেখানে শিখবেন: পর্ব ২৯পর্ব ৩৬পর্ব ৩৮
vcpkgভিসিপিকেজি
Microsoft-এর খোলা C++ package manager. vcpkg.json-এ তালিকা দিলে library-গুলো আপনার compiler-এর জন্য build করে CMake-কে জানায়।যেখানে শিখবেন: পর্ব ৪৭
Verdictভার্ডিক্ট
জমা দেওয়া সমাধানের ওপর জাজের ছোট রায় — যেমন AC (সব ঠিক), WA (ভুল উত্তর), TLE (সময় পেরিয়েছে), RE (প্রোগ্রাম ভেঙে পড়েছে)।যেখানে শিখবেন: পর্ব ৫০
View (non-owning)ভিউ
যে object অন্য কারও ডেটার দিকে শুধু তাকায়, মালিক নয় — যেমন string_view, span বা C++20-এর ranges view (অলস, কপি সস্তা); আসল ডেটা মরে গেলে view-ও অবৈধ।যেখানে শিখবেন: পর্ব ১৮পর্ব ৩৫পর্ব ৫৩
Virtual destructorভার্চুয়াল ডেস্ট্রাক্টর
virtual ঘোষিত destructor; base pointer দিয়ে delete করলে আসল derived টাইপের destructor চলে। virtual ফাংশনওয়ালা base class-এ এটি প্রায় বাধ্যতামূলক।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৬পর্ব ৫৪
Virtual functionভার্চুয়াল ফাংশন
virtual লেখা member function — base-এর reference বা pointer দিয়ে ডাকলেও object-এর আসল (derived) টাইপের সংস্করণ চলে। polymorphism-এর ভিত্তি; বিস্তারিত পর্ব ২৫-এ।যেখানে শিখবেন: পর্ব ২৪পর্ব ২৫পর্ব ২৬
Virtual inheritanceভার্চুয়াল ইনহেরিট্যান্স
class Student : virtual Person — diamond-এ শেয়ার করা base-এর একটিমাত্র অংশ রাখার ব্যবস্থা। দাম: জটিল বিন্যাস, আর সেই base-এর constructor ডাকে সবচেয়ে নিচের class.যেখানে শিখবেন: পর্ব ২৪পর্ব ৫৪
Viva (oral exam)ভাইভা
মৌখিক পরীক্ষা। পরীক্ষক মুখে প্রশ্ন করেন, আপনি মুখে উত্তর দেন, আর উত্তরের সূত্র ধরে তিনি একের পর এক পরের প্রশ্ন করেন।যেখানে শিখবেন: পর্ব ৫৪
voidভয়েড
“কিছুই না” বোঝানোর টাইপ; void ফাংশন কাজ করে, কিন্তু কোনো মান ফেরত দেয় না।যেখানে শিখবেন: পর্ব ০৯
volatileভোলাটাইল
compiler-কে বলে এই ভ্যারিয়েবলের প্রতিটি পড়া-লেখা কোডে যেমন লেখা তেমনই করতে — hardware register-এর জন্য। C++-এ এটি atomicity বা thread-এর মাঝে ক্রম দেয় না, তাই thread-এর পতাকা নয়।যেখানে শিখবেন: পর্ব ৪৬পর্ব ৫৪
vptr (virtual pointer)ভি-পয়েন্টার
polymorphic object-এর ভেতরে compiler-এর রাখা লুকানো pointer, যা object-এর class-এর vtable দেখায়; constructor এটি ঠিক করে দেয়।যেখানে শিখবেন: পর্ব ২৫পর্ব ৫২পর্ব ৫৩
vtable (virtual table)ভি-টেবিল
প্রচলিত বাস্তবায়নে virtual ফাংশনওয়ালা প্রতিটি class-এর জন্য compiler-এর বানানো তালিকা, যাতে সেই class-এর virtual ফাংশনগুলোর ঠিকানা থাকে; standard এটি বাধ্য করে না।যেখানে শিখবেন: পর্ব ২৫পর্ব ২৬পর্ব ৫২

W

wait_forওয়েট ফর
future-এর সদস্য ফাংশন, যা বড়জোর নির্দিষ্ট সময় অপেক্ষা করে future_status ফেরত দেয়: ready, timeout বা deferred. deferred কাজকে এটি চালায় না।যেখানে শিখবেন: পর্ব ৪৬
Warm-upওয়ার্ম-আপ
মাপা শুরুর আগে কাজটি কয়েকবার চালিয়ে নেওয়া, যাতে cache, মেমরির পাতা আর CPU-র গতি স্বাভাবিক অবস্থায় আসে। প্রথমবারের চালানো সাধারণত বাকিদের চেয়ে ধীর হয়।যেখানে শিখবেন: পর্ব ৪৯
Warningওয়ার্নিং
Compiler-এর সতর্কবার্তা — প্রোগ্রাম বানানো গেছে, কিন্তু কোডের কোনো অংশ সন্দেহজনক। বেশিরভাগ আসল বাগ প্রথমে warning হয়েই দেখা দেয়।যেখানে শিখবেন: পর্ব ০৩
Watchpointওয়াচপয়েন্ট
একটি ভ্যারিয়েবল বা মেমরির ওপর নজর; মান বদলালেই debugger প্রোগ্রাম থামায় (GDB-তে watch).যেখানে শিখবেন: পর্ব ৪৮
wchar_tডব্লিউ-চার-টি
C++-এর wide অক্ষর-টাইপ; Windows-এ ১৬ বিট (UTF-16-এর একক), Linux-এ সাধারণত ৩২ বিট। Windows-এ std::filesystem::path ভেতরে এই টাইপে নাম রাখে।যেখানে শিখবেন: পর্ব ৪৪
-Werrorডব্লিউ-এরর
GCC ও Clang-এর flag, যা প্রতিটি warning-কে error বানিয়ে দেয়; CI-তে দিলে নতুন warning এলেই build ব্যর্থ হয়।যেখানে শিখবেন: পর্ব ৪৩
WG21 (ISO C++ committee)ডাব্লিউ-জি টোয়েন্টি-ওয়ান
ISO-র যে কমিটি C++ standard লেখে। সদস্যরা প্রস্তাব (paper) জমা দেন, মিটিংয়ে আলোচনা করেন আর ভোটে নিয়ম ঠিক করেন।যেখানে শিখবেন: পর্ব ৪২
while loopহোয়াইল লুপ
প্রতিবার দেহ চালানোর আগে শর্ত পরীক্ষা করে এমন লুপ; শুরুতেই শর্ত মিথ্যা হলে একবারও চলে না।যেখানে শিখবেন: পর্ব ০৮
Whitespaceহোয়াইটস্পেস
যে অক্ষর চোখে দেখা যায় না কিন্তু জায়গা নেয় — স্পেস, ট্যাব আর নতুন লাইন (\n). >> শুরুতে এগুলো বাদ দেয়, আর এগুলো দেখেই থামে।যেখানে শিখবেন: পর্ব ০৭
Wild pointerওয়াইল্ড পয়েন্টার
মান না দিয়ে ঘোষণা করা pointer, যার ভেতরে আবর্জনা ঠিকানা থাকে; ব্যবহার করলে undefined behavior.যেখানে শিখবেন: পর্ব ১৫
-Wreorderডব্লিউ-রিঅর্ডার
g++ ও clang-এর সতর্কবার্তা (-Wall-এর অংশ): initializer list-এ member-দের ক্রম class-এ ঘোষণার ক্রমের সাথে মেলে না, অথচ initialization হয় ঘোষণার ক্রমেই।যেখানে শিখবেন: পর্ব ২১
-Wswitch warningডব্লিউ-সুইচ ওয়ার্নিং
GCC ও Clang-এর সতর্কবার্তা (-Wall-এর অংশ), যা জানায় enum-এর ওপর switch-এ কোনো মানের case লেখা হয়নি — যদি default না থাকে।যেখানে শিখবেন: পর্ব ১২

X

xvalue (expiring value)এক্স-ভ্যালু
এমন expression, যার একটি নির্দিষ্ট object আছে কিন্তু মেয়াদ-শেষ বলে চিহ্নিত — যেমন std::move(x) বা T&& ফেরত দেওয়া ফাংশনের ফল। এর থেকে move করা যায়।যেখানে শিখবেন: পর্ব ৩৬

Y

YAGNI (You Aren't Gonna Need It)ইয়াগনি
আজ যা দরকার নেই, “হয়তো একদিন লাগবে” ভেবে তা আগেভাগে বানাবেন না — প্রয়োজন সত্যিই এলে তখন বানান।যেখানে শিখবেন: পর্ব ২৭পর্ব ৫১

Z

Zero-cost exceptionsজিরো-কস্ট এক্সেপশন
আধুনিক compiler-এর table-based পদ্ধতি: কিছু ছোড়া না হলে সফল পথে প্রায় কোনো বাড়তি নির্দেশ চলে না, কারণ cleanup-এর তথ্য আলাদা টেবিলে থাকে। দাম দিতে হয় throw-এর মুহূর্তে, যা বেশ ধীর, আর টেবিলের জন্য প্রোগ্রামের আকারে।যেখানে শিখবেন: পর্ব ৩৭
Zero-overhead principleজিরো-ওভারহেড প্রিন্সিপল
C++-এর মূল নকশা-নীতি: যে feature ব্যবহার করেন না তার জন্য কোনো খরচ নেই, আর যা ব্যবহার করেন তা হাতে লিখেও এর চেয়ে দক্ষ করা যেত না।যেখানে শিখবেন: পর্ব ০১পর্ব ২০পর্ব ২৫

← C++ প্রোগ্রামিং কোর্সের হোম পেজে ফিরে যান