class A
{
public:
virtual std::string name() = 0;
};
class C
{
public:
C(A* p)
{
std::cout << p->name() << std::endl;
}
};
class B: public A
{
public:
B(): A(), m_obj(this)
{
}
virtual std::string name()
{
return "Hello, world!";
}
C m_obj;
};
Кратко: одно из полей класса в конструкторе по указателю на предка сделало вызов виртуальной функции.
Вопрос: будет работать правильно или все-таки undefined behavior? Т.е. гарантируется ли, что первым делом конструктор инициализирует vtbl?










. Очевидно, что она лежит в диапазоне 
. Удостовериться, что данное значение является искомым можно просто решив квадратное уравнение и проверив один из получившихся делителей.
делится на 4 и наш шаг делится на 4 и сохранить только
? Кажется, что можно добиться 

бит дополнительной памяти.

предпериод не превосходит степени максимального простого в
, делителем
, делителем 
быстрым возведением в степень требует либо представления числа n в двоичной системе счисления, либо использования десятичного возведения в степень с плохой константой. При ограничениях
- ответ задачи. 

