1 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 13:51:53.57 ID:DKQ0QQLH0.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part142 https://mevius.5ch.net/test/read.cgi/tech/1554124625/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) ----- テンプレ ここまで ----- VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
151 名前:デフォルトの名無しさん [2019/06/25(火) 18:01:11.39 ID:Cc6pu6kp0.net] プログラミング言語 収入 ランキング とかでぐぐると 難しい上に重要なはずのC++が年収ランキングで10位以内に無いんだが
152 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 18:15:31.86 ID:U1S86Wri0.net] 統計の取り方が不明
153 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 18:20:11.68 ID:4vpt+Hzy0.net] >>140 多いってのはどこで集計されて発表されてるの?
154 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 18:30:38.49 ID:U+wxsv9j0.net] 一発当てて稼げてるのがwebサービスやってる人たちだから
155 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 19:12:58.12 ID:p4xx1Je/a.net] C/C++まともに書ける人は貴重になってきてるのに何故か低いよねえ 特定の会社に行くしかない気がする
156 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 19:18:47.91 ID:S67hXFxm0.net] >>151 経済の世界でよくあること: ・高度な能力を持つ人は給与ではない部分にやりがいを感じるので給与に 関係なく集まってしまう。アニメーターは絵がものすごくうまいのに、 マクドナルド店員よりも自給が低い。「やりがい搾取」。 ・高度な分野は、人材も高度な人が集まってくるので需要よりも大き過ぎる過剰な 成果を出してしまうので給与が下がるらしい。プログラマや数学者、 コンピュータ業界なんかは大体、そんな感じのところがある。
157 名前:デフォルトの名無しさん [2019/06/25(火) 19:21:25.34 ID:Xe7ucSUW0.net] 高度な分野においては、とても僅かな一握りの人が、過大な成果を出してしまう。 すると、大体の場合、給与が下がるらしい。世界のわずか数人が異常なほど大きな成果を 出しているとか。
158 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 19:28:18.56 ID:U+wxsv9j0.net] みんな勘違いしてるが儲かる商売してるかどうかだけが稼ぎに関係している 儲からない商売に超絶技巧を投入しても意味ない サービスで一発当てる方が100倍稼げる
159 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 19:43:08.34 ID:0zPp4OkO0.net] というか自分のビジネス思いつくタイプでもないプログラマーが稼ごうと思ったらなるべくニッチな言語を探していくべきなんだと思う C/C++なんてメジャーどころは一番だめなんじゃないか。まだまだ人が少ないか、書ける人がどんどん減っていきそうなところを
160 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 19:50:04.75 ID:U1S86Wri0.net] COBOLは意外と稼げるらしい
161 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 20:09:29.07 ID:U+wxsv9j0.net] >>159 違うぞ稼げる商売やってる人に乗っかるのが正解 現在儲かってしょうがない会社に入るか今後そうなる会社に入っておくしかない 専門分野は関係ないが一発当てようがない業界というのはあるからそういうところは目指さない方がいい
162 名前: mailto:sage [2019/06/25(火) 21:00:35.29 ID:eaNcyZwN0.net] 言語は表現手段にすぎないので、言語で分野が決まってしまう現状には疑問を持ちます 少なくともライブラリーは統一されるべきだと昔から夢想してきています
163 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:02:24.65 ID:i1Zv6l/dM.net] 現実にあったんじゃよCOMというものがな
164 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:03:41.95 ID:zDe7yE4Q0.net] ライブラリはCインターフェースさえあれば全てのまともな言語から呼べるから問題ない
165 名前: mailto:sage [2019/06/25(火) 21:07:14.96 ID:eaNcyZwN0.net] >>163 OLE は重過ぎるんじゃないでしょうか?単に名前と仕様が「ある程度」統一できればいいかと考えています でも OLE はもう一度調べなおしてみます、キーワード提供ありがとうございます
166 名前: mailto:sage [2019/06/25(火) 21:07:47.47 ID:eaNcyZwN0.net] >>164 OO であるべきでは?
167 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:10:43.33 ID:6yREXBxQ0.net] 素朴な疑問なんだけど オブジェクトをshared_ptrで管理するとき そのオブジェクトから他のオブジェクトにポインタを渡したいときってどうするの? コンストラクタ以外のメソッドからならenable_shared_from_thisで 生なthisポインタからshared_ptrを生成して渡せばよいけど コンストラクタだとそれも無理だよね(shared_ptrが作られるのはnewの後だから) どうするの?
168 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:11:27.40 ID:paQRKRTX0.net] ポインタ指向プログラミングとオブジェクト指向プログラミングは根本的に相性が悪い これがC++高難易度化の一要因
169 名前:蟻人間 mailto:sage [2019/06/25(火) 21:13:45.53 ID:ayyd1Kg3d.net] >>167 make_sharedじゃね?
170 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:15:54.14 ID:6yREXBxQ0.net] てかさ 自分自身のスマポを 外部から渡してもらわないと、自分では知れないってのは 設計ミスなんじゃね? 当たり前、JavaやC#だとそんな制約ないからなぁ
171 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:18:19.51 ID:p4xx1Je/a.net] 代入がメンバのコピーという仕様が全ての複雑さの元凶 互換性のために仕方なかったとはいえ おかげで完全に動くクラスをつくるのが凄まじくしんどい それを改善しようとしたJavaは全てポインタのコピーというふうに割り切ったが Optinalを導入しなかったせいかヌルポの山を築いた それを改善しようと Rustは全てがムーブという世界を作ったがまだ受け入れられるには早かった
172 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:24:24.92 ID:6yREXBxQ0.net] >>171 これまた不思議なもんで Cからして配列は参照渡しなのに構造体は値渡しだからねぇ Cの構造体が配列みたいにアクセスするとポインタに成り下がる仕様だったのなら C++もまた違ってただろうねぇ どちらがいいかは分からないが
173 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:26:08.00 ID:i1Zv6l/dM.net] えっ 普通は呼吸をするように const T& var て書く様に訓練されてるだろ?
174 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:29:04.07 ID:U+wxsv9j0.net] 任意にコピーとポインタとムーブを使い分けることになんの苦労も無いと思うけど
175 名前: mailto:sage [2019/06/25(火) 21:29:56.71 ID:eaNcyZwN0.net] >>172 私は逆を考えていました、すなわち、配列ですら値渡しであるべきかと 参照渡しにしたいのなら、そのすべてに * をつけて明示するべき
176 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:32:48.81 ID:6yREXBxQ0.net] そうではなくて 構造体において何も考えずに代入した場合 実体のコピーになるって話では その点、配列では実体のコピーにならないので JavaやC#のオブジェクトに近い仕様で なかなか先鋭的
177 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:44:51.24 ID:6yREXBxQ0.net] そんなことより コンストラクタで自分自身のshared_ptrが欲しい時 どうするの? 欲しい理由としては、どっかシステム的なところにattachしたり 自分のコンポジションした子供たち?に渡したり そういうことをコンストラクタですっかりしたい場合どうすんの enable_shared_from_thisを継承して二段階初期化ってのもかっこ悪いし (↑生成する側がshared_ptrを使ってくれなかった場合 クラッシュするってのは置いておいてさ) そもそも実行時型情報なんて反則が許されるなら 仮想関数付きのオブジェクトは実行時型情報のどこかに参照カウンタを隠し持っている って仕様でもよかっただろ? スマポ側が参照カウンタを持っているってのは一見賢そうだけど… 上手くいかないパターンもあるよね
178 名前:デフォルトの名無しさん [2019/06/25(火) 21:48:45.68 ID:6yREXBxQ0.net] >仮想関数付きのオブジェクトは実行時型情報のどこかに参照カウンタを隠し持っている ↑これはちょっと不正確だな vtableと一緒に参照カウンタ〜 が正解かな
179 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:52:05.85 ID:zDe7yE4Q0.net] ファクトリでやれ
180 名前:デフォルトの名無しさん mailto:sage [2019/06/25(火) 21:54:23.16 ID:jeBecXDk0.net] >>177 create関数でshare作ってから後の構築処理して返すしかないんじゃね
181 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 00:01:25.34 ID:7raG/MY10.net] 有害でしかない美意識は投げ捨ててshared_form_this使えって話になるだろ
182 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 00:07:57.67 ID:HPTAJdxK0.net] それでもコンストラクタでは使えないから二段階初期化になるな
183 名前:デフォルトの名無しさん [2019/06/26(水) 00:27:47.77 ID:3ywCP3+N0.net] ちょっと質問なんですが、どういうときに必要になるんですか?
184 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 01:38:39.12 ID:kcNPbTTh0.net] Intel、新プログラミング言語「Data Parallel C++」を開発中 2019/06/25 11:08 後藤大地 https://news.mynavi.jp/article/20190625-848112/ ossbytesは2019年6月24日(米国時間)、「Intel Is Working On A New 'Data Parallel C++’ Programming Language」において、Intelが「Data Parallel C++」と呼ばれるプログラ ミング言語の開発を進めていると伝えた。 Data Parallel C++に関しては、先日Intelが発表した「Intel’s ‘One API’ Project Delivers Unified Programming Model Across Diverse Architectures」程度しか情報が なく、具体的にどのようなプログラミング言語なのか、わからない状況にある。 記事では、これまでに公開されている情報から、Data Parallel C++の特徴として以下を まとめている。 ・Data Parallel C++ (DPC++)はIntelが以前から取り組んでいるOneAPIプロジェクトの 成果物の1つ ・OneAPIプロジェクトはさまざまなコンピューティングアーキテクチャにおいて統合された プログラミングモデルを提供するための取り組み ・Data Parallel C++はC++をベースに開発されている ・Data Parallel C++はKhronos GroupのSYCLシングルソースC++プログラミングスタン ダードがベースになっている ・CPU、GPU、FPGAといった異なるアーキテクチャに対して使用できる ・Data Parallel C++の詳細は2019年第4四半期の発表される見通し GPUの活用はスーパーコンピュータにおいても重要度が増している。Intelは異なるアーキ テクチャに対して利用できるプログラミングモデルを構築することで、さまざまなコン ピューティングアーキテクチャに対して同じコードベースで開発を進められる仕組みを 実現することを目指していると見られる。
185 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 04:17:13.86 ID:0Jy9MjGr0.net] 結論 使えない
186 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 06:38:56.80 ID:LU29nklf0.net] >>177 相互参照自体がクソ汚い設計なんだからツールがいくら綺麗になってもダメ。 諦めてthis渡せや。
187 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 07:32:00.47 ID:ICIJHbsn0.net] >>184 OpenCLとの違いは何
188 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 07:40:21.71 ID:0Jy9MjGr0.net] 異なるアーキテクチャに対応 高額 インテルサポートあり
189 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 08:12:04.77 ID:x0x3rSL40.net] OpenCLがずっと停滞気味なのに業を煮やしたんじゃね
190 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 12:31:58.13 ID:ghoq0O6D0.net] Intelは、CPU内臓のGPUを自前で作ってるから、そのための開発環境は 重要で、実行時のパイプライン関連のさまざまな高速化においても、 共通の技術が使えるので開発するメリットは大きいのだろうと思う。 レジスタ割付、ループ関連の最適化などは、CPUを実行する段階でも 似たことが行われる。
191 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 12:39:28.47 ID:Lh4/MgoYa.net] そんなくだらんライブラリ作ってる暇あったらCUDA互換のランタイムだせーい
192 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 12:57:05.45 ID:ghoq0O6D0.net] 言語ではなくて、テンプレートライブラリなの?
193 名前:デフォルトの名無しさん mailto:sage [2019/06/26(水) 17:24:56.62 ID:hivlE/XW0.net] 海外のニュースサイト見ても言語と書いてある