- 698 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 07:49:47 ]
- >>696
それは、規格の文面によって、明示的に禁止されている。 4.4 Qualification conversions [conv.qual] なぜできないのかというと、それを用いることによって、const性に穴が生じるから。 規格のサンプルコードを、適当にコメントを補って引用すると、 int main() { const char c = ’c’; char* pc; const char** pcc = &pc; // 仮に、これが許可されているとする *pcc = &c;// ppcを介して、pcを変更している。 *pc = ’C’; // pcはconstでもないのに、constなはずのcを参照出来ているので、変更できる。 } つまり、constなppcを介して、非constなpcを変更できてしまうので、 pcが、明示的なキャストもなしに、constなオブジェクトを参照することが可能になってしまう。
|

|