কম্পিউটার

C++ এ বৈশিষ্ট্য


বৈশিষ্ট্যগুলি হল C++ এ জিনিসগুলিকে মানক করার আধুনিক উপায় যদি তাদের কোড বিভিন্ন কম্পাইলারে চলে। বৈশিষ্ট্যগুলি কিছু অতিরিক্ত তথ্য প্রদান করতে ব্যবহৃত হয় যা শর্তগুলি (সীমাবদ্ধতা), অপ্টিমাইজেশান এবং প্রয়োজনে নির্দিষ্ট কোড তৈরি করতে ব্যবহৃত হয়৷

এগুলি কম্পাইলারদের জন্য কিছু কার্যকর করার জন্য একটি তথ্য ম্যানুয়ালের মতো যা কোডের কার্যকারিতা উন্নত করবে। অ্যাট্রিবিউটগুলি প্রথম C++ 11 এ দেখা গেছে এবং তারপর থেকে প্রোগ্রামিং ভাষার গুরুত্বপূর্ণ অংশ, এছাড়াও প্রতিটি সংস্করণের সাথে কিছু সংশোধন ক্রমাগত করা হয় যাতে সেগুলি আরও শক্তিশালী এবং উন্নত হয়৷

আসুন দেখি কিভাবে আমরা C++ এ বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করতে পারি

C++ এর বিভিন্ন সংস্করণের জন্য, বৈশিষ্ট্য সংজ্ঞায়িত করার জন্য সিনট্যাক্স ভিন্ন।

c++ 11 -

-এ অ্যাট্রিবিউট তৈরির জন্য সিনট্যাক্স
[[অ্যাট্রিবিউট-তালিকা]]

c++ 17 -

-এ অ্যাট্রিবিউট তৈরির জন্য সিনট্যাক্স
[[অ্যাট্রিবিউট-নেমস্পেস ব্যবহার করে:অ্যাট্রিবিউট_লিস্ট]]

c++ 20-এ অ্যাট্রিবিউট তৈরির জন্য সিনট্যাক্স (শীঘ্রই প্রকাশিত হবে) -

[[contract-attriubute-token contract-level-identifier :expression]]

আপনি ভেরিয়েবল, ফাংশন, ক্লাস সহ অনেক বৈশিষ্ট্য ব্যবহার করতে পারেন।

এখন, যেহেতু আমরা জানি বৈশিষ্ট্যগুলি কী, তারা কীভাবে কাজ করছে এবং কীভাবে সেগুলি সংজ্ঞায়িত করা হয়েছে। আসুন বিভিন্ন স্ট্যান্ডার্ড অ্যাট্রিবিউট দেখি যা c++ এ উপলব্ধ।

C++ 11-এ প্রবর্তিত বৈশিষ্ট্যগুলি

নরেটার্ন − এই বৈশিষ্ট্যটি কম্পাইলারকে বলার জন্য ব্যবহার করা হয় যে ফাংশনটি কোনো মান ফেরত দেয় না।

সিনট্যাক্স

[[noreturn]]

উদাহরণ

[[noreturn]] void f();

এই ফাংশনটি কোনো মান ফেরত দেবে না, এমনকি অকার্যকরও নয়।

noreturn অ্যাট্রিবিউট, যখন c++ ব্যবহার করা হয়, কিছু ভুল হলে কম্পাইলারকে একটি সতর্কতা ফেরত দিতে সক্ষম করে এবং ফ্লো কলিং কোডে ফিরে না যায়, যেমন একটি অসীম লুপ বা কোনো ত্রুটির ক্ষেত্রে।

নির্ভরশীলতা বহন করে − এটি রিলিজ-কনজিউমে থাকা সমস্ত নির্ভরতাকে সংজ্ঞায়িত করতে ব্যবহৃত হয় এবং অপ্রয়োজনীয় মেমরি গ্রাসকারী নির্দেশাবলীর মধ্য দিয়ে না গিয়ে কম্পাইলারকে অপ্টিমাইজ করার অনুমতি দেয়৷

সিনট্যাক্স

[[ বহন_নির্ভরতা]]

নির্ভরতা ঘোষণা করার জন্য এটি প্রধানত ফাংশন বা প্যারামিটারের ঘোষণার সাথে ব্যবহৃত হয়।

বঞ্চিত৷ − এটি কোডে একটি অবচিত সত্তাকে সংজ্ঞায়িত করতে ব্যবহৃত হয়। এই অপ্রচলিত সত্তার ব্যবহার অনুমোদিত কিন্তু এটি ব্যবহার করার পরামর্শ দেওয়া হয় না৷

সিনট্যাক্স

[[অবঞ্চিত]][[বঞ্চিত (কারণ)]]

কারণটি হল একটি স্ট্রিং যা অবচয় করার কারণ দেয় এবং অবচয় সত্তার জন্য একটি বিকল্প প্রদান করে৷

যে সত্তাগুলিকে অবমূল্যায়ন করা যেতে পারে সেগুলি হল ক্লাস, কাঠামো, ইউনিয়ন, টাইপডেফ-নাম, স্ট্যাটিক সদস্য, ফাংশন, নেমস্পেস, গণনা৷

পতন − এটি কম্পাইলারকে নির্দেশ করতে ব্যবহৃত হয় যে পরবর্তী কেস থেকে ফলথ্রু ইচ্ছাকৃত, এই কারণে কম্পাইলার পতনের বিষয়ে সতর্ক করে না।

সিনট্যাক্স

<প্রে>[[ফলথ্রু]]

ফলথ্রু শুধুমাত্র সুইচের সাথে ব্যবহার করা যেতে পারে কারণ পরবর্তী ক্ষেত্রে এটির জন্য সংজ্ঞায়িত করা হয়েছে।

নোডিসকার্ড − এটি এমন একটি ফাংশনের জন্য ব্যবহার করা হয় যা একটি গণনা ফেরত দেবে যা বাতিল করা মান অভিব্যক্তি থেকে cast to void কলের পরিবর্তে কল করা হবে। কম্পাইলার এটির জন্য একটি সতর্কতাও জারি করবে৷

সিনট্যাক্স

[[nodiscard]][[nodiscard (কারণ)]] (C++ 20 এ যোগ করা হয়েছে)

কারণটি হল একটি স্ট্রিং যা ফলাফল বাতিল না করার কারণ প্রদান করতে ব্যবহৃত হয় এবং এটি c++ 20-এ অন্তর্ভুক্ত করা হবে।

হয়তো_অব্যবহৃত − এটি কম্পাইলারকে অব্যবহৃত সত্তার ক্ষেত্রে প্রদর্শিত সতর্কতা দমন বা নির্মূল করতে বলতে ব্যবহৃত হয়৷

সিনট্যাক্স

[[সম্ভবত_অব্যবহৃত]]

যে সত্তাগুলোকে maybe_unused ঘোষণা করা যেতে পারে সেগুলো হল ক্লাস, স্ট্রাকচার, ইউনিয়ন, টাইপডেফ-নাম, স্ট্যাটিক সদস্য, ফাংশন, ভেরিয়েবল, গণনা।

সম্ভাব্য, অসম্ভাব্য − এগুলি আবহাওয়া নির্ধারণ করতে ব্যবহৃত হয় যে বিকল্প পথটি বর্তমান কার্যকর হওয়ার সম্ভাবনা কমবেশি।

সিনট্যাক্স

[[সম্ভাব্য]][[অসম্ভাব্য]]

এগুলি সাধারণত লেবেল এবং বিবৃতিগুলির মতো প্রোগ্রামের প্রবাহকে পরিবর্তন করে এমন সত্তাগুলিতে প্রয়োগ করা হয়৷

কোন_ইউনিক_ঠিকানা - এটি একটি ডেটা-সদস্যকে সংজ্ঞায়িত করতে ব্যবহৃত হয় যার একটি নির্দিষ্ট ঠিকানার প্রয়োজন নেই। এটি সাধারণত অ-স্ট্যাটিক ডেটা সদস্যদের ক্ষেত্রে ব্যবহৃত হয় তাদের মেমরি বরাদ্দকরণের প্রয়োজন নেই।

সিনট্যাক্স

[[no_unique_address]]

এটি উপযোগী হয় যখন কম্পাইলারকে একটি স্বাভাবিক এবং no_unique_address ভেরিয়েবলের মধ্যে মেমরি অবস্থান নির্ধারণ করতে হয় কম্পাইলার পূর্বেরটিকে অগ্রাধিকার দেবে৷

অপ্টিমাইজ_ফর_সিঙ্ক্রোনাইজড − এটি সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় যে প্রদত্ত ফাংশনের সংজ্ঞাটি সিঙ্ক্রোনাইজড স্টেটমেন্ট থেকে আহ্বানের জন্য অপ্টিমাইজ করতে হবে৷

সিনট্যাক্স

[[অপ্টিমাইজ_ফর_সিঙ্ক্রোনাইজড]]

optimize_for_synchronized হিসাবে সংজ্ঞায়িত ফাংশন সিঙ্ক্রোনাইজড ব্লকগুলিকে সিরিয়ালাইজ করা এড়াবে৷

প্রত্যাশিত − এটি ফাংশন কার্যকর করার জন্য একটি ফাংশনের আর্গুমেন্টের জন্য প্রয়োজনীয় শর্তগুলি নির্দিষ্ট করে৷

সিনট্যাক্স

[[প্রত্যাশিত :শর্ত]]

শর্তটি একটি শর্তকে সংজ্ঞায়িত করে যা ফাংশনটি কার্যকর করার জন্য পূরণ করতে হবে৷

এগুলি ছিল সমস্ত বৈশিষ্ট্য যা C++ এ C++ 11 থেকে C++ 20 পর্যন্ত সংজ্ঞায়িত করা হয়েছে। এখন দেখা যাক কেন এই বৈশিষ্ট্যগুলি প্রোগ্রামিং-এ ব্যবহার করা হয় অর্থাৎ কোন প্রস্তাবিত বৈশিষ্ট্যগুলি সমাধান করে?

  • কোডটিতে সীমাবদ্ধতা যোগ করতে − অনেক ক্ষেত্রে, বৈশিষ্ট্যগুলি কোডে অর্থ যোগ করে এবং এটিকে আরও বৈধ করে তোলে এবং অতিরিক্ত প্রচেষ্টা কমায়৷

  • কম্পাইলারকে আরও কিছু অপ্টিমাইজেশান তথ্য প্রদান করুন − কিছু বৈশিষ্ট্য যেমন fallthrough, সম্ভবত, maybe_used নির্দিষ্ট অপ্টিমাইজেশন করতে কম্পাইলারকে তথ্য প্রদান করে।

  • সতর্কতা এবং ত্রুটিগুলি এড়িয়ে চলা৷ − কখনও কখনও প্রোগ্রামারের যুক্তি C++ দ্বারা কঠোর নিয়মের বিরুদ্ধে যায়। এই ক্ষেত্রেই কিছু বৈশিষ্ট্য আসে এবং ব্যবহারকারীদের সতর্কতা এড়াতে বা দমন করতে সাহায্য করে যা ঘটতে চলেছে।


  1. C++ এ শনাক্তকারী

  2. লিনাক্সে C++ এর সেরা IDE কি?

  3. C# এ বৈশিষ্ট্যগুলি কী কী?

  4. C# এ অপ্রচলিত বৈশিষ্ট্যগুলি কী কী?