[過去ログ]
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1500329247/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん [sage] 2017/07/18(火) 07:07:27.20 ID:vzMDiUgd エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) http
://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用) 前スレ 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 http://mevius.2ch.net/test/read.cgi/tech/1478440682/ http://mevius.5ch.net/test/read.cgi/tech/1500329247/1
2: デフォルトの名無しさん [sage] 2017/07/18(火) 15:31:46.97 ID:PYVrHLeZ ほす http://mevius.5ch.net/test/read.cgi/tech/1500329247/2
3: デフォルトの名無しさん [sage] 2017/07/18(火) 18:40:03.50 ID:R/mOsefM まさか短時間に20レスしないと落ちる? http://mevius.5ch.net/test/read.cgi/tech/1500329247/3
4: デフォルトの名無しさん [sage] 2017/07/18(火) 19:38:57.23 ID:u0V8o5mb そんなことで落ちるならレス数一桁のスレが大量に残ってるわけないだろ http://mevius.5ch.net/test/read.cgi/tech/1500329247/4
5: デフォルトの名無しさん [] 2017/07/20(木) 23:03:44.79 ID:kpkY/QGw 右辺値参照がネットのどの記事をみてもわからないので書籍に手を出して見ようと思います 右辺値参照についてをわかりやすく取り扱ってる参考書籍があれば教えてください http://mevius.5ch.net/test/read.cgi/tech/1500329247/5
6: デフォルトの名無しさん [sage] 2017/07/20(木) 23:51:51.38 ID:z9hoJ4wh ネットで探して出てくるいつもの説明が一番マシではないかという気がしてならない http://mevius.5ch.net/test/read.cgi/tech/1500329247/6
7: デフォルトの名無しさん [] 2017/07/21(金) 00:25:40.36 ID:cbDQlmdo ・見分け方 lvalueは、名前がある rvalueは、名前がない ・rvalueの特徴 名前がないということは使い捨ての一時的なオブジェクトだから、処理が終わったら捨てられる ・使い分けの理由 代入演算子(=)や、関数の戻り値に使う時や、vectorなどのコンテナに放り込む時には、 一旦オブジェクトがコピーされるが、rvalueだと分かっていたら、勝手にmoveしてくれるので処理が速い 特に、でかいデータを持った独自のクラスの場合にコピーよりmoveが速くなる この機能を使いたかった
ら、クラスのmoveコンストラクタとmove代入演算子(=)を定義しておくこと でも、それは面倒だろうから、ある条件を満たしたらコンパイラが勝手に作ってくれる ・条件 独自クラスに次のいずれの定義もしていないこと a) コピーコンストラクタ b) コピー代入演算子 c) デストラクタ C++歴1ヶ月の俺が答えてみるテスト http://mevius.5ch.net/test/read.cgi/tech/1500329247/7
8: デフォルトの名無しさん [] 2017/07/21(金) 00:50:30.03 ID:cbDQlmdo moveコンストラクタを作ったら気づくと思うが、処理内容は結局コピーコンストラクタと同じなわけ とどのつまり、ポインタをメンバーに持ったクラスを定義する時に有効なんだよ コピーコンストラクタ(lvalue)だと、コピー元は存在し続ける可能性があるから、 必ず1から全データを作り直して、ポインターのポイント先を新データにしないといけない でも、rvalueで捨ててもいいデータだと分かっていたら、捨てるデータを捨てずにそのまま使って ポインタのポイント先をその捨てる
データにすればよいから、楽で速いよねという話 http://mevius.5ch.net/test/read.cgi/tech/1500329247/8
9: デフォルトの名無しさん [sage] 2017/07/21(金) 00:56:26.30 ID:joLx1qFD 右辺値参照なら https://srad.jp/~taro-nishino/journal/507551/ が一番わかりやすい これ読んでわからなかったらまだ手を出すのが早すぎたと思って諦めたほうが良い 本を買っても無駄な出費になるだろう そして↑のページを見つけるのに検索してて出てきたのが↓ https://woorex.com/06_yahari/1994_01.html で、全然読んでないが、こういった文章に価値はないと思う ネットの文章のすべてに価値があるわけではないと思ったわ http://mevius.5ch.net/test/read.cgi/tech/
1500329247/9
10: デフォルトの名無しさん [sage] 2017/07/21(金) 01:02:33.71 ID:joLx1qFD >>8 いや多分そういうことじゃなくて、分からないのはC++の文法的なトリックの部分に関してだと思う 右辺値参照として宣言した変数を参照したら左辺値になるとか なかなかにクラクラする部分もあるので http://mevius.5ch.net/test/read.cgi/tech/1500329247/10
11: デフォルトの名無しさん [] 2017/07/21(金) 01:04:55.21 ID:kH4Xa8wr みなさんありがとうございます 取り敢えず>>7>>8さんのレスを参考に >>9さんのURLを見て寝ようと思います 迅速な回答ありがとうございました (^○^) http://mevius.5ch.net/test/read.cgi/tech/1500329247/11
12: デフォルトの名無しさん [] 2017/07/21(金) 01:15:36.94 ID:uK7tgvol まぁ、あれだよね。 右辺値と右辺値参照の違いを理解できるとスッキリするんだけどね。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/12
13: デフォルトの名無しさん [sage] 2017/07/21(金) 02:26:47.25 ID:9vgFXXAq >右辺値と右辺値参照の違いを >>9のURL先の説明を書いた低能に100回読ませたい まずこの違いを明確に理解しないと>>7の様なおかしな説明になってしまう http://mevius.5ch.net/test/read.cgi/tech/1500329247/13
14: デフォルトの名無しさん [] 2017/07/21(金) 02:39:34.56 ID:cbDQlmdo 使う目的が違うの? http://mevius.5ch.net/test/read.cgi/tech/1500329247/14
15: デフォルトの名無しさん [] 2017/07/21(金) 02:47:35.89 ID:cbDQlmdo 俺の理解では、moveしたいからそのためにmoveができる条件を定義してるだけだと思うけど コンパイラーがどういう条件の時に右辺値と扱えるかどうかを示すために それが、参照に&マークを使っているという歴史的経緯でややこしくなってるだけでしょ http://mevius.5ch.net/test/read.cgi/tech/1500329247/15
16: デフォルトの名無しさん [sage] 2017/07/21(金) 02:51:29.22 ID:joLx1qFD まずもって > lvalueは、名前がある > rvalueは、名前がない がおかしいということでは? http://mevius.5ch.net/test/read.cgi/tech/1500329247/16
17: デフォルトの名無しさん [sage] 2017/07/21(金) 07:39:48.91 ID:9vgFXXAq そうだな 「lvalueは、名前がある」という誤った知識を注入されていることもあるが 右辺値(rvalue)についての説明が始まって最後まで右辺値参照の話が無いのは良くないな http://mevius.5ch.net/test/read.cgi/tech/1500329247/17
18: デフォルトの名無しさん [] 2017/07/21(金) 07:46:07.93 ID:cbDQlmdo レベルの低いスレだな http://mevius.5ch.net/test/read.cgi/tech/1500329247/18
19: デフォルトの名無しさん [] 2017/07/21(金) 07:53:53.57 ID:cbDQlmdo お勧め本の提示ができないばかりか、自分の言葉で説明もできずにただただ罵るだけ 突っ込まれると粗探しをし始める まぁ、本当に理解してる人間がこんなスレ覗く暇ないわな http://mevius.5ch.net/test/read.cgi/tech/1500329247/19
20: デフォルトの名無しさん [sage] 2017/07/21(金) 08:31:50.37 ID:9vgFXXAq >>15 >参照に&マークを使っているという歴史的経緯でややこしくなってるだけでしょ &は昔からあるのに、そうなのだろうか。 どちらかというと右辺値・左辺値が右辺値参照・左辺値参照と直交する概念で、 言葉が似ているのに>>10の例にもあるように「右辺値参照かつ左辺値が同時に成り立つ」ことが原因だと思うのだが http://mevius.5ch.net/test/read.cgi/tech/1500329247/20
21: デフォルトの名無しさん [sage] 2017/07/21(金) 08:43:30.27 ID:xjFWQMIy >>19 > お勧め本の提示ができない >>9の最初のリンクで充分だろ 自分の言葉でとか言うがそこそこ大きな概念だから説明がまともだったとしてもこんなところでとうとうと説明されても困るし>>7-8みたいな中途半端な説明は有害なだけだし http://mevius.5ch.net/test/read.cgi/tech/1500329247/21
22: デフォルトの名無しさん [sage] 2017/07/21(金) 09:09:12.41 ID:F3uzVYNc 他の言語ではこの概念出てこないの?どこが違うの? http://mevius.5ch.net/test/read.cgi/tech/1500329247/22
23: デフォルトの名無しさん [sage] 2017/07/21(金) 10:43:02.49 ID:YiUdVm2o 他言語では見たことが無いな 参照の仕組みが近いのはC#だと思うが右辺値参照の概念は無い static int X; static ref int M() { return ref X; } static void Main () { M() = 100;//「M()」実質の左辺値 ref int x = ref M();//「ref M()」実質の左辺値 ref int rx = ref x; rx++; Console.Write(M());//「M()」実質の右辺値 } http://mevius.5ch.net/test/read.cgi/tech/1500329247/23
24: デフォルトの名無しさん [sage] 2017/07/21(金) 11:42:16.76 ID:joLx1qFD 他言語では代入演算子でオブジェクトをコピーしたり まるでオブジェクトを基本型であるかのようにふるまわせる概念が無いからな なぜなら他言語にはGCが有るからね GCがあって、オブジェクトは常にnewして使うから 勝手にディープコピーされるとか、そういうことは考える必要がないね 逆にC++はGCが無いから・・・ もしC#で右辺値参照があり得るとしたらstructに関してだが C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから やっぱり要らな
いな http://mevius.5ch.net/test/read.cgi/tech/1500329247/24
25: デフォルトの名無しさん [sage] 2017/07/21(金) 11:52:40.57 ID:XYgV/slE GCがあるから委譲と複製を区別しなくて済むってのに違和感 http://mevius.5ch.net/test/read.cgi/tech/1500329247/25
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 977 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s