このセクションでは、C/C++test が現在サポートしていない GCC コンパイラ拡張について説明します。これらの制限事項は、サポート対象の GCC ベースのクロス コンパイラ、およびカスタム GCC コンパイラ ビルドにも適用されます。GNU コンパイラ拡張については http://gcc.gnu.org/onlinedocs を参照してください。
関数への引数として変数長の配列
void tester (int len, char data[len][len])
{
} |
上書きされる戻り型を持つ仮想関数
class A
{
public:
virtual void* a();
};
class B:
public A
{
public:
virtual B* a(); // Return type changed from void* to (compatible) B*.
// It is ok in GCC but EDG will complain
}; |
メンバー関数のポインター エイリアスの制限
class T
{
public:
void fn();
};
void T::fn () __restrict__ // EDG won't compile this
{
} |
関数属性
void fatal () __attribute__ ((noreturn));
void fatal () { }
typedef void voidfn ();
volatile voidfn fatal; // EDG: declaration is incompatible with
// "void fatal()" |
friend 宣言
class A;
namespace N {
class B {
friend class A; // In GCC it refers to N::A (which has not been
// declared yet), but EDG refers to ::A
int _private;
};
class A {
void foo()
{
B b;
b._private = 0; // EDG inaccessible field.
}
};
} |
GCC 5.x と同じです。
GCC 5.x と同じです。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
C++23 の機能はサポートされていません。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
C++23 の機能はサポートされていません。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
C++23 の機能はサポートされていません。
GCC 5.x と同じです。
一部の C++20 の機能はサポートされていません。
C++23 の機能はサポートされていません。