C++11 স্ট্যান্ডার্ড C++ ভাষার একটি সংস্করণ। এটি ১২ আগস্ট ২০১১ সালে আন্তর্জাতিক মানদণ্ড সংগঠন (ISO) দ্বারা অনুমোদিত হয়েছিল, তারপর C++14 এবং C++17। C++11 কোর ভাষাতে অনেক নতুন যোগফল আনায়। Visual C++ C++11-এর অধিকাংশ ফিচার ইমপ্লিমেন্ট করে।
Visual Studio 2015-এ C++11-এর কিছু ফিচার নিচে দেওয়া হলো:
nullptr — পূর্বের nullptr-এ শূন্য মান রয়েছে এবং এর ইমপ্লিসিট কনভার্সন টু ইন্টিজার ভ্যালুর একটি ড্রব্যাক ছিল। নাল পয়েন্টার লিটারেল std::nullptr_t দিয়ে রিপ্রেজেন্ট করা হয়। এই nullptr-এ কোনো ইমপ্লিসিট কনভার্সন নেই।
Lambdas — ল্যাম্বডা এক্সপ্রেশন লোকালি ফাংশন ডিফাইন করতে দেয়। অ্যানোনিমাস ফাংশন কে ল্যাম্বডা বলা হয়। std::function এক্সপেক্ট করা যেকোনো জায়গায় ল্যাম্বডা এক্সপ্রেশন ব্যবহার করা যায়।
auto — পূর্বের ভার্সনে অবজেক্টের টাইপ স্পেসিফাই করতে হতো কিন্তু C++11-এ টাইপ স্পেসিফাই করার দরকার নেই, অর্থাৎ আপনি সরাসরি টাইপ না বলে ভেরিয়েবল ডিক্লেয়ার করতে পারেন।
Override and Final — C++11 সংস্করণে দুটি নতুন স্পেশাল আইডেন্টিফায়ার معرفی করা হয়েছে: override এবং final। Override ইঙ্গিত দেয় যে মেথডটি বেস ক্লাসের ভার্চুয়াল মেথডের ওভাররাইড হওয়া উচিত। অন্যদিকে, final ইঙ্গিত দেয় যে ডিরাইভড ক্লাস ভার্চুয়াল মেথড ওভাররাইড করা উচিত নয়।
Deleted and defaulted functions — ডিলিটেড ফাংশন অবজেক্ট কপি রোধ করতে উপকারী। কপি ডিজেবল করতে "=delete;" ব্যবহার করা হয়। ডিফল্ট ফাংশন কম্পাইলারকে ফাংশনের ডিফল্ট ইমপ্লিমেন্টেশন জেনারেট করতে নির্দেশ দেয় এবং "=default;" ডিফল্ট ফাংশন실로 ব্যবহার করা হয়।
Strongly-typed enums — ট্র্যাডিশনাল enums-এ, সে সারাউন্ডিং স্কোপে তাদের enumexport করত। এগুলো "enum class" কীওয়ার্ড দিয়ে স্পেসিফাই করা হয়। এগুলো তাদের enumexport সারাউন্ডিং স্কোপে করে না।
Static_assert and type traits — এটি কম্পাইলেশন টাইমে অসারশন চেক করে। যদি অসারশন সত্য হয়, তবে কিছুই দেখায় না, অন্যথায় এরর মেসেজ দেখায়।
Range-based for loops — C++11 রেঞ্জ-বেসড ফর লুপ চালু করেছে কালেকশন ইটারেট করার জন্য। এখন C-অ্যারে এর মতো ইটারেট করা সম্ভব। এটি 'foreach' প্যারাডাইম সাপোর্ট করে।