Szok. Coś mi chyba umknęło. Piszę sobie klasę, która zawiera jakieś tam sobie pola i boost::asio::io_context
. Podczas kompilacji przy próbie zrobienia użytku z tej klasy rzuca mi wyjątek, że ioc
jest nullptrem. Ja tu kurdę kminię o co może chodzić, aż w końcu jakimś sposobem pozmieniałem kolejność pól w klasie, tak aby ioc
było pierwsze:
private:
//bla bla
//bla bla
asio::io_context m_ioc;
zmieniłem na:
private:
asio::io_context m_ioc;
//bla bla
//bla bla
i działa XD
WTF!!! Żadnego nullptra już nie ma, wszystko żyje i jest w pytę.
Dlaczego to tak się dzieje? O co w tym wszystkim chodzi?
Dla kontekstu dodam, że po konstrukcji klasy od razu wołam metodę, która odpala oddzielny wątek, który wtedy konstruuje inny obiekt (miejsce w którym leciał wyjątek) - czyżby metoda z wątkiem była szybciej wołana niż inicjalizowane były pola? Bez sensu.