В C++, когда у вас есть локальные переменные в статической функции-члене, означает ли это, что локальные переменные также неявно статичны или действительно локальны?статическая функция члена и безопасность потока
пример:
static void myClass::somefunc(int someint)
{
int myint = someint; // is myint really a local variable or does it change due to the static qualifier at function level?
}
Кроме того, различные потоки из пула потоков работает эта функция, делает Минт должны быть защищены замком? предполагая, что все переданные ему значения различны и не имеют никакого отношения друг к другу.
EDIT: Спасибо за ответы. Теперь, что, если я передал в boost::shared_ptr<T>
, зная, что этот объект не будет одновременно использоваться другим потоком? (Не уверен, действительно ли можно это гарантировать, или вы можете?)
Я предполагаю, что необработанный ptr прошел, понадобилась бы защита, если бы его использовали повсюду?
Вы смущены статическими, имеющими две совершенно разные значения. Вы не одиноки, и, возможно, почему статические функции в автономной функции теперь неактуальны. – Suma