C++言語の最新版「C++20」キタ━(゚∀゚)━! 待望のモジュールとコルーチンに対応!
■ このスレッドは過去ログ倉庫に格納されています
C++の標準化を取り扱っている国際標準化機構(ISO)のワーキンググループ21(WG21)は、「C++20」の最終版について合意に達した。
今回の改訂は、2017年に策定された「C++17」以降初めての大規模なものになる。
Microsoftのエンジニアであり、ISOの委員会であるWG21の委員長を務めるHerb Sutter氏は、
「9月4日金曜日にC++20のDIS(国際標準ドラフト)に関する投票が終了し、満場一致で可決された」と述べた。
同氏は、「これは、C++20が最終的な技術承認を受け、ISOの投票プロセスが終了したことを意味する。
私たちは、ISOの編集作業の最終ラウンドが終了した後、この標準が2020年末までに正式に公開されると考えている」述べている。
今回のリリースは、歴史的に見ても大きな出来事だ。Sutter氏は以前、C++20は「C++11以降で最大のリリースだ」と述べていた。
これは、3年ごとに行われてきた過去3回のリリースよりも大規模なものであることを意味している。
C++は35年前の1985年にデンマーク人研究者のBjarne Stroustrup氏によって生み出され、リリースされた。
C++はMicrosoftにとって重要な言語であり、同じ年に一般消費者向けにリリースされたWindowsの構築に使用された。
最近のMicrosoftは、Mozillaが開発した言語である「Rust」で、CやC++で書かれた古いWindowsのコードを書き換えることを検討している。
これは、Rustのメモリー安全性が高いからだ。
処理が高速な言語として支持を集めているC++は、近年になって人気が高まっており、
ハードウェアの制御に有用であることから、ゲーム開発で幅広く使用されている。
「Microsoft Visual Studio」「GNU Compiler Collection(GCC)」「Clang」などの主要なC++コンパイラは、C++17に対応している。
ISOの委員会がC++20の標準を承認、年内に正式公開へ
https://japan.zdnet.com/article/35159400/
>>1
C++20で追加される重要な機能を2つ挙げるとすれば、「モジュール」と「コルーチン」だろう。
GoogleのRichard Smith氏の主導で導入されたモジュールは、ヘッダーファイルの代わりの役割を果たし、
大規模なビルドに対応しながら、マクロの影響を隔離するのに役立つ。
Sutter氏は2019年2月、C++20で追加されたモジュールについて、「約35年間の歴史の中で初めて、
名前付きのカプセル化境界を定義できる機能が新たに追加された」と述べていた。
同氏はさらに、「これまで、プログラマーが自分で(a)その中身が隠蔽されているものに対して、
(b)ユーザーが定義した名前を付与することによって、自分だけの特別なワード(Words of Power)を作るためのC++の機能は3つ存在した。
変数(現在の値をカプセル化する)、関数(コードと動作をカプセル化する)、
およびクラス(その両方をカプセル化して状態と関数のまとまりを一緒に提供する)だ」と説明している。
一方、コルーチンは関数を一般化したものだ。C++のコントリビューターは、コルーチンの提案の中で、
「通常の関数は常に冒頭から処理が始まり、末尾で終了するが、コルーチンは実行を一時中断し、
後になってから中断したところから処理を再開することができる」と説明している。 左辺値とか右辺値とかよくわからんわ
プリミティブな処理はCで書いて、それより上は別言語の方がよくない? >>8
変に演算子でカッコつけてるのが余計に分かりにくいな マッチポンプというか高機能にすると手続きも高度知識がいるという
普通逆に作るよね ポインタとか隠蔽して内部で適当にやってくれるC#のが楽だと思うんだけど
C++も人気あるんやねぇ オジサンのchinchinもプラプラです!
ガハハ! >最近のMicrosoftは、Mozillaが開発した言語である「Rust」で、CやC++で書かれた古いWindowsのコードを書き換えることを検討している。
>処理が高速な言語として支持を集めているC++は、近年になって人気が高まっており、
ライターは書いてておかしいと思わなかったのか? gccの新しいやつで古いソースコンパイルしたらことごとくエラーでワラタ 最近の言語は仕様が爆発しすぎて何があるのか把握しきれない >>24
リガズィからνガンダムになったけど
扱えるのはニュータイプだけっていう 仕様の決定以外はAIが全てやってくれる時代が、もうそこまで来てるんやで〜 >>35
お前の年齢次第
もうだいぶ年行ってるならC#かJavaでも学習しといた方がいい >>33
ますますわからん???
ガンダムの例えを将棋に例えると >>38
まぁ書式制御は異常に豊富だな
Cだと他にstr系関数が異様に揃ってるのが気に入ってる
C++の文字列クラスでもあそこまであるの無いんじゃないか? 意識高い系のお前らは2020年は当然Rustやってるよな? C++がほんと嫌いになってJavaやphpやc#とかのWeb関連にいったのは、CやC++のメモリ管理がホント苦手というか大嫌いで。 こういうプログラム言語を一から習いたいけど
どうしたら取得できんの❓ C++は上位互換なのもあってCを殺せなかったけどみんなRustになったらいよいよCは終わるんだろうか
まぁ今更全部書き換えるの無理だからCOBOLのように半世紀後もレガシーコードとして残り続けるんだろうけど >>46
組み込みでも良く使われるけど、割と何でもいける(web系は除く) >>40
藤井聡太が羽生善治を吸収してΩ聡太になった >>22
そこをちまちま直していくのが楽しいんじゃないか >>28
Objective-Cは足元にも及ばんw >>53
制定されたところで処理系出てくるのいつか分からんし、業務に採用されるのは更に先だろうしなぁ >>47
初心者向けの本を買って書いてある通りにやってみる >>35
何の必要があってかは知らんけど、間に合うもなんもないと思うぞ
言語なんかしょせんは道具なんだから必要があれば覚えるだけ
仕事でやる気なら言語に拘りすぎるもんじゃない
特定の言語じゃなきゃ無理なんて言ってたら仕事にならん rustをちょっと見たけど、なんかverilogみたいでクラクラするな >>65
ものによるだろうけど普通に使う。STLなんかわざわざallocatorなんて仕組みもあるし。 若いプログラマが新しい技術の吸い上げが速すぎるお陰で、トレースがとんでもなく大変になってる。
エレガント過ぎるコードもまた、スパゲティコード並に眺めるのが難しい >>70
それはエレガントに見えるだけで実は本当にスパゲッティなんだよ
継承の流れがおかしいともう管理不可能なプログラムになる 日本語処理の面倒さが無ければやっぱりc/c++でなんか作りたくなるな 組み込みマイコンにそろそろc以外の選択肢をくれ
ポインタの自由さは維持で頼む。直接ハードのレジスタ弄らんといけないんや >>72
ビジュアルプログラミングとかノーコードとか、
以前から産業界で使われてるのに何を今更って話だな 全機能を理解して使いこなせる人は世界中に何人くらいいるのかね だいぶ前だけど、メモリリークで大いに苦しんだ思いであるから
今でも大嫌い >>80
コア言語レベルでサポートしてるのってperlとrubyくらいじゃねーの? >>78
センサーやバルブのメーカー混在してるとGUIで簡単設定ってわけにもいかないし
結局はオムロンやらキーエンスやらの独自言語でゴリゴリ書くことになるんだけどな
ほとんど大昔のアセンブラと変わらないし >>82
どのレベルかは知らんけどC#も対応してる >>85
標準で使えれば何だっていいならC++だってサポートしてるぞ C++が最も好きな言語で
windowsソフト作るときはVC++だが、
モバイルアプリ作るのはflutter/dartで
C++は滅多に使わなくなりました… これ発表された所でC++20学んで使いこなすぞって人間がもう全く居ないオワコン言語 はじめてのC
君とC
I will give you all my love >>92
CUDAでAIが作れるなら就職かのうかも へぇ
Exceptional C++の人が委員長だったんだな お遊びでArduinoやってるんだけど
16進数String型の0x01とかをint型にする方法が解らん
何故か0が返ってくる >>100
Arduino知らんけどatoiじゃだめなん? んあ?
コルーチン = yield ?
なんか名前だけなら非同期呼び出しっぽいけど、説明読むとyieldっぺーな >>102
そうそう
ネットワーク絡みのハイパフォーマンスプログラミングで非同期IO(の処理の自然な書き方)とかコルーチンが求められるようになってきた >>100
std::string s("0xFF");
int i = std::stoi(s,0,0);
3番目の引数を0にすると0で始まる数字列は8進数、
0xで始まると16進数、それ以外は10進数というcのソース的変換
0位外を渡すとそれが基数となり、例えば10を渡すと常に10進数、16を渡すと常に16進数として解釈される
https://en.cppreference.com/w/cpp/string/basic_string/stol この妖怪言語まだ生きてたんだwww
使ってる人、いつまで意地張ってるの? 結局自由なCで良いのよ
自由すぎるから不便に感じるが
裏を返せば何でもこなせる >>105
ボルトとナットみたいなもんだから使わないとどうしようも無い コルーチンをもちっと説明してくれ
ループ待機をイベント待機にするってこと? >>89
flutterって聞いたことないけどどんな言語? c++を自動変換してくれる言語ないの
ごっつい遺産があるんだが コルーチン対応は嬉しいね
なんのことかさっぱりだが >>54
これはわかりやすい!
C++20ってすげーんだなおい
世の中に役に立つのかはわからんけど コルーチンって何?協働ルーチン?サブルーチンの言い換え?(・∀・)シラン 面倒だから今まで通りでいいや
普通に組めたなんでもいいわ 基本的にstdioとか使うだけだし
STLも気持ち悪いから使ったことない windowsスパゲッティー10お前らいやいや喰わされて kotlinの案件やってるときにコルーチンええなあと思ったけど
無けりゃ無くてもいい機能 >>123
JAVAみたく自動的に開放してくれるわけでは無いから使うと安定しないプログラムになる もう新しい言語としてリリースしてくれ
機能追加し過ぎて別物すぎる >>83
PLCだろ。あれも三菱シーケンサに統一して欲しい。 >>74
まあ、そういう人は出てくるとは思ったが、言語仕様を調べれば理にかなったものだったよ。
自分で使ったことないテンプレートが多くて勉強させられる。 C#でいいよ
いまからC++使うくらいならRustで書くわ >>12
作った分だけdeleteやfree()すれば問題ない >>108
>コルーチンをもちっと説明してくれ
>ループ待機をイベント待機にするってこと?
そーだなー
イベント待機じゃなくて数千の平行処理を行うときって数千のスレッド立てられないから
スレッドプーリングで適当にスケールさせつつ各スレッドが
処理すべきものキューを見てループで処理したりするじゃん
ここをコルーチンで書くと処理終わったら yield すればそのスレッドで
前に yield してたとこへ戻るから、カーネルモードへの遷移なしの
超軽量コンテキストスイッチングがスレッドと同等の記述性でできるようになる
処理終わらなくてもいい
軽いからちょっと処理したら yield でもいい c++ 憎んでる人の100%が c++ で書かれたブラウザやlibavを使ってるという事実 ただでさえ最強だったC++が更に大幅パワーアップか
でもリフレクション無いのはどうなのよ >>109
int func()
{
return func();
} やっぱC++が一番しっくりくるな。組込もLinux使うことが多いし、実時間を考慮してサブのマイコンやデバイスとの協調を考えるときちんと書ける言語が楽。 言語仕様が、もう膨大になりすぎて、
理解しようとか、仕様に追いつこうと行く気力が萎える。
難しいことやっても、どうせコーディング規則で禁止されるし。 Rustはだめなの?
危険なメモリ操作もunsafeで出来るなら
C++いらなくね? Rustはまだこなれてない。C++だbチて14,17はまだまだ。組込はIntelやArmだけじゃなく様々なマイコンも相手にするけど、つど変わる条件の中で最大公約数を導きやすいかな。 >>139
最近の拡張はコーディングが楽になるから個人的には歓迎
better C としての使用にも向いてるし >>139
てもそれってC#とか他の言語も一緒じゃね?
記号にいろんな意味合いをもたせるようになってるので、
C#1.0の頃しか知らない俺からすりゃ検索もしづらい難解言語になってる >>145
C# の方がむしろドラスティックに知らない人が読めなくなってるよね
c++ は知らない文法もまだなんとなくわかる 基本的に言語仕様の追加変更じゃなくて標準関数の追加でやるべきだよな
可能ならね ここまでグダグダな言語仕様にして、それでもC++を使う理由って… >>148
高負荷な動作するものはC言語以外には耐えられない つか、これから金融システムを改修しないといけないな
ぼちぼち受注くるんでは >>134
そんなもんでしょ
中国憎んでる人も身の回りはMade in Chinaだらけだし
韓国憎んでる人もPCスマホのDRAM/フラッシュメモリの多くは韓国製
日本憎んでる韓国人もフッ化水素の輸出管理で大慌て >>101
>>104
サンクス
なんかArduinoでstringがInclude出来ないところで躓いてる
やり方はあるらしいのだが
ちなみにArduinoにはStringというオブジェクトが用意されてて
既にそこで頭がごちゃごちゃになってる お前らは親の変態を継承して新たな変態メソッドを生み出していかんと コルーチンはあると便利だろうけど今更C++は無いな
継続(continuation)があればコルーチンは実装できるし 任天堂かなんかのネット記事で、かなり昔だが、c#でゲーム開発して、それをc++に機械的に変換してリリースしたら開発効率が最高だったって記事見かけた。 JavaはC++を理解できない残念な人用に作られた… C#は3.5位までは簡潔な言語だったのにゴテゴテとしたゴミ言語になったな >>28
英語とハングル語が混じったようなキチガイ言語はもうウンザリ >>160
C#のままでリリースしたいけどSDKがC++なんでしょ
機械変換でバグられたら本末転倒だけど要するにC#が良い、と >>3
Windows系以外ではほぼないからね。
Swiftと同じく事実上プラットフォーム依存の言語だ。
しかも、オブジェクトコード吐かない、strongtypeじゃない言語だからライトウエイトに限りなく近い。 >>8
そもそも大規模開発でCなんて怖くて使えない。
もうニッチな言語になってるよ。
1でC++すらメモリ関係の安定性でRUSTに変わりつつあるという話が出てくるが、Cじゃね。
まあ、ハード叩くマイコンには良いのじゃないか? >>17
こういう間抜けは、ゴーカート乗ってるのにF1レーサーのつもりでいる。 C++は万能だからな
C++をやっとけば他のどの言語にも対応できる >>17
ぶっちゃけポインタを明示的に操作できるC/C++のほうが簡単
隠蔽されるとかえってわかりにくい >>176
これ、20年やってても結合の優先度が分からない
調べもしないからよくないのだろうけど、カッコを付けてしまう
自分が理解していても、他人が分かってなかったら仕方ないし、期待できないし >>172
やっぱわかるか
書き込んだ後に気づいたわ
最近、仕事はVBAばっかだし >>170
だよな、C++最高
やってて楽しいのはやっぱC++だわ
最近はVBAとかWeb系スクリプト言語ばっかやってるけど ずっとCやC++をオワコンだの何だの言い続けてくれてありがとな。
お陰で収入だだ上がってて草
節税で法人化するとは思わなかったぜ ずっとC++使ってプログラミングしてるけど++17とか20とかまったくわからない
新しい機能使うと互換性なくなって動かなくなるからってのもあってまったく調べてもないな 組み込みでCと++両方使えるのに++は嫌な顔されたわ コルーチンってゲームのキャラ簡単に動かすのにはいけそうだな
ただ結局どのループが先に実行されるのか細かく制御できなくなって昔ながらの方法に戻りそうw >>139 A4で何ページくらい有るの?(・∀・) >>177
それ大事よ
世の中40過ぎてんのに四則演算の優先順も知らんコーダーおるし 自分の理解が怪しい時はカッコ付けとく
後でセルフレビューする時にも必要になる 俺は優先順知ってるんだとあえてカッコつけない人のコードが盛大にバグってたときおやっと思った C/C++を先に理解しとくとC#, Java, Pythonといった他の言語を勉強するのも簡単だ 三流「C++糞だわ」
二流「C++最強」
一流「C + +糞だわ」
これな CやC++すっ飛ばしていきなりC#やると最初の難関がヒープとスタック、値型と参照型の違いだろうな
やっぱ基本はCとC++からだわ C++が出た当初は「こんな素晴らしい言語はない」と思い、
職場で宣教師もやり、教科書まで出版したけれど、
いまやあまりにも複雑化しすぎた
後発でいいとこ取りした言語には勝てない
いまではpythonしか書かない あれだけ言語仕様ぐちゃぐちゃでも
「必要最低限に絞った」つもりらしい
イヤイヤ、ウソだろうと言いたくなるw >>194
やっぱ基本はアセンブリ言語でしょ
アセンブリ言語最強
C++最高
でも、使うのはVBA >>197
自分なりの必要最低限に絞って使えばいいんだよ
仕様全部を把握して全部使う必要はない >>193
妥当かも。一流には「C++使うぐらいならCの方がいい」って意見もあるな >>200
別にクラスがなくってもCなら似たようなことは出来るしな
C++でクラス使って作ったのをCで構造体と関数ポインタや翻訳単位で
似たように作れたし、正直どっちでもいいかもとは思った(継承は無理だったな) >>201
C++は面白過ぎるんだよな
特にチームで開発するとなると過ぎたる部分が仇になるな
Cでも十分に自由度高いし
個人的にはポインタ使えない言語は面倒に感じてしまうけど >>203
自由だもんな、制限しないところが良い
仕様が膨大になって分けわからん状態になって行ってるというのは認めるが
なにも全部把握する必要ないしな、自分が必要とする部分だけでいい
STLとかよく理解できてないし、今のところ必要に迫られてMap使っただけだ
チーム開発は確かにそうだな
趣味でGUIライブラリ(.NETのForms系的な)をC++で作り
ベターCとしても作ったけど、どっちもそん色のない物が出来たからベターCでもいいな
仕事ではVBAだからポインタとか全然使わんから慣れたわ >>204
事務系に足を突っ込んだら最後、VBAは欠かせないよ 会社だとVBA以外に選択肢がない…
Pythonで業務効率化!みたいな本あるけど
そもそもインストールができないし
VBAなら最初から会社PCに入ってるし配布も簡単 何でもエクセルっていう風潮はどうかと思うけど、VBAは便利ですね >>208
事務系はどんどんExcel依存になって行ってる感じがする
仕事でとある大企業系列の取締役の話を聞いたけど、
次期システムのクライアント側はExcelかAccessだとさ
大手ベンダーの事務系システムパッケージもクライアント側は
Excelだったりだし、もうそういう方向なんだろう
Accessですら完全にアプリ化してほとんどボタン一発に作っても
見もせずに「え?ExcelじゃなくてAccessですか?難しそう…」とか言い出す社員いるし >>206
PythonでExcelを操作すればアップデートでも問題なしなんだが、
日本の企業は内製しないからそこまで出来るのはまだまだ先だな
IT技術者の一般企業への就職が僅かって異常だと思う これってCstring、string、char変換対応クラスも持ってるの? 日本企業のIT化が遅れてるのは、やる気のある人間にとってはむしろチャンス
リモートワークの場合、Word/Excel/PowerPointの文書を操作するプログラム
を自分で書ければ仕事時間は大幅に削減できるし、pythonに任せた仕事も自分
がやったことになる。「AIに仕事を奪われる」とか言ってる場合じゃない。 >>214
C#とJavascriptは言語名変えるべき
(C++・Javaとは何の関係もない) >>211
一般企業でもIT技術者の需要はあるんだよ
但し、非正規での需要だけどな
時給2000円から2500円の派遣の需要が多い感じ
そんな派遣を入れても数か月で辞めたりツール開発に
行き詰って失踪したりも珍しくないから正社員で雇おうという企業はあまりない感じ
VBAと言っても業務が複雑すぎて簡単じゃないから
IT技術はもちろんかなりの業務知識が必要になるわけだし割に合わんってなるのだろう
外注が高いから派遣で安くって考えが主流だから
まともな求人でのIT技術者の一般企業への就職が僅かって異常事態になってるようだ C++17まではコア言語仕様を読み込んでほぼ全部頭に挿れてた
C++がナンバーワンのKUSOなのは間違いない >>30
コードがスッキリするところも多いのに老害が邪魔するんだな C言語おじさんには何やってるか解らなくなるんだよorz 毎回新規でアプリ組むならどのバージョンの言語でも良いけど既存アプリの保守バージョンアップもあるから無駄に色んな言語仕様を使っても混乱するだけの事有るんだよな
どや顔されるほど効率上がらんし可読性良いどころかバグ仕込まれる事多いし >>211
日本は業務ルールが昔の老害共に継ぎ足して来たから恐ろしく複雑なんだよな
ITの人が現代のやり方にのせてバッサリ切って効率化を提案して、現場はそれに乗ってほしいんだがまぁ勝つのは老人役職達の現行踏襲(新しくすると学習しないとついてけないから一時的コストがクソ高くなるから余程の優秀なトップじゃないと判断出来ない)
結果常時金かかる方向になるからIT部門子会社化して安くするしかない→使い捨てITが求められる
ま、日本でITなんかやらんほうが良い、外資入る方がマシ
いつまでもガラパゴス仕様でやり続けるよ >>215
と、c++もc#も知らないにわかが申しております >>215
JavaScriptはECMAScriptっていう正式名称があるだろ
C#はVisual Pascalにした方がよかったかもね
まあ、Bigin、Endじゃなく{}だしC#でいいんじゃね?
どっちもメジャーな言語名入れて人寄せを期待しての命名だろう 実在の言語がいいと思うんだけど…CASL/COMETとか昔からやってたけどさ >>222
外資のそれなりの地位にある人物は日本の場合と違って地位相応に賢いしな
(明治維新の頃から言われてることだが)
日本企業未経験の外資経験者は日本企業のやり方に驚くしな
業務の俗人化、複雑化、データがあちこちの部署に分散などなどに絶句するよ
とどめが業務システムの使いにくさ
優秀なトップのトップダウンじゃないとどうしようもないだろう
でもボトムアップ型が主流だしなあ >>72
全部DCSに入るようにしてくれよ
PLCはブラックボックス過ぎてトラブルで手が出せん VisualC専用のTemplateとかがあるから互換性はかなり怪しい >>226
まぁ下が頑張って支えてるからね隙間仕事しかり
外資から日本のIT行くと隙間仕事多過ぎてげんなりするやろな、Androidすらまともに使えねぇからiphoneってのが大半な国でパソコンなんて難し過ぎる ■ このスレッドは過去ログ倉庫に格納されています