假設someAtomic是一個具有整體基礎類型的std :: atomic,如atomic_uint16_t。我不想擔任哪種整數類型,然而,在特定的代碼,所以我想要的東西來完成;下面,現在不能編譯:原子類型的numeric_limits
if (newVal > numeric_limits<decltype(someAtomic)>::max()) throw "newVal too large";
else someAtomic.store(newVal, memory_order_release);
看起來至少在VC++ 2015年,對於原子類型沒有numeric_limits專業化,即使它們的基礎類型確實有這樣的專業化。處理這個問題的最好方法是什麼?
我不確定是否允許您將標準模板與標準庫中的類型專用 – KABoissonneault
如果允許,我會非常驚訝。你可以備份你的聲明嗎? – hvd