Дано:
class Foo {
Foo() {};
};
class Bar {
static int counter;
Bar() { ++counter; }
}
Понятно, что Foo :: Foo является поточно-ориентированным, а Bar :: bar - нет.
Кроме того, ясно, что если функция написана таким образом, что она не является поточно-ориентированной, то четкое помещение ее в конструктор делает этот конструктор не поточно-безопасным.
Однако, есть ли дополнительные ошибки, которые мне нужно беспокоиться о конструкторах? То есть кусок кода с мьютексом / блокировками, так что если бы он был в теле функции, он был бы потокобезопасным, но если бы я вставил его в конструктор, основанный на сложности конструкторов C ++, происходят странные вещи, и он больше не является поточно-ориентированным
Спасибо!
Редактировать: вы можете предположить, что я использую g ++.