先日。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))