Log4cxx Приведение FileInputStreamPtr к InputStreamPtrLinux

Ответить
Anonymous
 Log4cxx Приведение FileInputStreamPtr к InputStreamPtr

Сообщение Anonymous »

Я пытаюсь преобразовать log4cxx::FileInputStreamPtr в InputStreamPtr. В Windows с использованием компилятора Visual Studio 2019 это работает без проблем. Моя текущая реализация:

Код: Выделить всё

log4cxx::helpers::Properties properties;
log4cxx::helpers::InputStreamPtr inputStream = std::make_shared(resourceDirectory.string());

properties.load(inputStream);
Однако в Linux с GCC 8.5 компилятор выдает следующую ошибку:

ошибка: преобразование из
'std::shared_ptrlog4cxx::helpers::InputStream' в нескалярный тип
'log4cxx::helpers::InputStreamPtr' {aka
'log4cxx::helpers::ObjectPtrTlog4cxx::helpers::InputStream'

Затем я попробовал следующее подход:

Код: Выделить всё

std::shared_ptr fileInputStream = std::make_shared(resourceDirectory.string());
log4cxx::helpers::InputStreamPtr inputStream = std::static_pointer_cast(fileInputStream);
Опять же, это нормально компилируется с Visual Studio 2019, но GCC выдает аналогичную ошибку:

ошибка: преобразование из
'std::shared_ptrlog4cxx::helpers::InputStream' в нескалярный тип
'log4cxx::helpers::InputStreamPtr' {aka
'log4cxx::helpers::ObjectPtrTlog4cxx::helpers::InputStream'
запрошено

Есть ли у вас какие-либо предложения по решению этой проблемы? Я понимаю, что версия компилятора довольно старая, но обновить ее невозможно — мне нужно работать с GCC 8.5.

Подробнее здесь: https://stackoverflow.com/questions/798 ... tstreamptr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»