সি ++ এর যথাযথ স্ট্রিং রয়েছে যাতে আপনি এগুলিও ব্যবহার করতে পারেন। তারা স্ট্যান্ডার্ড শিরোনাম স্ট্রিং এ। এগুলিকে ব্যবহার করতে # স্ট্রিং> অন্তর্ভুক্ত করুন। আর আর স্ট্রিকাট / স্ট্রিপিপি বাফার ওভাররান হবে না; আর নাল টার্মিনেটর অনুপস্থিত; আর কোনও অগোছালো ম্যানুয়াল মেমরি পরিচালনা নয়; যথাযথ মান শব্দার্থক সহ সঠিক গণনাযুক্ত স্ট্রিং।
সি ++ এর মধ্যেও বুলগুলি মানব-পঠনযোগ্য উপস্থাপনায় রূপান্তর করতে পারে। আমরা এর আগে ইওস্ট্রিমের উদাহরণগুলির সাথে ইঙ্গিতগুলি দেখেছি তবে সেগুলি কিছুটা সীমাবদ্ধ কারণ তারা কেবলমাত্র কনসোলটিতে পাঠ্যটি বিস্ফোরিত করতে পারে (বা fstreams সহ একটি ফাইল)। ভাগ্যক্রমে, সি ++ এর ডিজাইনাররা সম্পূর্ণ বোকা ছিল না; আমাদের কাছে আইওস্ট্রিম রয়েছে যা কনসোল বা কোনও ফাইল নয়, স্বয়ংক্রিয়ভাবে পরিচালিত স্ট্রিং বাফার দ্বারা ব্যাক করা আছে। এগুলিকে স্ট্রিংস্ট্রিম বলা হয়। এগুলি পেতে # অন্তর্ভুক্ত <স্ট্রিম>। তারপরে আমরা বলতে পারি:
std::string bool_as_text(bool b)
{
std::stringstream converter;
converter << std::boolalpha << b;
return converter.str();
}
অবশ্যই, আমরা আসলে এটি সমস্ত টাইপ করতে চাই না। ভাগ্যক্রমে, সি ++ এর বুস্ট নামে একটি সুবিধাজনক তৃতীয় পক্ষের লাইব্রেরি রয়েছে যা আমাদের এখানে সহায়তা করতে পারে। বুস্টের একটি দুর্দান্ত ফাংশন রয়েছে যার নাম লেক্সিক্যাল_কাস্ট। আমরা এটি এভাবে ব্যবহার করতে পারি:
boost::lexical_cast<std::string>(my_bool)
এখন, এটি সত্য যে এটি কোনও ম্যাক্রোর চেয়ে বেশি ওভারহেড; স্ট্রিং স্ট্রিমগুলি সেই লোকেলগুলির সাথে ডিল করে যা আপনি নাও পাত্তা দিতে পারেন এবং একটি গতিশীল স্ট্রিং তৈরি করেন (মেমরি বরাদ্দ দিয়ে) যেখানে ম্যাক্রো একটি আক্ষরিক স্ট্রিং দিতে পারে যা এড়ানো যায় avo তবে ফ্লিপ দিকে, স্ট্রিং স্ট্রিম পদ্ধতিটি মুদ্রণযোগ্য এবং অভ্যন্তরীণ উপস্থাপনার মধ্যে দুর্দান্ত রূপান্তরগুলির জন্য ব্যবহার করা যেতে পারে। আপনি 'পিছনে তাদের চালাতে পারেন; বুস্ট :: লেজিক্যাল_কাস্ট <বিউল> ("সত্য") উদাহরণস্বরূপ সঠিক কাজটি করে। আপনি এগুলি সংখ্যার সাথে ব্যবহার করতে পারেন এবং প্রকৃতপক্ষে কোনও ধরণের সঠিক ফর্ম্যাটেড I / O অপারেটরগুলির সাথে। সুতরাং তারা বেশ বহুমুখী এবং দরকারী।
এবং যদি এই সব আপনার প্রোফাইলিং এবং স্থির করা মাপকাঠি পর জানায় যে lexical_casts একটি অগ্রহণযোগ্য বোতলের হয়, যে যখন আপনি কিছু ম্যাক্রো ভয়াবহ করছেন বিবেচনা করা উচিত।