#include <optional>
bool f() {
std::optional<int> opt;
return opt;
}
সংকলন করে না: 'return': cannot convert from 'std::optional<int>' to 'bool'
পরামর্শের রেফারেন্সটি আমি ব্যাখ্যাটি আবিষ্কার করার জন্য ভাবতাম, তবে এটি ঠিক হওয়া উচিত বলে আমি এটি পড়েছি।
অন্তর্ভুক্ত রূপান্তরগুলি সম্পাদিত হয় যখনই কোনও প্রকারের টি 1 এর একটি অভিব্যক্তি প্রসঙ্গে ব্যবহার করা হয় যা সেই ধরণেরটি গ্রহণ করে না, তবে কিছু অন্য ধরণের টি 2 গ্রহণ করে; নির্দিষ্টভাবে:
- যখন টি 2 দিয়ে প্যারামিটার হিসাবে ঘোষিত কোনও ফাংশন কল করার সময় অভিব্যক্তিটি আর্গুমেন্ট হিসাবে ব্যবহৃত হয়;
- যখন অভিব্যক্তিটি অপারেটরের সাথে অপারেন্ড হিসাবে ব্যবহৃত হয় যা টি 2 আশা করে;
- টি 2 রিটার্ন করে একটি ফাংশনে রিটার্ন স্টেটমেন্ট সহ টি 2 টাইপের নতুন কোনও বস্তুর সূচনা করার সময়;
- যখন অভিব্যক্তিটি একটি স্যুইচ স্টেটমেন্টে ব্যবহৃত হয় (টি 2 অবিচ্ছেদ্য টাইপ);
- যখন অভিব্যক্তিটি যদি একটি if স্টেটমেন্ট বা লুপে ব্যবহৃত হয় (টি 2 বুল হয়)।
operator bool()
এরstd::optional
রয়েছেexplicit
।