Модификатор const в API C++
При работе с API в С++ столкнулся с массой нелогичностей.
Например, абсолютное неиспользование модификатора доступа const.
int GRD_API GrdSign(
HANDLE hGrd,
DWORD dwAlgoNum,
DWORD dwDataLng,
void *pData,
DWORD dwSignResultLng,
void *pSignResult,
void *pReserved
);
Как определить, меняет ли функция исходные данные по указателю pData? В описании ничего про это не сказано.
Казалось бы, не должна. Зачем менять данные, которые мы хотим подписать?
Однозначно помог бы const, но его нет. Т.е. значит меняет?
Или допустим у класса CGrdDongle есть метод
HANDLE GetHandle()
{
return m_hGrd;
}
Экземпляр класса этот метод не меняет, почему он тогда не объявлен как константный?
Рекомендую тем, кто создает API прочитать книгу Джеффа Элджера "C++ for real programmers" http://www.rsdn.ru/res/book/cpp/cpp_rea … ammers.xml
И это дело не эстетики (как форматирование кода), а нормального, правильного использования языка.