В С++ есть ли смысл использовать const void *
для типа аргумента функции над void *
? Поскольку void *
непрозрачно, есть ли риск модификации, кроме как если пользователь сделает reinterpret_cast
, и в этом случае он может аналогичным образом выполнить const_cast
на const void *
и, таким образом, действительно ли кто-то что-то купит? Я спрашиваю, потому что я использовал класс служебных шаблонов для общих указателей, который предоставлял специализацию по void
, чтобы избежать проблемы void &
, но специализации для const void
не было, и поэтому мне интересно, было ли это просто недосмотром или никогда не должно быть быть нужным?