Почему Base and Derived ковариантны, однако, shared_ptr<Base> and shared_ptr<Derived> - нет?
Угадайте не гугля откуда ента цитата:
Именно поэтому я считаю с++ программистов именно «Программистами» с большой буквы. Они как хирурги в современном мире программирования ) А остальные так… педиатры всякие, медбратья )
Предлагаю включить в стандарт ISO C++ следующую строчку. Ну, чтобы не было недоразумений.
Any program that written in C++ is ill-formed.путь к успеху: начало https://v1.std3.ru/70/40/1427403964-7040334ac7b8e3c3a8cde205f43d6b7f.jpg
Чо напечатает эта программа?
inb4: нахуй пошел
#include <stdio.h>
class A {
bool m_init;
public:
A(){m_init = true; printf ("ctor\n");}
~A(){
printf ("dtor\n");
if (m_init) {
deinit();
}
}
void deinit () {
printf ("deinit!\n");
m_init = false;
}
};
int main() {
A a;
a.~A();
return 0;
}