Здравствуйте, so5team, Вы писали:
S>PS. Для разнообразия чуть измените конструктор s1:
S>S>struct s1 {
S> virtual void f() { std::cout << "s1::f" << std::endl; }
S> s1() {
S> call_f();
S> }
S> void call_f();
S>};
S>// Где-то совсем в другом месте, возможно даже в другой единице трансляции.
S>void s1::call_f() {
this->>f(); // (3)
S>}
S>
S>У нас теперь нет точки (1) в которой компилятор что-то точно знает.
S>Зато есть точка (3), которая на разных путях к call_f приводит к разному наблюдаемому поведению.
Ну, ладно, сдаюсь
Хотя, может же и проинлайнить