&& C++11 স্ট্যান্ডার্ডে ডিফাইন করা একটি নতুন রেফারেন্স অপারেটর। int&& a মানে "a" একটি r-value রেফারেন্স। && সাধারণত শুধু ফাংশনের প্যারামিটার ডিক্লেয়ার করার জন্য ব্যবহার হয়। এবং এটি শুধু r-value এক্সপ্রেশন নেয়।
সহজ ভাষায়, একটি r-value হলো এমন একটি মান যার মেমরি অ্যাড্রেস নেই। যেমন সংখ্যা ৬, এবং ক্যারেক্টার 'v' দুটোই r-value। int a, a হলো একটি l-value, তবে (a+2) হলো একটি r-value।
উদাহরণ
void foo(int&& a) {
// কিছু ম্যাজিক্যাল কোড...
}
int main() {
int b;
foo(b); // এরর। একটি rValue রেফারেন্স lValue-কে পয়েন্ট করতে পারে না।
foo(5); // এরর ছাড়া কম্পাইল হয়।
foo(b+3); // এরর ছাড়া কম্পাইল হয়।
int&& c = b; // এরর। একটি rValue রেফারেন্স lValue-কে পয়েন্ট করতে পারে না।
int&& d = 5; // এরর ছাড়া কম্পাইল হয়।
}
আপনি R-values এবং এই অপারেটর সম্পর্কে আরও পড়তে পারেন https://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx-এ।