Я работаю с двумя функциями из сторонних библиотек. Одна возвращает const char*, а другая принимает const u_char*. Изменить функции не представляется возможным.
Я пробовал использовать static_cast<>() и reinterpret_cast<>(), но такое преобразование является некорректным. Как и преобразование простым приведением типов в стиле Си.
Как следует поступить в моей ситуации?
Ошибки ещё во время компиляции:
error: invalid static_cast from type 'const char*' to type 'const u_char* {aka const unsigned char*}'
const u_char* pbuf = static_cast<const u_char*>(buf);
Всё зависит о того, что вы называете корректным, следующий код компилируется и выводит строку:
void foo(const unsigned char* str) {
cout << str; // Test string
}
int main() {
const char *str = "Test string";
foo(reinterpret_cast<const unsigned char*>(str));
return 0;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости