@VanQator: możliwe, że te anomalie w MS Visual C++ są spowodowane "nie do końca" poprawną implementacją copy-elision i move-semantics, w którym pojawiło się wyróżnienie zmiennych o kategorii rvalue.
@VanQator: Konstruktor z implicit konwersją oraz późniejszym użyciem operatora= jako przypisanie w przypadku braku tego consta w konstruktorze kopiującym prawdopodobnie ma zabronione wykonanie copy-elision.
Czyli będzie potrzebować osobno konstruktora do konwersji (i stworzy wtedy Człowieka rvalue), a potem będzie szukać konstruktora/operatora= z move-sematics - ale nie dam sobie uciąć głowy za to.
Trzeba spróbować się przekonać lub znaleźć paragraf na to w
https://paste.ofcode.org/zKxZTkt6qQQ8HqPnewg3Q4
Dlaczego taki licznik obiektów ciągle wskazuje 0? Podkreśliłem ////// implementacje.
U mnie kompilator bez tego nawet nie chce zbudować tego kodu.
https://godbolt.org/z/5MWocM
rvalue.operatora=jako przypisanie w przypadku braku tegoconstaw konstruktorze kopiującym prawdopodobnie ma zabronione wykonanie copy-elision.Czyli będzie potrzebować osobno konstruktora do konwersji (i stworzy wtedy Człowieka
rvalue), a potem będzie szukać konstruktora/operatora= z move-sematics - ale nie dam sobie uciąć głowy za to.Trzeba spróbować się przekonać lub znaleźć paragraf na to w
https://godbolt.org/z/3xzv9E