0xd34df00d 18.03.2012 17:43 Azoth_primary

Решил снова поебаться с C++11-кодом под шлангом.

The implicitly-declared copy constructor for shared_ptr is deleted because shared_ptr has a move constructor or a move assignment operator (or both), per C++11 12.8p7:

If the class definition does not explicitly declare a copy constructor, one is declared implicitly. If the class definition declares a move constructor or move assignment operator, the implicitly declared copy constructor is defined as deleted; otherwise, it is defined as defaulted (8.4).

GCC 4.6.x does not implement this rule, which came into the C++11 working paper very late in the process as N3203=10-0193. The shared_ptr in libstdc++ 4.6.x was correct at the time it was written, but C++11 changed after that.. Boost had exactly the same issue with it's shared_ptr, and this is one of the common incompatibilities between GCC and Clang.

Adding a defaulted copy constructor and copy assignment operator to shared_ptr will fix the problem.

Recommended by:

@pooq: моча съела говно

1. magog 18.03.2012 17:44 Azoth

пофикси

2. 0xd34df00dmagog /1 18.03.2012 17:44 Azoth_primary

Как?

3. magog0xd34df00d /2 18.03.2012 17:44 Azoth

Adding a defaulted copy constructor and copy assignment operator to shared_ptr will fix the problem.

4. 0xd34df00dmagog /3 18.03.2012 17:45 Azoth_primary

Ты предлагаешь мне руками править системные хедеры?

5. magog0xd34df00d /4 18.03.2012 17:45 Azoth

нет. Я тебе предлагаю запилить патч для компилятора и отправить его куда нужно

6. 0xd34df00dmagog /5 18.03.2012 17:46 Azoth_primary

Да ты охуел!

8. magog0xd34df00d /6 18.03.2012 17:46 Azoth

агументруй

9. lockie 18.03.2012 18:03 ХОЛОДИЛЬНИКА

<vanga mode=on> http://0xd34df00d.psto.net/ostsne#4</...

10. 0xd34df00dlockie /9 18.03.2012 18:06 Azoth_primary

Че.

11. lockie0xd34df00d /10 18.03.2012 18:06 ХОЛОДИЛЬНИКА

я говорю, предупреждал же

12. 0xd34df00dlockie /11 18.03.2012 18:10 Azoth_primary

Ну еще бы, шланг юзает хедеры другого компайлера, удивительно, что оно не работает!

13. lockie0xd34df00d /12 18.03.2012 18:19 ХОЛОДИЛЬНИКА

А чочо, у него есть родные?

14. 0xd34df00dlockie /13 18.03.2012 18:44 Azoth_primary

Нет.

15. asmer 18.03.2012 23:02 Psi+

нихуя не понял. впрочем пох, я не знаю плюсы.

16. 0xd34df00dasmer /15 18.03.2012 23:03 Azoth_primary

Суть в том, что я зря наезжал на шланг с неделю назад — на самом деле, он лучше плюсцы поддерживает, чем gcc, поэтому фейлится на том коде, который gcc конпелирует. Потому что код некорректный.

Do you really want to delete ?