উদাহরণ:
typedef enum Color
{
RED,
GREEN,
BLUE
} Color;
void func(unsigned int& num)
{
num++;
}
int main()
{
Color clr = RED;
func(clr);
return 0;
}
আমি এটি সংকলন করার সময় আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:
<source>: In function 'int main()':
<source>:16:9: error: cannot bind non-const lvalue reference of type 'unsigned int&' to an rvalue of type 'unsigned int'
func(clr);
^~~
আমি মনে করি যে ভেরিয়েবলটি ( clr) আমি পাস করি func(unsigned int&)এটি একটি লভ্যালু। আমি এর ঠিকানা পেতে পারি clrএবং এটিতে আরও একটি মূল্য নির্ধারণ করতে পারি। আমি যখন এটি পাস করার চেষ্টা করি তখন কেন এটি কোনও মূল্যায়ণে পরিণত হয় func(unsigned int&)?
@ নাথান অলিভার-রিইনস্টেটমোনিকা আমার মূল মতামত অনুসারে, আমি মনে করি
—
কোইন
typedef enumযে কোনও দেশীয় প্রকার নয়, এবং সি ++ এটিকে unsigned intআসলে একটি প্রকার হিসাবে বিবেচনা করবে ।
এক্ষেত্রে জিসিসির ত্রুটি বার্তাটি সাব-থিমাল। কলং মূল ধরণের প্রিন্ট করে কম বিভ্রান্তিকর বার্তা দেবে
—
সিপ্লেয়ার্নার
clr।
@ ক্লিপনার হ্যাঁ, সে কারণেই আমি ভেবেছিলাম যে সি ++ তে
—
কোইন
enum typeতেমন ব্যবহার করা unsigned intহয়।
enum Xএর নিজস্ব ধরণ, এর থেকে আলাদাint
enumএকটিunsigned int?