先日。C++の設計と進化 を読んでいたら、私の知らない文法が目にとまった。
int a; // a を int 型として宣言(定義?)する。これは普通。 int( b ); // b を int 型として宣言(定義?)する。こんなところに括弧を書いてもいいなんて知らなかった。
まだまだ C++ の修行が足りない。いや、これは K&R C のころからの文法だと思うけど。
まあ実用上は知らなくて困ることはないと思うんだが、かなりくやしい。
ちなみに。
typedef int A;
int foo( int(a) );
int bar( int(A) );
void main()
{
cout << "foo : " << typeid(foo).name() << endl;
cout << "bar : " << typeid(bar).name() << endl;
}と書くと、
foo : int __cdecl(int)
bar : int __cdecl(int (__cdecl*)(int))