次のコードはg++4.7.1でコンパイルされますが、clang3.1ではコンパイルされません。
struct A
{
int foo();
};
int A::foo() __restrict
{
return 0;
}
int main(int argc, char * argv[])
{
A a;
return a.foo();
}
clangはサポートしてい__restrict
ますか?または、特定の構文を使用していますか?
次のコードはg++4.7.1でコンパイルされますが、clang3.1ではコンパイルされません。
struct A
{
int foo();
};
int A::foo() __restrict
{
return 0;
}
int main(int argc, char * argv[])
{
A a;
return a.foo();
}
clangはサポートしてい__restrict
ますか?または、特定の構文を使用していますか?
私はclang3.1を手元に持っていませんが、clang 4.1では、次のエラーが発生します。
t.cpp:6:8: error: out-of-line definition of 'foo' does not match any declaration
in 'A'
int A::foo() __restrict
^~~
t.cpp:3:7: note: member declaration nearly matches
int foo();
^
1 error generated.
の宣言を次のように変更すると、clang4.1は正常にコンパイルしますA::foo
。
int foo() __restrict;