根據這篇跟這篇,C++17的最終定案即將出爐。之前喊得狒狒洋洋的module
,concept
和coroutine
沒有一個列為標準配備。相對之前喊得狒狒洋洋的大變動。還真是雷聲大雨點小。
不過還是有些實用的技術可以馬上用到,學習曲線沒那麼高..
不過這年頭每個程式語言都在新增新特性,像C語言這種實在難能可貴。不過C太低階了,開發大程式實在很麻煩。真是兩難
Structured bindings
之前說過,C++沒有return multiple value的機制,要做出類似的小果只能這麼做。
1 | std::tuple<bool, int> getValue(); |
可以用,不過不太美觀。到了C++17有了更直觀的方法
1 | auto [retB, retInt] = getValue(); |
這樣就很像go
的語法了。更多的討論可以看Returning multiple values from functions in C++
If statement with initializer
這也是另一個我覺得很棒的點
直接看範例,為進化前
1 | status_code foo() { |
進化後,可能的情況
1 | status_code foo() { |
希望這兩點未來C語言也會加回去啊