次スレを立てる時は本文の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
478デフォルトの名無しさん
2019/03/19(火) 16:57:51.01ID:W9RsgnS5 namespaceを活用しろ
479デフォルトの名無しさん
2019/03/19(火) 17:11:35.93ID:HTVBHQBE >>477
これの方が関数として切り出して特殊化するより好きな見た目です
これの方が関数として切り出して特殊化するより好きな見た目です
480デフォルトの名無しさん
2019/03/19(火) 21:29:30.46ID:bWZzZfFH >>477
それだと実行時に判断コストがかかるじゃん
それだと実行時に判断コストがかかるじゃん
481デフォルトの名無しさん
2019/03/19(火) 21:29:55.51ID:QA3viZTS if constexprってtypeidで情報取ってきて比較するみたいなオーバーヘッドが0になりますか?
482デフォルトの名無しさん
2019/03/19(火) 21:33:24.72ID:Nfgw9yWF おじさん久々にC++の仕事受けたんだけど
色々進化してて面食らってます
今、右辺値参照っての勉強中なんだけど
ムーブコンストラクタとかはへーへーほーほー言いながら何となく分かり始めた
んだけどさ、
int &&x = 2; // ok <-これだけ使い途が分からん
ローカル変数の右辺値参照て何に使うん?
実験してみた限り、勝手にムーブとかしてくれるわけでもなさそうだし
ローカル変数に&&付いてると何に使えてんな時便利なの?
色々進化してて面食らってます
今、右辺値参照っての勉強中なんだけど
ムーブコンストラクタとかはへーへーほーほー言いながら何となく分かり始めた
んだけどさ、
int &&x = 2; // ok <-これだけ使い途が分からん
ローカル変数の右辺値参照て何に使うん?
実験してみた限り、勝手にムーブとかしてくれるわけでもなさそうだし
ローカル変数に&&付いてると何に使えてんな時便利なの?
483デフォルトの名無しさん
2019/03/19(火) 21:34:25.38ID:/K8ycOQq 使わなくていい
484デフォルトの名無しさん
2019/03/19(火) 21:40:02.75ID:kyorfls3485デフォルトの名無しさん
2019/03/19(火) 22:04:14.68ID:gYGT/BxR 変数宣言した右辺値参照そのものは左辺値という罠
極力そんな物作るべきじゃないね
極力そんな物作るべきじゃないね
486デフォルトの名無しさん
2019/03/19(火) 22:05:37.07ID:8COf7JeC 俺今使い道思いついたんだけど披露してもいい?
>>486
どうぞどうぞ…
どうぞどうぞ…
488デフォルトの名無しさん
2019/03/19(火) 22:37:18.08ID:xP6m0cDT >>480-481
if constexprは実行時コストゼロのはずだよ
if constexprは実行時コストゼロのはずだよ
489デフォルトの名無しさん
2019/03/19(火) 22:53:01.58ID:bWZzZfFH >>488
ifがなんで実行時ゼロなんだよ
ifがなんで実行時ゼロなんだよ
490デフォルトの名無しさん
2019/03/19(火) 23:23:47.41ID:hIuEq8sX 赤っ恥
491デフォルトの名無しさん
2019/03/19(火) 23:26:12.29ID:/K8ycOQq >>489
if constexprにするとコンパイル時に評価されて特定の分岐のみが実体化される
if constexprにするとコンパイル時に評価されて特定の分岐のみが実体化される
492デフォルトの名無しさん
2019/03/19(火) 23:38:47.81ID:zcFktSXp493デフォルトの名無しさん
2019/03/20(水) 00:20:58.62ID:wnXzlprR494デフォルトの名無しさん
2019/03/20(水) 00:27:33.64ID:K21QzJf5 初心者がやたらとアスタリスク使ってポインタの参照値を得ようとするのに似た感じがある。
他言語に移植しにくいだろ、テンプレート化しにくくなるだろ、と小一時間。
他言語に移植しにくいだろ、テンプレート化しにくくなるだろ、と小一時間。
495デフォルトの名無しさん
2019/03/20(水) 00:56:45.75ID:LskeNtBJ アスタリスク使ってポインタの中身取ったらあかんのか・・・
496デフォルトの名無しさん
2019/03/20(水) 03:19:15.41ID:abqqrm1b multimap よりも set の vector の方が便利なのですが、異端ですか?
497デフォルトの名無しさん
2019/03/20(水) 04:26:37.96ID:LuG6mmni 別に
498はちみつ餃子 ◆8X2XSCHEME
2019/03/20(水) 04:53:08.98ID:K9L8gFp5 >>482
既に回答がついているとおり、 rvalue 参照はほとんどムーブのための機能。
ローカル変数的に使う理由はあんまりない。
テンプレート関数の仮引数や auto 変数として rvalue 参照 (の記法) が現れたときは
特殊な推論規則 (ユニバーサル参照) が適用されるというのは気を付ける必要がある。
既に回答がついているとおり、 rvalue 参照はほとんどムーブのための機能。
ローカル変数的に使う理由はあんまりない。
テンプレート関数の仮引数や auto 変数として rvalue 参照 (の記法) が現れたときは
特殊な推論規則 (ユニバーサル参照) が適用されるというのは気を付ける必要がある。
499デフォルトの名無しさん
2019/03/20(水) 07:25:39.73ID:iA5XXTHz ローカル変数もそうだけどintみたいなオブジェクト性が低いものに使っても意味ないわな。
rustの古いチュートリアルのmoveの例がなぜかintでクソだったけれど最近は文字列型になっとった。
rustの古いチュートリアルのmoveの例がなぜかintでクソだったけれど最近は文字列型になっとった。
500デフォルトの名無しさん
2019/03/20(水) 08:44:38.76ID:LSg3zFHe オブジェクト性
501デフォルトの名無しさん
2019/03/20(水) 10:22:31.87ID:fk3FMvWg 考えうるメソッドが少ない=オブジェクト性が低い、とかじゃねえの
int型の変数.length() とかは流石に意味不明に見える
int型の変数.length() とかは流石に意味不明に見える
502デフォルトの名無しさん
2019/03/20(水) 10:40:09.36ID:LuG6mmni 言いたいことは分かるが聞き慣れない言葉を使っているということでは
503デフォルトの名無しさん
2019/03/20(水) 11:01:00.31ID:9pRMZ9XY リテラルが右辺値ってのがよくわからんのだが
上の例のように右辺値参照でうけるとリテラルなのにそのアドレスがとれてしまう
かつ書き換え可能
なので右辺値参照にリテラルいれるときは、一旦名前のない領域にコピーされていると理解している
でもこれって通常の値の代入のときも名前のない領域にコピーしてからさらにコピーというセマンティクスなの?
上の例のように右辺値参照でうけるとリテラルなのにそのアドレスがとれてしまう
かつ書き換え可能
なので右辺値参照にリテラルいれるときは、一旦名前のない領域にコピーされていると理解している
でもこれって通常の値の代入のときも名前のない領域にコピーしてからさらにコピーというセマンティクスなの?
504デフォルトの名無しさん
2019/03/20(水) 11:29:19.49ID:sS5iHBwg 右辺値参照変数それ自体は左辺値だからね
505デフォルトの名無しさん
2019/03/20(水) 15:37:27.50ID:oYbI5+uJ 右辺値を参照で束縛すると、その右辺値の寿命は束縛してる参照と同じところまで引き伸ばされる
この点は左辺値参照も右辺値参照も一緒
この点は左辺値参照も右辺値参照も一緒
506デフォルトの名無しさん
2019/03/20(水) 16:05:23.24ID:9pRMZ9XY それ >>503 に関係ある?
507デフォルトの名無しさん
2019/03/20(水) 16:16:24.82ID:oYbI5+uJ どうして関係ないと思うの?
508デフォルトの名無しさん
2019/03/20(水) 20:55:29.39ID:9pRMZ9XY 一見リテラルのアドレスが取れて書き換えられる、ように見えることに疑問を持ってる
言い方変えると
右辺値参照に代入するとき
リテラルが右辺値でなくて、そのコピーが右辺値なのでは?
そこに寿命がどう関係あるのかわからない
言い方変えると
右辺値参照に代入するとき
リテラルが右辺値でなくて、そのコピーが右辺値なのでは?
そこに寿命がどう関係あるのかわからない
509デフォルトの名無しさん
2019/03/20(水) 21:07:28.64ID:LskeNtBJ アセンブラレベルで言うなら、即値なのかdataセクションにあるのかの違いじゃないの
510デフォルトの名無しさん
2019/03/20(水) 21:31:53.81ID:iA5XXTHz >オブジェクト性
コピーでも参照でも対してコストがかからんものというかそういうニュアンスなんだが
思った以上に伝わらんもんだな。
わかりやすいようにintと文字列を例に出してもこんなもんかもね。
コピーでも参照でも対してコストがかからんものというかそういうニュアンスなんだが
思った以上に伝わらんもんだな。
わかりやすいようにintと文字列を例に出してもこんなもんかもね。
511デフォルトの名無しさん
2019/03/20(水) 22:56:30.82ID:B8C8ZXR4 アドレスが取れたら右辺値ではないみたいな論調だな
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 その機能自体への好悪もあるか知れないけど、
「導入されたからには直ちに覚えて使わないのは罪悪」あるいは
「使わない奴は学習能力の劣る無能、使わないのでなく使えないんだろ」
みたいな、新機能の押し付けが嫌がられてるって部分もあるんでないかな。
「導入されたからには直ちに覚えて使わないのは罪悪」あるいは
「使わない奴は学習能力の劣る無能、使わないのでなく使えないんだろ」
みたいな、新機能の押し付けが嫌がられてるって部分もあるんでないかな。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- マヨネーズにわさび、山椒、卵の黄身、ラー油、オリーブオイルを入れてよく混ぜてください
- 普通の日本人「日本の新技術で中国破滅😤!中国経済崩壊😂!終わりの始まりwwwwwwwwwww」 [441660812]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- ひろゆき「愛があるから人は苦しまなきゃいけないんだね」
- 【速報】高市早苗、起床 [779938112]
