সি ++ 98 এর আসল উদ্দেশ্যটি হ'ল <cstdint>
গ্লোবাল নেমস্পেসকে দূষিত করা এড়াতে আপনার সি ++ ব্যবহার করা উচিত (ভাল, <cstdint>
বিশেষত নয়, এটি কেবল সি ++ 11 এ যুক্ত করা হয়েছে তবে <c*>
সাধারণভাবে শিরোনাম)।
যাইহোক, বাস্তবায়নগুলি যেভাবেই হোক বিশ্বব্যাপী নেমস্পেসে প্রতীকগুলি রাখার পক্ষে অব্যাহত ছিল এবং সি ++ 11 এই অনুশীলনকে অনুমোদন দিয়েছে [*]। সুতরাং, আপনার কাছে মূলত তিনটি বিকল্প রয়েছে:
- ব্যবহারের
<cstdint>
এবং হয় সম্পূর্ণরূপে প্রতিটি পূর্ণসংখ্যা টাইপ যোগ্যতা অর্জন আপনি ব্যবহার বা অন্য সুযোগ সেটিকে জিনিস আপনাকে এনে using std::int32_t;
ইত্যাদি (কারণ বাগাড়ম্বরপূর্ণ বিরক্তিকর, কিন্তু এটা শুধু সি অন্য কোন প্রতীক ++ স্ট্যান্ডার্ডের লাইব্রেরির জন্য মত করার অধিকার পথ)
- ব্যবহার
<stdint.h>
(কিছুটা খারাপ কারণ হ্রাস করা হয়েছে)
- ব্যবহার করুন
<cstdint>
এবং ধরে নিন আপনার বাস্তবায়নটি বিশ্বব্যাপী নেমস্পেসে চিহ্নগুলি রাখবে (গ্যারান্টিযুক্ত না হওয়ায় খুব খারাপ)।
অনুশীলনে আমি সন্দেহ করি যে একটি বিরক্তিকর বিপুল পরিমাণ কোড শেষ বিকল্পটি ব্যবহার করে, কেবলমাত্র এমন কারণে যে দুর্ঘটনাক্রমে এমন কার্যকর করা সম্ভব হয় যেখানে <cstdint>
বিশ্বব্যাপী নেমস্পেসে চিহ্নগুলি রাখে। আপনার প্রথমটি ব্যবহার করার চেষ্টা করা উচিত। দ্বিতীয়টির একটি গুণ রয়েছে, এটি কেবলমাত্র এটি করার পরিবর্তে বিশ্বব্যাপী নেমস্পেসে স্টাফ রাখার গ্যারান্টিযুক্ত । আমি মনে করি না যে এটি বিশেষভাবে দরকারী, তবে এটি যদি আপনার অগ্রাধিকার হয় তবে এটি কিছু টাইপ করতে পারে।
এখানে একটি চতুর্থ বিকল্প রয়েছে যার #include <cstdint>
পরে using namespace std;
কখনও কখনও কার্যকর হয় তবে এমন জায়গাগুলি রয়েছে যা আপনার রাখা উচিত নয় using namespace std;
। সেই জায়গাগুলি যেখানে রয়েছে সেখানে বিভিন্ন লোকের বিভিন্ন ধারণা থাকতে পারে তবে "একটি শীর্ষস্থানীয় ফাইলে শীর্ষ স্তরের" "সিপিপি ফাইলের শীর্ষ স্তরের" থেকেও খারাপ, যা "সীমিত সুযোগে" এর চেয়েও খারাপ। কিছু লোক একেবারেই লেখেন না using namespace std;
।
[*] এর অর্থ সি ++ স্ট্যান্ডার্ড শিরোনামগুলিকে বিশ্বব্যাপী নেমস্পেসে স্টাফ রাখার অনুমতি দেওয়া হলেও এটির প্রয়োজন নেই। সুতরাং আপনাকে এই চিহ্নগুলির সাথে সংঘর্ষ এড়াতে হবে, তবে আপনি আসলে সেগুলি ব্যবহার করতে পারবেন না কারণ সেগুলি সেখানে নাও থাকতে পারে। মূলত, সি ++ এর বিশ্বব্যাপী নেমস্পেস একটি খনি ক্ষেত্র, এটি এড়াতে চেষ্টা করুন। কেউ তর্ক করতে পারে যে কমিটি বাস্তবায়নের মাধ্যমে একটি অনুশীলনকে অনুমোদন দিয়েছে যা using namespace std;
শিরোনামের ফাইলে শীর্ষ স্তরের উপর চাপানো প্রায় ক্ষতিকারক - পার্থক্য হ'ল বাস্তবায়নগুলি কেবল সি স্ট্যান্ডার্ড লাইব্রেরিতে চিহ্নগুলির জন্যই কাজ করে, যেখানে using namespace std;
এটি সি ++ এর জন্য করে শুধুমাত্র একক চিহ্ন। সি স্ট্যান্ডার্ডে একটি বিভাগ রয়েছে যা ভবিষ্যতে স্ট্যান্ডার্ডগুলিতে সংযোজনগুলির জন্য সংরক্ষিত নাম তালিকাভুক্ত করে। এই নামগুলিও C ++ বিশ্বব্যাপী নেমস্পেসে সংরক্ষিত হিসাবে বিবেচনা করা সম্পূর্ণ বোকামি ধারণা নয়, তবে এটি প্রয়োজনীয় নয়।
<cstdint>
। এখানে ত্রুটি আমি পাই আছে:./misc.h:7:10: fatal error: 'cstdint' file not found
।