Что не так с const? - PullRequest
       2

Что не так с const?

12 голосов
/ 12 января 2011

Каковы известные недостатки const в C ++ и C ++ 0x?

Ответы [ 12 ]

0 голосов
/ 12 января 2011

Одна вещь, это все еще возможно подорвать это. т.е. все еще законно делать что-то вроде этого:

void foo(const inst& x)
{
   const_cast<int&> x = 3;
}

Вы даже можете использовать такие вещи, как memset, чтобы подорвать его без явного const_cast.

Это компромисс между принудительным применением const компилятором и предоставлением некоторой гибкости для интерфейсов, не поддерживающих const.

Что приводит к другому ограничению, заключающемуся в том, что оно не было принято повсеместно, что частично связано с другой проблемой, заключающейся в том, что использование const является предложением "все или ничего". Если вы начнете использовать его, вам нужно будет распространить его по всей базе кода.

0 голосов
/ 12 января 2011

Одна проблема заключается в том, что язык также позволяет вам использовать const_cast, что в первую очередь лишает смысла использование const.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...