GNU C++ কম্পাইলার (g++) C++-এ কিছু এক্সটেনশন যোগ করেছে।
- -std=c++11: কেবল ISO C++11 স্ট্যান্ডার্ড অনুমোদিত ফিচার। GNU এক্সটেনশনগুলো যা স্ট্যান্ডার্ড লঙ্ঘন করে, সেগুলো ডিজেবল থাকে।
- -std=gnu++11: ISO C++11 পлюস GNU এক্সটেনশনগুলো (যা স্ট্যান্ডার্ড লঙ্ঘন করে না সেগুলো এবং কিছু যা লঙ্ঘন করেও ডিফল্টলি অন)। এটি GCC-র ডিফল্ট মোড।
GNU এক্সটেনশন উদাহরণ:
- ভেরিয়েবল-লেঞ্জ्थ অ্যারে (VLA) - C99 ফিচার, C++-এ নন-স্ট্যান্ডার্ড
__typeof__,__builtin_*ফাংশনগুলো- নেস্টেড ফাংশন
- নন-কনস্ট স্ট্যাটিক মেম্বার ইন-ক্লাস ইনিশিয়ালাইজেশন (পুরানো GCC-এ)
সুপারিশ: পোর্টেবল কোডের জন্য -std=c++11 (বা c++17, c++20) ব্যবহার করুন। -pedantic যোগ করলে নন-স্ট্যান্ডার্ড এক্সটেনশন ওয়ার্নিং দেবে।
এক্সটেনশন লিস্ট: GCC C++ Extensions