怎樣區分 const char 和字串文字量

2021-05-26 01:37:03 字數 800 閱讀 7645

在乙個面試中,猛然間一閃念,問到了 candidate 這個問題。無解……

stl 中使用到了很多 traits 技術,只要懂得 traits ,這個問題就太簡單了!以下是**示例:

軟體工程中很多地方,如果採用直接的辦法不能解決問題,增加乙個間接層,問題即迎刃而解,type_traits 就是這樣一種技術,這個**示例是自包含的,除了 printf ,沒有任何其它外部依賴。

為什麼下面這樣的**不能work?

答案:c++的過載匹配規則:如果在非模板的候選中能找到乙個"精確"匹配,就不會去找模板。"精確"的精確定義包含3大類,5種具體情況,按順序如下:

identity conversion ---- 不需要任何轉化,最精確,級別 1

lvalue to rvalue conversion -- 左值到右值轉化,  級別 2

array to pointer conversion --- 陣列到指標轉化,  級別 3

function to pointer             --- 函式名到函式指標, 級別 4,這就是為什麼很多時候我們不需要使用 &func_name 而直接使用 func_name

quolification conversion      --- cv qualify 少的可以轉化到 cv qualify 多的,級別 5

這也就是為什麼下面的**可以 work:

char -> int 不是 exact match, 是 integeral promotion.

long -> int 不是 exact match, 是 integeral conversion.

怎樣區分中文漢字和日文漢字

隨著gb2312時代的沒落和中國官方強制推行的gb18030的消沉,所有人都覺得,無需置疑地unicode一統天下的時代即將,甚至已經來臨了。我也曾經是,現在仍舊是unicode的推崇者。推崇的理由很簡單 在gb2312,ascii的時代,乙個程式 乙個網頁當中多種語言 除了英語之外的 無法並存。g...

怎樣區分汽車腳墊和汽車地膠?

汽車地膠是指新車買回來後鋪在車底板上的一層用來保護車內衛生清潔的汽車內飾產品。汽車地膠大致分為兩種,一種是一般的,到汽車美容裝飾店現裁現做的,分不同的檔次,質量不是太好的會有膠味兒。一種是一次成型的,這種是專車專用的,一次沖壓成型,根據不同的車型配不同的型號。汽車腳墊是集吸水 吸塵 去汙 隔音 保護...

TCP如何區分監聽套接字和已連線套接字???

2010 10 09 10 39 868人閱讀收藏 tcp伺服器 wildcard freebsd socket 2010 2.10 tcp埠號與併發伺服器 併發伺服器中主伺服器迴圈通過派生乙個子程序來處理每個新的連線。如果乙個子程序繼續使用伺服器眾所周知的埠來服務乙個長時間的請求,那將發生什麼?讓...