【发布时间】:2013-05-20 01:18:54
【问题描述】:
假设有一个函数(可能是成员函数)
SomeType foo()
{
static SomeType var = generateVar();
return var;
}
如果foo 将被多个线程同时“首次”调用,var 将如何初始化?
- 是否保证
generateVar()在任何情况下都只会被调用一次(当然如果使用的话)? - 是否保证
foo在任何情况下多次调用时都会返回相同的值? - 原始类型和非原始类型的行为是否存在差异?
【问题讨论】:
标签: c++ multithreading c++11 initialization c++03