原子类型的大小

问题描述:

标准是否说sizeof(std::atomic<T>)等于sizeof(T)? (我正在研究建立原子类型和其他类型的联合,以便在ABI中使用,理想情况下不应该有STL类型,如果大小相同,那么这可以工作)。原子类型的大小

+4

我会说不。看看'std :: atomic :: is_lock_free()'。如果需要锁定,则该句柄可能需要存储在'std :: atomic '对象中。 – cdhowie 2014-10-02 15:24:14

[atomics.types.generic]/P9

注:原子专业化的表示不需要具有大小作为其对应 参数类型相同。专业化应尽可能具有相同的大小,因为这减少了端口现有代码所需的努力

不,您不能这样假设。这是一个尽最大努力努力,但没有保证。