我實施的功能如下:是否所有類型都擴展了在C++ 11標準中實現FENV所需的std :: is_floating_point?
template <typename FP>
void do_something(FP f){
static_assert(std::is_floating_point<FP>::value, "not a floating point");
...
}
在這種情況下,任何浮點可以使用(天然的或定製的,即多精度浮點庫)。
我想知道標準是否說明了什麼期望重載is_floating_point的類型。我可以指望他們需要與FENV合作嗎?
如果自定義浮點實現重載std :: is_floating_point,我可以假設以下代碼應該正常工作嗎?
template <typename FP>
void do_something(FP f){
static_assert(std::is_floating_point<FP>::value, "not a floating point");
if (std::fetestexcept(FE_DIVBYZERO)){
...
}
}
你確定專門化is_floating_point除float/double/long double之外的任何東西都合法嗎? –
在這一點上並不確定。 – dvicino