উদাহরণ:
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
?