মূল্য এবং মূল্যগুলির উপর এই ব্যাখ্যাটি পড়ার সময় , কোডগুলির এই লাইনগুলি আমার কাছে আটকে গেল:
int& foo();
foo() = 42; // OK, foo() is an lvalue
আমি এটি g ++ এ চেষ্টা করেছি, তবে সংকলকটি "foo () এর অপরিবর্তিত রেফারেন্স" বলে। আমি যদি যোগ করি
int foo()
{
return 2;
}
int main()
{
int& foo();
foo() = 42;
}
এটি সূক্ষ্ম সংকলন করে, তবে এটি চালানো বিভাগকে ত্রুটি দেয় । শুধু লাইন
int& foo();
উভয়ই সংকলন করে এবং কোনও সমস্যা ছাড়াই চলে।
এই কোড মানে কি? আপনি কীভাবে কোনও ফাংশন কলে একটি মান নির্ধারণ করতে পারেন এবং এটি কেন কোনও মূল্য নয়?