2009-06-16
const 型修飾子
D の const は、型修飾子ではなく記憶クラスです。従って、
型修飾子として使われている const は全て除いてしまいます:
void foo(const int *p, char *const q);
は、こうなります:
void foo(int* p, char* q);
D でこのように書いた場合、
void foo(const int* p)
C で同じ意味の記述は、
void foo(const int* const p)
になる。
C でこのように書いた場合、
void foo(const int* p)
D で同じ意味の記述は、
void foo(const(int)* p)
になる。
で、const 型修飾子の項目では、
const(int) や const(char) では無く、
const を除くように書いてあるのは、なぜだろう?
もしかして、Cのリンケージの関数には、
const(int) などの const型は書いてはいけない?