Класс друзей должен быть публичным, ошибки Кланг?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Класс друзей должен быть публичным, ошибки Кланг?

Сообщение Anonymous »

Я попытался скомпилировать чью -то интрузивный_Птр с Clang 3.7 & -std = c ++ 1z , и он генерирует ошибки (GCC 5.2.1 -это в порядке):

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

In file included from test_intrusive_ptr.cpp:10:
./intrusive_ptr.hpp:539:53: error: '_Weak_observer' is a private member of
'std::_Intrusive_ptr_impl::_Deleteable'
using _Observer = typename intrusive_base::_Weak_observer;
^
test_intrusive_ptr.cpp:27:21: note: in instantiation of template      class 'std::intrusive_weak_ptr' requested here
template class std::intrusive_weak_ptr;
^
./intrusive_ptr.hpp:141:9: note: implicitly declared private here
class _Weak_observer : public _Ref_count_base {
^
./intrusive_ptr.hpp:556:24: error: '__create_observer' is a private member of
'std::_Intrusive_ptr_impl::_Deleteable'
__observer = __rhs->__create_observer();
^
test_intrusive_ptr.cpp:27:21: note: in instantiation of member function 'std::intrusive_weak_ptr::intrusive_weak_ptr' requested here
template class std::intrusive_weak_ptr;
^
./intrusive_ptr.hpp:174:20: note: implicitly declared private here
_Weak_observer * __create_observer() const volatile {
^
2 errors generated.
Но код хорошо компилируется после того, как я добавляю public в строке 134. Это ошибка в Clang?

Подробнее здесь: https://stackoverflow.com/questions/340 ... clangs-bug
Ответить

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

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

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

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

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