第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

元編程:函數(shù)定義失敗定義了單獨(dú)的函數(shù)

元編程:函數(shù)定義失敗定義了單獨(dú)的函數(shù)

C++
函數(shù)式編程 2019-11-03 04:04:33
在此答案中,我根據(jù)類型的is_arithmetic屬性定義一個(gè)模板:template<typename T> enable_if_t<is_arithmetic<T>::value, string> stringify(T t){    return to_string(t);}template<typename T> enable_if_t<!is_arithmetic<T>::value, string> stringify(T t){    return static_cast<ostringstream&>(ostringstream() << t).str();}dyp建議,is_arithmetic是否to_string為類型定義而不是類型的屬性作為模板選擇標(biāo)準(zhǔn)。這顯然是可取的,但我不知道一種說(shuō)法:如果std::to_string未定義,則使用ostringstream重載。聲明to_string條件很簡(jiǎn)單:template<typename T> decltype(to_string(T{})) stringify(T t){    return to_string(t);}與我無(wú)法弄清楚如何構(gòu)造的標(biāo)準(zhǔn)相反。這顯然行不通,但希望它能傳達(dá)我正在嘗試構(gòu)造的內(nèi)容:template<typename T> enable_if_t<!decltype(to_string(T{})::value, string> (T t){    return static_cast<ostringstream&>(ostringstream() << t).str();}
查看完整描述

3 回答

?
繁華開(kāi)滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用Walter Brown的void_t:


template <typename...>

using void_t = void;

制作這樣的類型特征非常容易:


template<typename T, typename = void>

struct has_to_string

: std::false_type { };


template<typename T>

struct has_to_string<T, 

    void_t<decltype(std::to_string(std::declval<T>()))>

    > 

: std::true_type { };



查看完整回答
反對(duì) 回復(fù) 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 358 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)