有哪些C 大坑?

時間 2021-06-01 00:36:03

1樓:ll323

帶有universal quantifier的過載或者過載時發生的coercion比較容易造成一些意料之外的結果

#include

structAA

(constA&

)};auto

main

()->

int;

// prints "Universal Constructor"

autoy=

x;}修正此類錯誤需要給universal quantification增加predicate細化其可以描述的範圍, 在上面的例子中, 第乙個建構函式的簽名需要由 修正為 以避免和複製建構函式產生型別上的重疊, 用C++的語法可以描述為

template

UnknownType

,typename

ReferenceType

>concept

SubtypeOf

=std

::same_as

decay_t

>,ReferenceType

>||std

::derived_from

decay_t

>,ReferenceType

>;template

UnknownType

,typename

ReferenceType

>concept

AnyBut=!

SubtypeOf

,ReferenceType

>;A(AnyBut

auto&&)

至於coercion會產生什麼奇怪的問題以及如何解決可參考此回答[1]最下面那個例子

2樓:

踩過的坑:

Set沒有iterator, 只有const_iterator。這個其實好理解,但是第一次寫的時候就很迷惑。

std::optional 做引數值的時候看到有人提到過,std::remove_if 系列經典不移除元素,以及和1一樣,set用不了

Map 用查詢元素,會插入新元素

Chr, string, const string &, string_view.經常是為了不拷貝結果不得不拷貝。

3樓:徐辰

C++的大坑……嗯……讓我想想……

標頭檔案裸指標

不用STL非要自己造輪子

不用template非要用macro

不用虛函式/std::function非要在struct裡放幾個函式指標

…………

想起來再補充

4樓:

std::deque c(std::istream_iterator(std::

cinstd::istream_iterator());/*guess how compilers explain this code...*/

《權力的遊戲》已完結,還有哪些大坑沒有被填上?

呼啦啦小風扇 1.想知道大家一直對囧雪諾說的you no nothing是不知道啥啊,難道就是因為長了一張啥也不知道的臉嗎 2.搞不懂夜王千里迢迢來找到布蘭,是為了什麼,當時夜王成為夜王的時候,和布蘭沒有半毛錢關係啊。就算因為布蘭成了三眼烏鴉,有天大的仇恨,為啥見了不麻溜的殺了,難道要先freest...

學C和C 必須掌握的庫有哪些?

對於C語言來說,應當掌握的當然是C語言的標準庫 對於C 語言來說,一定要掌握的是STL,其次是boost 然後就是各取所需,有很多優秀的第三方庫,找到了就直接拿來用,別重複造輪子。乾貨 國外程式設計師整理的 C 資源大全 CSDN.NET iverson ai 我試著回答一下 基礎的STL要會用 後...

C 標準庫有哪些問題?

可能是我接觸的語言太少,但凡有string型別,功能卻弱到約等於vector,基本只能當做buffer用的,只有cpp的標準庫。 我來說乙個,C 11新增的std mutex的lock 方法,連續呼叫兩次,在linux平台上會阻塞住執行緒,在windows平台上會直接崩潰。二者行為不一致,不知道這個...