假设 someAtomic 是一个 std::atomic 具有一个完整的基础类型,例如 atomic_uint16_t。我不想假设 WHICH 整数类型,但是,特别是代码,所以我想要一些东西来完成以下,现在不能编译:
if (newVal > numeric_limits<decltype(someAtomic)>::max()) throw "newVal too large";
else someAtomic.store(newVal, memory_order_release);
看起来至少在 VC++2015 中没有针对原子类型的 numeric_limits 特化,即使它们的底层类型确实具有这样的特化。处理这个问题的最佳方法是什么?