次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
C++相談室 part140
https://mevius.5ch.net/test/read.cgi/tech/1547326582/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part141
■ このスレッドは過去ログ倉庫に格納されています
2019/02/22(金) 03:07:43.52ID:MgOIx7iK
512デフォルトの名無しさん
2019/03/20(水) 23:15:02.74ID:oYbI5+uJ >>508
C++のリテラルというのは右辺値を生成する式なんだよ
「42」は値42を持つint型の右辺値を生成することを指示するリテラル
「"hello"」は中身が'h','e','l','l','o','\0'なchar[6]への参照を生成することを指示するリテラル
プログラムが実行時に扱うのは「リテラル」じゃなくてリテラルが生成した右辺値だ
その生成された右辺値は当然メモリ上にあっていいし書き換えられてもいい
(その必要がないならコンパイラがそうじゃないように最適化してももちろんいい)
「コピー」だと思うから違和感があるんじゃない?
リテラルなるものの実体が空の上やPCの隙間に隠れてるわけじゃないし、プログラムはそんなものは取り扱えない
C++のリテラルというのは右辺値を生成する式なんだよ
「42」は値42を持つint型の右辺値を生成することを指示するリテラル
「"hello"」は中身が'h','e','l','l','o','\0'なchar[6]への参照を生成することを指示するリテラル
プログラムが実行時に扱うのは「リテラル」じゃなくてリテラルが生成した右辺値だ
その生成された右辺値は当然メモリ上にあっていいし書き換えられてもいい
(その必要がないならコンパイラがそうじゃないように最適化してももちろんいい)
「コピー」だと思うから違和感があるんじゃない?
リテラルなるものの実体が空の上やPCの隙間に隠れてるわけじゃないし、プログラムはそんなものは取り扱えない
513デフォルトの名無しさん
2019/03/21(木) 00:07:41.99ID:2SUbybof514デフォルトの名無しさん
2019/03/21(木) 00:13:13.37ID:2SUbybof515デフォルトの名無しさん
2019/03/21(木) 00:14:13.96ID:FPuzf0hs 牛からは牛乳が出るけど牛は牛乳じゃないだろ?
そういうこと
そういうこと
516デフォルトの名無しさん
2019/03/21(木) 00:20:16.95ID:FPuzf0hs リテラルってのは文法要素なの
演算子とかキーワードとかコメントとかそういうものの仲間なの
実行時にはそんなものは出てこない
プログラムが扱えるのは「値」だけで、左辺値とか右辺値というのはその分類
int型の0x2Aという値を生成しろという命令をコンパイラに作ってもらうためにプログラマが書くものが「42」というリテラル
さっきからずっとそこを混同してる
演算子とかキーワードとかコメントとかそういうものの仲間なの
実行時にはそんなものは出てこない
プログラムが扱えるのは「値」だけで、左辺値とか右辺値というのはその分類
int型の0x2Aという値を生成しろという命令をコンパイラに作ってもらうためにプログラマが書くものが「42」というリテラル
さっきからずっとそこを混同してる
517デフォルトの名無しさん
2019/03/21(木) 01:01:57.88ID:7qm1Whlz '\0' と L'\0' で違うしな
518デフォルトの名無しさん
2019/03/21(木) 02:01:40.67ID:/XDYuiDC >>503,514
数値リテラルは右辺値。
https://timsong-cpp.github.io/cppwp/n4659/expr.prim.literal#1
右辺値で参照を初期化する際は一時オブジェクト(=名前のない領域)が生成され、
それが参照されるというルールになってる。
https://timsong-cpp.github.io/cppwp/n4659/dcl.init.ref#5.2
参照を初期化する際のルールは代入のセマンティクスとは関係ない。
int i; i = 42 の代入で一時オブジェクトは不要。
代入がユーザー定義された T::operator=(T const&) に解決されるなら、
引数の参照を初期化する際に一時オブジェクトが作られることはある。
数値リテラルは右辺値。
https://timsong-cpp.github.io/cppwp/n4659/expr.prim.literal#1
右辺値で参照を初期化する際は一時オブジェクト(=名前のない領域)が生成され、
それが参照されるというルールになってる。
https://timsong-cpp.github.io/cppwp/n4659/dcl.init.ref#5.2
参照を初期化する際のルールは代入のセマンティクスとは関係ない。
int i; i = 42 の代入で一時オブジェクトは不要。
代入がユーザー定義された T::operator=(T const&) に解決されるなら、
引数の参照を初期化する際に一時オブジェクトが作られることはある。
519デフォルトの名無しさん
2019/03/21(木) 02:39:44.49ID:XdhJMiFj 即値になる場合があるから右辺値なのかね。
520デフォルトの名無しさん
2019/03/21(木) 08:57:30.01ID:YzD9JPpd そりゃ、代入の左辺にリテラルを置ける言語なんてまずないから。
521デフォルトの名無しさん
2019/03/21(木) 09:47:23.84ID:MFgTD1Yv コピーのコストを抑えつつ、二重に参照されないように元のオブジェクトを指す変数を無効にしたいってのが
moveに期待される機能。
即値だったり呼び出しの引数にコンストラクタごと放り込まれた場合には
上記のような二重に参照されるようなシチュエーションにはならんのでmove受けする関数が定義されてれば
その関数を呼びましょうってのがc++のmoveの取り扱い。
しかしこんなにもシンタックスが複雑で機能性も新しくてオーバーロードでさらに複雑になってるってのは
やっぱよくないと思うわ。
テンプレートの都合でオーバーロードが必要なのもわかるが明らかにやりすぎ。
moveに期待される機能。
即値だったり呼び出しの引数にコンストラクタごと放り込まれた場合には
上記のような二重に参照されるようなシチュエーションにはならんのでmove受けする関数が定義されてれば
その関数を呼びましょうってのがc++のmoveの取り扱い。
しかしこんなにもシンタックスが複雑で機能性も新しくてオーバーロードでさらに複雑になってるってのは
やっぱよくないと思うわ。
テンプレートの都合でオーバーロードが必要なのもわかるが明らかにやりすぎ。
522デフォルトの名無しさん
2019/03/21(木) 23:38:07.17ID:/AmzWt7k 会社にもいるわ、そんなどうでもいいことをウンチクばっか垂れて一向に仕事が終わらないやつw
言語を設計するなら、必要かもしれんが大抵は不要
言語を設計するなら、必要かもしれんが大抵は不要
523デフォルトの名無しさん
2019/03/21(木) 23:48:46.46ID:4AnWSc+d 「だからC++スゲー俺スゲー」ってやつじゃないの?それ
>>521がそうだとは思えんが
>>521がそうだとは思えんが
524デフォルトの名無しさん
2019/03/21(木) 23:52:29.07ID:MDPJmZ4F 最近は彼らもRustにマウント奪われて必死なんだよ
525はちみつ餃子 ◆8X2XSCHEME
2019/03/21(木) 23:53:05.57ID:uQDXDHVg 理屈がわかってないのに仕事が終わってるのもそれはそれで不気味じゃない?
526デフォルトの名無しさん
2019/03/21(木) 23:56:55.88ID:MDPJmZ4F >>525
moveなんか理解してなくてもだいたいのC++の現場では仕事に支障ないよ
moveなんか理解してなくてもだいたいのC++の現場では仕事に支障ないよ
527デフォルトの名無しさん
2019/03/21(木) 23:58:36.31ID:tdnDQnUt528デフォルトの名無しさん
2019/03/21(木) 23:59:59.31ID:MDPJmZ4F >>527
君はC++の30年の歴史を否定するのかい?
君はC++の30年の歴史を否定するのかい?
529デフォルトの名無しさん
2019/03/22(金) 00:10:18.90ID:cT8zbTae templateも使うことは、OKだがtemplateを用いたクラスを作ることは禁止されている場合がおおい
そもそも、設計段階で型が決定しないなんてことは、汎用ライブラリを書く以外はないだろ
そもそも、設計段階で型が決定しないなんてことは、汎用ライブラリを書く以外はないだろ
530デフォルトの名無しさん
2019/03/22(金) 00:22:46.08ID:aMVb4R4+ いやいや
決まっていてもそれが複数だった場合使うだろ
あと普通にライブラリは作るものじゃ
決まっていてもそれが複数だった場合使うだろ
あと普通にライブラリは作るものじゃ
531デフォルトの名無しさん
2019/03/22(金) 00:54:33.33ID:wBHxe+dJ ていうか、普通に仕事をしていたら「ああここは処理共通だからまとめて・・
・・あとここをこうしとけば拡張にも対応できるし・・まあ客が無茶振りして
きたときの予防にそれなりに汎用性もたせとくか」とかやっているうちに
いつのまにかライブラリができあがってる、これがプロの仕事だ
・・あとここをこうしとけば拡張にも対応できるし・・まあ客が無茶振りして
きたときの予防にそれなりに汎用性もたせとくか」とかやっているうちに
いつのまにかライブラリができあがってる、これがプロの仕事だ
532デフォルトの名無しさん
2019/03/22(金) 00:55:35.30ID:wNvbYX88 委託業務メインなの?
533デフォルトの名無しさん
2019/03/22(金) 01:10:14.13ID:LxKdyD8r 定数って参照透過性があるよね。
C++はconstexprがあるのだから、関数型プログラミングを超える、定数型プログラミングという新パラダイムを提唱したいと思います。
C++はconstexprがあるのだから、関数型プログラミングを超える、定数型プログラミングという新パラダイムを提唱したいと思います。
534はちみつ餃子 ◆8X2XSCHEME
2019/03/22(金) 01:14:02.50ID:6voZlles コンパイル時レイトレーシングとかやってる人もいるけど狂気の産物って感じがして C++ ぽくて良い。
535デフォルトの名無しさん
2019/03/22(金) 02:28:04.74ID:jw/5aFNH しーぷら一筋30年〜、速いの、上手いの、やっすいの〜
536デフォルトの名無しさん
2019/03/22(金) 02:37:28.24ID:M4ChOHMa >>534
>コンパイル時レイトレーシング
一応訊くけど、ああいうのはレイ当てる3Dオブジェクトのデータは
全てC++のソースに書かないといけないことは分かってる?(モデリングデータをファイルから読んでコンパイル時にレイトレするのは当然不可能)
あの試み自体は面白いと思うけどね・・
実用性や(ソフトウェアの)ユーザーの利益にならないことをもてはやさないで欲しいもんだが
>コンパイル時レイトレーシング
一応訊くけど、ああいうのはレイ当てる3Dオブジェクトのデータは
全てC++のソースに書かないといけないことは分かってる?(モデリングデータをファイルから読んでコンパイル時にレイトレするのは当然不可能)
あの試み自体は面白いと思うけどね・・
実用性や(ソフトウェアの)ユーザーの利益にならないことをもてはやさないで欲しいもんだが
537デフォルトの名無しさん
2019/03/22(金) 06:24:27.94ID:j45II+ff プリレンダのゲームは大量にあるしレイトレーシングしとくのもその延長線上じゃない
538デフォルトの名無しさん
2019/03/22(金) 08:03:01.00ID:VPBgCitj コンパイル時ファイル入出力がサポートされればいいわけだ
それにレイトレーシングはまあ確かに冗談も含まれてるだろうけどそれだけ複雑で重い処理でも可能だという技術デモは価値があるだろう
画像にフィルタを適用するとかパターンが決まっているエフェクトを生成するだとか色々できて可能性はあると思うよ
それにレイトレーシングはまあ確かに冗談も含まれてるだろうけどそれだけ複雑で重い処理でも可能だという技術デモは価値があるだろう
画像にフィルタを適用するとかパターンが決まっているエフェクトを生成するだとか色々できて可能性はあると思うよ
539デフォルトの名無しさん
2019/03/22(金) 08:17:25.29ID:sSVPAm0I 汎用的につかってもらうことを目的としているライブラリを除けば
コーディング時に型が決まっていないことなんてありえない
もしあるならそれは設計してないってことじゃん
templateなんて汎用的につかってもらうことを目的としているライブラリを書く場合にしか使わないだろ
後で、intからdoubleになるかもしれないから、なんて言ってるバカいるけど
きっちり設計しろよ
コーディング時に型が決まっていないことなんてありえない
もしあるならそれは設計してないってことじゃん
templateなんて汎用的につかってもらうことを目的としているライブラリを書く場合にしか使わないだろ
後で、intからdoubleになるかもしれないから、なんて言ってるバカいるけど
きっちり設計しろよ
540デフォルトの名無しさん
2019/03/22(金) 08:28:45.64ID:wNvbYX88541デフォルトの名無しさん
2019/03/22(金) 09:08:34.94ID:OAKB0NCU542デフォルトの名無しさん
2019/03/22(金) 09:11:15.22ID:VPBgCitj >>541
俺は好きになったよ
俺は好きになったよ
543デフォルトの名無しさん
2019/03/22(金) 09:31:33.91ID:OAKB0NCU いいね、趣味で気楽に使ってる人は
544デフォルトの名無しさん
2019/03/22(金) 09:52:12.19ID:VPBgCitj ええやろ
楽しいわ
楽しいわ
545デフォルトの名無しさん
2019/03/22(金) 10:20:45.52ID:RSNtol3b メタプログラミングってコンパイル時に評価してゼロオーバーヘッドとかすごいとは思うけど
学習コストや可読性と釣り合ってるか?
学習コストや可読性と釣り合ってるか?
546デフォルトの名無しさん
2019/03/22(金) 10:32:59.03ID:OAKB0NCU 仕事で4月になったらまた新しいメンバーシップ増えるけど
なまじ趣味でc++使ってたやつが一番困る
新しい機能使いたいだけでトータルの生産性考えないんだよね
なまじ趣味でc++使ってたやつが一番困る
新しい機能使いたいだけでトータルの生産性考えないんだよね
547デフォルトの名無しさん
2019/03/22(金) 10:41:23.85ID:wNvbYX88 そんな一部の現場の実情を忖度してたら競争に負けてしまうのではないか?
548デフォルトの名無しさん
2019/03/22(金) 10:45:43.23ID:VPBgCitj 毎回同じこといってる奴いるよな
このスレには10人くらいしか居ないってネタは挙がってるし
このスレには10人くらいしか居ないってネタは挙がってるし
549デフォルトの名無しさん
2019/03/22(金) 11:07:13.15ID:v3KGlGVP550デフォルトの名無しさん
2019/03/22(金) 11:11:55.43ID:nPC1T1eJ >>545
やってることの性質にもよる
サーバーサイドなんかで潤沢なリソースを使って長時間動くものだとほとんど意味はないよ
その場合.NETやJavaのような実行時コード生成の方が遥かに柔軟性が高く、オーバーヘッドも実質的にはほとんどない
やってることの性質にもよる
サーバーサイドなんかで潤沢なリソースを使って長時間動くものだとほとんど意味はないよ
その場合.NETやJavaのような実行時コード生成の方が遥かに柔軟性が高く、オーバーヘッドも実質的にはほとんどない
551はちみつ餃子 ◆8X2XSCHEME
2019/03/22(金) 12:34:15.37ID:6voZlles >>536
それ自体はただの余興だけど、
コンパイラのバグを顕在化させる成果を出したりもしてるよ。
処理系の開発チームにとってもまずは問題を発見できなきゃ直せないからさ、
色んな形で使ってみる人だってそれはそれで必要なんだよ。
処理系の質が良くなるのは間接的にユーザの利益にだってなる。
それ自体はただの余興だけど、
コンパイラのバグを顕在化させる成果を出したりもしてるよ。
処理系の開発チームにとってもまずは問題を発見できなきゃ直せないからさ、
色んな形で使ってみる人だってそれはそれで必要なんだよ。
処理系の質が良くなるのは間接的にユーザの利益にだってなる。
553デフォルトの名無しさん
2019/03/22(金) 14:12:54.65ID:M4ChOHMa >>551
まぁその理屈はわからんでもないしメタプログラミングやってるとあの人のブログは勉強になるけどね
ただああいうのはブラックジョークの類であることを忘れると>>537みたいな勘違いした奴が出てくる
>>538
>画像にフィルタを適用するとかパターンが決まっているエフェクトを生成するだとか
それ、画像もコンパイル時に確定してるデータじゃないとあかんのやで?
(しかもconstexprなcharの配列みたいな、C++のコードに直さないといけない)
重ねて言うけど、面白い試みだけど実用的ではないんだよ、ああいうのをC++的だとかカッコいいとかもてはやすのはC++の衰退を招くだけ
趣味グラマは自分が趣味グラマであって時に実用性からかけ離れてるということを自覚すべき
まぁその理屈はわからんでもないしメタプログラミングやってるとあの人のブログは勉強になるけどね
ただああいうのはブラックジョークの類であることを忘れると>>537みたいな勘違いした奴が出てくる
>>538
>画像にフィルタを適用するとかパターンが決まっているエフェクトを生成するだとか
それ、画像もコンパイル時に確定してるデータじゃないとあかんのやで?
(しかもconstexprなcharの配列みたいな、C++のコードに直さないといけない)
重ねて言うけど、面白い試みだけど実用的ではないんだよ、ああいうのをC++的だとかカッコいいとかもてはやすのはC++の衰退を招くだけ
趣味グラマは自分が趣味グラマであって時に実用性からかけ離れてるということを自覚すべき
554デフォルトの名無しさん
2019/03/22(金) 14:23:16.46ID:M4ChOHMa あ、でも
>>538
>コンパイル時ファイル入出力
これはやり過ぎな気もするけど個人的にはあっても良いとは思うw
ただ、画像のフィルタリングをコンパイル時にやるのとツール作って実行時にやるのとで
前者が便利な場面ってあるのかね?(しかも前者は非常に開発コストかかる
>>538
>コンパイル時ファイル入出力
これはやり過ぎな気もするけど個人的にはあっても良いとは思うw
ただ、画像のフィルタリングをコンパイル時にやるのとツール作って実行時にやるのとで
前者が便利な場面ってあるのかね?(しかも前者は非常に開発コストかかる
555デフォルトの名無しさん
2019/03/22(金) 14:28:03.34ID:VPBgCitj >>553
コンパイル時に確定しているデータがあるかもしれないし無いかもしれない
fstreamがコンパイル時に動くようになればいいだけ
そうなれば準備が面倒なプリプロセスも必要ない
研究に対して実用性がうんたらとかわけ分からないことを言うのはよくないなあ
様々なアイデアから自分の都合のいいところをつまんで実用化するのが末端の仕事だろうに
俺が使い道が思いつかないことに熱心になってると界隈が衰退するとかさすがに草生える
コンパイル時に確定しているデータがあるかもしれないし無いかもしれない
fstreamがコンパイル時に動くようになればいいだけ
そうなれば準備が面倒なプリプロセスも必要ない
研究に対して実用性がうんたらとかわけ分からないことを言うのはよくないなあ
様々なアイデアから自分の都合のいいところをつまんで実用化するのが末端の仕事だろうに
俺が使い道が思いつかないことに熱心になってると界隈が衰退するとかさすがに草生える
556デフォルトの名無しさん
2019/03/22(金) 14:29:27.80ID:OAKB0NCU 静的なものはなんでもコンパイル時に解決するって思想が典型的なハンマー釘病なんだよ
コンパイル時だけが解じゃない
そのうち仕事で特に理由なくむやみに重いconstexprぶちこむやつがでてくるだろう
それでビルド時間5分10分長くなったりするわけだ
ほんとc++はクソ
コンパイル時だけが解じゃない
そのうち仕事で特に理由なくむやみに重いconstexprぶちこむやつがでてくるだろう
それでビルド時間5分10分長くなったりするわけだ
ほんとc++はクソ
557デフォルトの名無しさん
2019/03/22(金) 14:32:15.97ID:VPBgCitj558デフォルトの名無しさん
2019/03/22(金) 14:49:00.32ID:X0mnKdTP >>555
constexpr関数みたいにコンパイル時にできる、実行時にしか出来ない、を「自動で振り分けて問題なく動く仕組み」
の範囲に全て収まるならそうだろうな
後半煽ってきたのでキツめに言わせて頂くが、コンパイル時レイトレはソース公開されてたろ?
あれを実用したゲーム開発の例を一つでも挙げてみろ
有意義な研究ならとっくに実用されてんだよボケ
あるいはボレロ氏の試みに同調して何もかも(ファイル入出力すら)コンパイル時に出来る言語にしよう、なんて動きが委員会に起きてるのか?
お前多分まともにメタプログラミング出来てるレベルじゃないのに調子乗ってるだろ
constexpr関数みたいにコンパイル時にできる、実行時にしか出来ない、を「自動で振り分けて問題なく動く仕組み」
の範囲に全て収まるならそうだろうな
後半煽ってきたのでキツめに言わせて頂くが、コンパイル時レイトレはソース公開されてたろ?
あれを実用したゲーム開発の例を一つでも挙げてみろ
有意義な研究ならとっくに実用されてんだよボケ
あるいはボレロ氏の試みに同調して何もかも(ファイル入出力すら)コンパイル時に出来る言語にしよう、なんて動きが委員会に起きてるのか?
お前多分まともにメタプログラミング出来てるレベルじゃないのに調子乗ってるだろ
559デフォルトの名無しさん
2019/03/22(金) 15:11:09.28ID:VPBgCitj >>558
これだけ複雑な処理も出来るんですよっていうだけの話だからレイトレーシングである必要はない
それができるならこういうこともできるんじゃないか?ってなるのが普通
あとゲームのソースは公開されないから知るかとしか言いようがない
C++20でコンパイル時動的メモリが追加される予定だし、実行時でもコンパイル時でもタイミングが違うだけだからいつでも何でもできていいだろっていう流れは既にできている
標準化委員会がボレロを認知しているかは知らん
これだけ複雑な処理も出来るんですよっていうだけの話だからレイトレーシングである必要はない
それができるならこういうこともできるんじゃないか?ってなるのが普通
あとゲームのソースは公開されないから知るかとしか言いようがない
C++20でコンパイル時動的メモリが追加される予定だし、実行時でもコンパイル時でもタイミングが違うだけだからいつでも何でもできていいだろっていう流れは既にできている
標準化委員会がボレロを認知しているかは知らん
560デフォルトの名無しさん
2019/03/22(金) 15:55:54.71ID:2qpWO6k3 コンパイラで高度なことが色々できるし、原理も実現も公開されてる、
興味を持って調べれば(ある程度なら)理解だってできるかもしれない。
というのはC++の素晴らしい部分だと思うのよ。
で、調べて知ったことを使って試したい、他の人に紹介したいってのは
これまた自然な気持ちだろう。自分もそういう面があるし。
実際に複数人で協力して作る実用プロジェクトで機能を使うかどうかは、
「コンパイル時間」だの「高度化・汎用化で読みにくくなる」だの、
トレードオフの問題になるけど。
分からないのは、「俺はこれ知ってる、お前は知らないだろ」と
他人より優位に立つ材料としてしか知識を使ってないような
投稿が見受けられることなんだよね。
ことにネット掲示板なんて、見ず知らずの他人同士なんだから、
相手をバカにしたって仕方ない、何の益もないだろうに。
興味を持って調べれば(ある程度なら)理解だってできるかもしれない。
というのはC++の素晴らしい部分だと思うのよ。
で、調べて知ったことを使って試したい、他の人に紹介したいってのは
これまた自然な気持ちだろう。自分もそういう面があるし。
実際に複数人で協力して作る実用プロジェクトで機能を使うかどうかは、
「コンパイル時間」だの「高度化・汎用化で読みにくくなる」だの、
トレードオフの問題になるけど。
分からないのは、「俺はこれ知ってる、お前は知らないだろ」と
他人より優位に立つ材料としてしか知識を使ってないような
投稿が見受けられることなんだよね。
ことにネット掲示板なんて、見ず知らずの他人同士なんだから、
相手をバカにしたって仕方ない、何の益もないだろうに。
561デフォルトの名無しさん
2019/03/22(金) 16:19:37.76ID:M4ChOHMa >>559
>それができるならこういうこともできるんじゃないか?ってなるのが普通
最初の方の主張からずいぶんと縮小したなw
>あとゲームのソースは公開されないから知るかとしか言いようがない
ググれ
ソースの公開なんかされてなくとも技術の動向くらいあちこちで紹介されてる
>C++20 いつでも何でもできていいだろっていう流れは既にできている
今調べたら確かにそうみたいだな、俺の認識不足だったし出来ることが増えること自体は悪くないと思う(前にもそう言ったが
ただ、
>コンパイル時にやるのとツール作って実行時にやるのとで前者が便利な場面ってあるのかね?
この疑問に答えて欲しいもんだけどね
>俺が使い道が思いつかないことに熱心になってると界隈が衰退するとかさすがに草生える
ならお前は使い道を知ってるんだろ?って話
>それができるならこういうこともできるんじゃないか?ってなるのが普通
最初の方の主張からずいぶんと縮小したなw
>あとゲームのソースは公開されないから知るかとしか言いようがない
ググれ
ソースの公開なんかされてなくとも技術の動向くらいあちこちで紹介されてる
>C++20 いつでも何でもできていいだろっていう流れは既にできている
今調べたら確かにそうみたいだな、俺の認識不足だったし出来ることが増えること自体は悪くないと思う(前にもそう言ったが
ただ、
>コンパイル時にやるのとツール作って実行時にやるのとで前者が便利な場面ってあるのかね?
この疑問に答えて欲しいもんだけどね
>俺が使い道が思いつかないことに熱心になってると界隈が衰退するとかさすがに草生える
ならお前は使い道を知ってるんだろ?って話
562デフォルトの名無しさん
2019/03/22(金) 16:33:55.31ID:M4ChOHMa 正直、ファイル(C++ではない)に書かれてる内容に従ってコンパイル時条件分岐とか手軽に出来たら
結構実用性はあると思うよ
ただその一方で、ここでプロとアマチュアのC++に対する意見がひどく乖離してる(このスレ見てたら気づいてないとおかしいが)ことに
全く問題意識が無いのであれば、それは結局自分が偉そうにしたいだけってことだと思うけどね
結構実用性はあると思うよ
ただその一方で、ここでプロとアマチュアのC++に対する意見がひどく乖離してる(このスレ見てたら気づいてないとおかしいが)ことに
全く問題意識が無いのであれば、それは結局自分が偉そうにしたいだけってことだと思うけどね
563デフォルトの名無しさん
2019/03/22(金) 16:39:09.47ID:M4ChOHMa constexprの拡張とか、そんなに開発現場(アマチュアでもソフト開発者等)から求められてなさそうなことにばかり
最近のC++は注力しすぎじゃないの、ってだけの話なんだけどね
ここでそれを言うと毎回荒れるんだよなぁ
最近のC++は注力しすぎじゃないの、ってだけの話なんだけどね
ここでそれを言うと毎回荒れるんだよなぁ
564デフォルトの名無しさん
2019/03/22(金) 16:45:13.61ID:7XQoWDDf C++11すら使えないもんな
565デフォルトの名無しさん
2019/03/22(金) 16:46:23.14ID:VPBgCitj >>563
別に注力しすぎてはいない更新内容は多岐にわたる
constexprは派手だから注目されやすいだけ
https://cpprefjp.github.io/lang/cpp11.html
https://cpprefjp.github.io/lang/cpp14.html
https://cpprefjp.github.io/lang/cpp17.html
https://cpprefjp.github.io/lang/cpp20.html
別に注力しすぎてはいない更新内容は多岐にわたる
constexprは派手だから注目されやすいだけ
https://cpprefjp.github.io/lang/cpp11.html
https://cpprefjp.github.io/lang/cpp14.html
https://cpprefjp.github.io/lang/cpp17.html
https://cpprefjp.github.io/lang/cpp20.html
566デフォルトの名無しさん
2019/03/22(金) 16:48:03.99ID:d9SNUM0T 愛知県人注目。遠州地区の技術者も注目。
[急募]
豊川ハローワーク管内の求人で、SEの席に空きがあります。
四月スタートの仕事なので、急いで応募して下さい。報酬は、
月に20万円から60万円。
英語力は必須ではありませんが、『実はTOEICのスコア以上に
英語ができる』と面接では答えて下さい。(英語は入社してから
頑張って下さい。)
ネットワーク関係が得意だと言って下さい。JP1の経験があれば、
なおよし。ECUの経験があれば、さらによし。キャティアのマクロが
書ける人、大歓迎。(これらは、必須ではありません。)
[急募]
豊川ハローワーク管内の求人で、SEの席に空きがあります。
四月スタートの仕事なので、急いで応募して下さい。報酬は、
月に20万円から60万円。
英語力は必須ではありませんが、『実はTOEICのスコア以上に
英語ができる』と面接では答えて下さい。(英語は入社してから
頑張って下さい。)
ネットワーク関係が得意だと言って下さい。JP1の経験があれば、
なおよし。ECUの経験があれば、さらによし。キャティアのマクロが
書ける人、大歓迎。(これらは、必須ではありません。)
567デフォルトの名無しさん
2019/03/22(金) 16:48:35.97ID:OAKB0NCU >>557
それがお前の案?
手動じゃんそれ
くそださいとしか
仕事では数十人規模でやってるわけで、そんな人力チェックしたくないわけよ
プルリクぐらいはやってるが全て見きれるわけじゃない
まずはビルド時間の推移とか、内訳を監視するタスクを回すことを考えるだろうが
そういう非生産的な仕事が増えることがクソなんだよ
それがお前の案?
手動じゃんそれ
くそださいとしか
仕事では数十人規模でやってるわけで、そんな人力チェックしたくないわけよ
プルリクぐらいはやってるが全て見きれるわけじゃない
まずはビルド時間の推移とか、内訳を監視するタスクを回すことを考えるだろうが
そういう非生産的な仕事が増えることがクソなんだよ
568デフォルトの名無しさん
2019/03/22(金) 16:51:03.18ID:7XQoWDDf569デフォルトの名無しさん
2019/03/22(金) 16:51:56.89ID:y6Rn9cx8 C++の新機能なんて大半の開発現場にはいらんだろ
前いたところは初心者向けの教科書を読めばだいたいわかる基本的な構文しか使ってなかった
constexprもなければテンプレートもラムダ式もなかった
コード書けん奴がコードレビューするからそんなもん使った日にはわかりやすく書けとか怒られた
前いたところは初心者向けの教科書を読めばだいたいわかる基本的な構文しか使ってなかった
constexprもなければテンプレートもラムダ式もなかった
コード書けん奴がコードレビューするからそんなもん使った日にはわかりやすく書けとか怒られた
570デフォルトの名無しさん
2019/03/22(金) 16:54:51.52ID:wNvbYX88571デフォルトの名無しさん
2019/03/22(金) 16:56:04.17ID:VPBgCitj572デフォルトの名無しさん
2019/03/22(金) 17:00:41.61ID:M4ChOHMa まぁconstexprのコンパイル時コストを気にするだけなら多分ifdefでdefine CONSTEXPRとかすればいいだろうけど
メタプログラミングはやっぱコンパイル時間長くなる
個人で開発してても無視出来ないわ・・
>>571
性能上げて比較結果を出してから言うべき
メタプログラミングはやっぱコンパイル時間長くなる
個人で開発してても無視出来ないわ・・
>>571
性能上げて比較結果を出してから言うべき
573デフォルトの名無しさん
2019/03/22(金) 17:03:59.06ID:M4ChOHMa ていうか>>560の言ったことを実証するかのような流れだなww
574デフォルトの名無しさん
2019/03/22(金) 17:06:35.17ID:nPC1T1eJ >>571
一般に、無駄な拘りに時間かけるのを避けてその分ボトルネック潰しに時間をかけたほうがソフトウェアのパフォーマンスは良くなるよ
一般に、無駄な拘りに時間かけるのを避けてその分ボトルネック潰しに時間をかけたほうがソフトウェアのパフォーマンスは良くなるよ
575デフォルトの名無しさん
2019/03/22(金) 17:54:21.92ID:pFUycIOf >>563
求められているだろ?
求められているだろ?
576デフォルトの名無しさん
2019/03/22(金) 18:34:40.09ID:LxKdyD8r 関数型同様、定数型プログラミングにもアンチがわいてきましたか。
アンチがわいたってことは、定数型プログラミングが世の中に受け入れられたってことでいいですね?
アンチがわいたってことは、定数型プログラミングが世の中に受け入れられたってことでいいですね?
577デフォルトの名無しさん
2019/03/22(金) 19:08:02.11ID:2qpWO6k3 その機能自体への好悪もあるか知れないけど、
「導入されたからには直ちに覚えて使わないのは罪悪」あるいは
「使わない奴は学習能力の劣る無能、使わないのでなく使えないんだろ」
みたいな、新機能の押し付けが嫌がられてるって部分もあるんでないかな。
「導入されたからには直ちに覚えて使わないのは罪悪」あるいは
「使わない奴は学習能力の劣る無能、使わないのでなく使えないんだろ」
みたいな、新機能の押し付けが嫌がられてるって部分もあるんでないかな。
578デフォルトの名無しさん
2019/03/22(金) 19:19:05.75ID:wNvbYX88 実行時おじさん
579デフォルトの名無しさん
2019/03/22(金) 19:21:05.55ID:OAKB0NCU580デフォルトの名無しさん
2019/03/22(金) 19:23:25.37ID:YgnW0VV3 Googleの結論
Think twice before using template metaprogramming or other complicated template techniques;
think about whether the average member of your team will be able to understand your code well enough
to maintain it after you switch to another project, or whether a non-C++ programmer or someone casually browsing the code base will be able to understand the error messages or trace the flow of a function they want to call.
https://google.github.io/styleguide/cppguide.html#Template_metaprogramming
Think twice before using template metaprogramming or other complicated template techniques;
think about whether the average member of your team will be able to understand your code well enough
to maintain it after you switch to another project, or whether a non-C++ programmer or someone casually browsing the code base will be able to understand the error messages or trace the flow of a function they want to call.
https://google.github.io/styleguide/cppguide.html#Template_metaprogramming
581デフォルトの名無しさん
2019/03/22(金) 19:26:07.13ID:LxKdyD8r 【定数型プログラミングの掟】
> 「ブッ殺す」と心の中で思ったならッ!その時スデに行動は終わっているんだッ!
> 「ブッ殺す」と心の中で思ったならッ!その時スデに行動は終わっているんだッ!
582デフォルトの名無しさん
2019/03/22(金) 19:31:22.14ID:M4ChOHMa でも終わったときめちゃくちゃ疲労してるんやで
583デフォルトの名無しさん
2019/03/22(金) 20:21:58.70ID:nPC1T1eJ585デフォルトの名無しさん
2019/03/22(金) 21:57:31.87ID:FYyZQ6ej コンパイル時C++コンパイルをやったら尊敬する
586デフォルトの名無しさん
2019/03/22(金) 22:28:07.22ID:1RSJEChR 正規表現のコンパイルならありかもしれないw
587デフォルトの名無しさん
2019/03/22(金) 22:42:15.38ID:78R951f8 自分の知らない概念を勉強するって意味ならlispのマクロでも覚えたほうがはるかに有意義なんだが
そうしないだよね。
なぜならそれじゃ老害にマウントできないから。
まあそういうクソみたいな思想のやつが年取って老害化するんだけど。
そうしないだよね。
なぜならそれじゃ老害にマウントできないから。
まあそういうクソみたいな思想のやつが年取って老害化するんだけど。
588デフォルトの名無しさん
2019/03/22(金) 23:22:27.03ID:C43yQc+Q589デフォルトの名無しさん
2019/03/22(金) 23:29:13.79ID:LxKdyD8r でもそれがLALR(1)パーサーを生成するなら?
590デフォルトの名無しさん
2019/03/22(金) 23:36:46.32ID:tosUzxZE コンパイルに時間かかるから、その間暇つぶしに裏でレイトレーシングして遊んでんのかと思った
591デフォルトの名無しさん
2019/03/23(土) 00:40:56.99ID:A6OyMWzd デイトレーシングってストーカーのことだっけ。
592デフォルトの名無しさん
2019/03/23(土) 06:55:12.12ID:jegHMgvE593デフォルトの名無しさん
2019/03/23(土) 07:22:13.12ID:WDi4jE89 長年プログラムの保守やってるの見るとその通りだが
594デフォルトの名無しさん
2019/03/23(土) 08:07:02.46ID:T5eFVdJU constexpr指定するだけのことが技巧的なのか知らなかった
I/Oや動的メモリと関係なさそうなところに脳死で適当に付けておくだけでいいのに
I/Oや動的メモリと関係なさそうなところに脳死で適当に付けておくだけでいいのに
595デフォルトの名無しさん
2019/03/23(土) 08:35:25.57ID:RdkKrV9k 霞ヶ関文学は禁止ってこった。
596デフォルトの名無しさん
2019/03/23(土) 12:20:32.92ID:0OEv8pnV 基本的に新機能は分かりやすく書きやすくするためのものなんだけどな
597デフォルトの名無しさん
2019/03/23(土) 12:50:41.97ID:p3DdVUb8 数学への回帰と先祖返りじゃないの
分かり易くなるんじゃない、難しくなるんだよ
分かり易くなるんじゃない、難しくなるんだよ
598デフォルトの名無しさん
2019/03/23(土) 13:37:38.67ID:v/SrloXk template<typename Item>
Item Fool::InsertItem(const Item& item)
{
//なにがしかの処理
item.c_str()...
}
こんなコード見かけると吐き気がするわ
c_str()を持つ型しか使えないじゃん
なんのためにtemplate使ってんだよw
Item Fool::InsertItem(const Item& item)
{
//なにがしかの処理
item.c_str()...
}
こんなコード見かけると吐き気がするわ
c_str()を持つ型しか使えないじゃん
なんのためにtemplate使ってんだよw
599デフォルトの名無しさん
2019/03/23(土) 13:47:58.81ID:uJTAZAlu c_strを持つ型に限定したいから問題無いけど。
600デフォルトの名無しさん
2019/03/23(土) 13:49:44.59ID:T5eFVdJU 何か変か?
c_strを持っているクラスのみを想定しているんじゃないの
本当はSFINAEで消すべきかも知れないけど
c_strを持っているクラスのみを想定しているんじゃないの
本当はSFINAEで消すべきかも知れないけど
602デフォルトの名無しさん
2019/03/23(土) 14:34:53.50ID:JQCK5flX >>598
程度のはsfinaeでいいんだけどね
程度のはsfinaeでいいんだけどね
603デフォルトの名無しさん
2019/03/23(土) 14:56:23.90ID:EB4wgvrK basic_stringの特殊化に限定するなら文字型を受け取るだけでいいと思うんだけど
604デフォルトの名無しさん
2019/03/23(土) 15:01:12.26ID:fJspHuQc >>598
constexprでコンパイル時に特定のメソッドがあるか調べられないの?
constexprでコンパイル時に特定のメソッドがあるか調べられないの?
605デフォルトの名無しさん
2019/03/23(土) 15:03:42.82ID:EB4wgvrK それは型の情報だから、すでに言われてるようにメタプログラミングでsfinae使って調べるしかない
606デフォルトの名無しさん
2019/03/23(土) 15:55:31.24ID:RdkKrV9k 吐き気がするだけで済んでいるのなら御の字。
607デフォルトの名無しさん
2019/03/23(土) 16:15:35.83ID:T5eFVdJU アレルギーが重症化すると辺境で難癖付けて騒ぎ出したりテンプレート指定すると何故か生産性が落ち出したりするからな
608デフォルトの名無しさん
2019/03/23(土) 17:08:18.78ID:qcSb+DlG pythonみたいにエラーメッセージ表示してくれるだけで大分マシになると思うんだけどな
609デフォルトの名無しさん
2019/03/23(土) 18:52:42.53ID:4cH0E/is そうなんだよね
1500行のエラーメッセージの代わりに「itemのメンバ関数c_str()が見つかりませんでした」ってコンパイラが言ってくれてたら
ここまでテンプレートは嫌われなかった
1500行のエラーメッセージの代わりに「itemのメンバ関数c_str()が見つかりませんでした」ってコンパイラが言ってくれてたら
ここまでテンプレートは嫌われなかった
610デフォルトの名無しさん
2019/03/23(土) 18:54:43.76ID:enzaJQTj だからgoのコード生成系のアプローチのがマシってことなんだが馬鹿は脳内でしかビルドしないから通じない訳だ。
611デフォルトの名無しさん
2019/03/23(土) 19:11:19.55ID:A6OyMWzd これからは定数型プログラミングの時代。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- 石破「日中関係は最新の注意払うべき」ヤフコメ大激怒してしまう [163661708]
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
- 維新議員、キャバクラマネー返金へ→「今回は返金する」「ポケットマネーでやるには限界がある」 [834922174]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
