Я использую Oracle API для доступа к базе данных, и этот API имеет функцию readBuffer(char * buffer, unsigned int size);
, в которую я не могу вносить никаких изменений.
У меня есть класс, который использует этот API, и сигнатура моей функции в настоящее время принимает std::string
и unsigned int
для размера, проблема в том, что когда я передаю std::string.size()
аргументу размера моей функции, я получаю предупреждение от моего компилятора о том, что преобразование с size_t
по unsigned int
может привести к потере данных.
Мне интересно, есть ли правильный способ преобразовать size_t
в unsigned int
, чтобы я мог передать его в свой API и не получить предупреждение от компилятора?
Я понимаю цель size_t, и поиск в Google для этого преобразования дает много результатов, в которых говорится: «измените функцию, чтобы она принимала аргумент size_t», но в этом случае я НЕ МОГУ изменить подпись своего API.
Какие-либо предложения?