[英]Is there any proposal to uniformize function type qualifiers and simplify abominable function types?
在處理基於函數類型匹配的模板時, 可惡的函數類型組合可能是一個真正的痛苦(參見std::is_function )。
各種限定符,包括 const、volatile、&、&&、noexcept(加上可變參數支持)可能會導致大量的模板特化。
但是, noexcept
說明符允許使用布爾表達式noexcept(expr)
:
noexcept
等價於noexcept(true)
作為默認值所以,在未來,我們能不能想象用這個模型統一所有的限定詞:
const
限定符將等同於const(true)
volatile
限定符將等同於volatile(true)
&
限定符將等同於&(true)
&&
限定符將等同於&&(true)
而且,錦上添花,使預選賽免賠額能夠寫出如下內容:
template <typename Fn>
struct function_traits;
template <typename R, bool CQ, bool VQ, bool LVRQ, bool RVRQ, bool NEQ, ARGS... Args>
struct function_traits<R(Args...) const(CQ) volatile(VQ) &(LVRQ) &&(RVRQ) noexcept(NEQ)>
{
static constexpr bool is_const_qualified = CQ;
static constexpr bool is_volatile_qualified = VQ;
static constexpr bool is_lvalue_ref_qualified = LVRQ;
...
};
我想聽聽有關此類問題的任何想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.