1 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:27:47.92 ID:pbJTQx9M.net] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) ideone.com/ (時間帯によってはcodepadが重い事があるのでここも
692 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:53:18.52 ID:RTw9+8lc.net] いや、だから>>668 を見てって…
693 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:00:32.44 ID:97JZ5equ.net] 馬の耳に念仏
694 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:09:56.79 ID:R2Je5ZhD.net] >>668 みたいな当初の質問とも江添の変な例とも異なるものを持ってきて何がしたいんだか
695 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:13:28.37 ID:RTw9+8lc.net] >>679 >>678 から借りた https://ideone.com/9zFOQP >>682 lvalue-refとrvalue-refでの話なんだから全然変な例じゃないわけで 何ここ 初心者が上級者を罵倒するスレ?
696 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:19:47.21 ID:7V4RYMzc.net] 元「@右辺値をmoveするのは間違い? Aだってmove(t)」 ↓ 普通の人:@について、tが左辺値であることを説明しようと例を出したり必死 バカ:Aについて、右辺値のmoveが間違いでないことを説明しようと例を出したり必死 この会話が噛み合っていない
697 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:20:03.25 ID:86J878Ki.net] そんなことはやたらと詳しいけど、全く仕事できない奴いる。 装置の前で、規格がどうたらなんてどうでもいい。 さっさと運転しろよ。
698 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:20:22.42 ID:7V4RYMzc.net] あ@とAが逆だった
699 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:21:42.57 ID:RTw9+8lc.net] arguments deductionで必死に言い訳してるけど そもそも江添氏の例でmove省いたらlvalue vs rvalue-refでmove無いわけ rvalueの意味がわかるというなら、それが何で理解できないの?
700 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:25:53.67 ID:RTw9+8lc.net] >>685 ならせめて書いて確認しようよ 書けないならそれこぞ仕事出来ないにも程がある
701 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:27:54.54 ID:R2Je5ZhD.net] >>683 >>>678 から借りた >https://ideone.com/9zFOQP これって何でエラーになるの? 手持ちのgcc 4.9.2 --std=c++14じゃエラーになんてならないんだけど 罵り合いを離れて純粋に分からない
702 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:30:34.28 ID:7V4RYMzc.net] >>689 VC「Error: an rvalue reference cannot be bound to an lvalue」
703 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:39:38.29 ID:RTw9+8lc.net] >>689 ただのlvalueでrvalue-refじゃないから わざわざg++4.9.2入れて確かめたけど 思いっきしcannot bind 'int' lvalue to 'int&&'って怒られたよ コード変更してない?
704 名前:689 mailto:sage [2015/07/17(金) 22:42:08.16 ID:R2Je5ZhD.net] すまん https://ideone.com/9zFOQP のままだと手持ちのgcc 4.9.2 --std=c++14でもエラーになったわ でも少しいじるとエラーにならなくなる もう訳わからんけどもう少し条件を狭めて確かめようと思う 規格的にはどうなるのが正しいのよ もう訳わからんわ
705 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:43:39.25 ID:RTw9+8lc.net] g++5.1でも確認 ID:R2Je5ZhDは完全に荒らし目的だな さっきからわざわざ間違った事を言って罵倒してるし でなきゃ頭おかしい
706 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:47:34.08 ID:7V4RYMzc.net] >>691 まるでrvalue-refならOKみたいなレスですね int && rref = 0; f( rref ); // error, 右辺値参照型の左辺値 >>692 ISO/IEC 14882:2014 13.3.2 Viable functions 段落3 「an rvalue reference cannot be bound to an lvalue」 って、VCのエラーと同じ文言だった
707 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:54:05.50 ID:R2Je5ZhD.net] ああ分かった>>668 がエラーになるのはfがテンプレートじゃないからだ 俺様R2Je5ZhDの>>682 の発言は正しかった >>693 お前ごときに荒らし呼ばわりされる筋合いないから
708 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:55:17.38 ID:RTw9+8lc.net] >>694 >まるでrvalue-refならOKみたいなレスですね 語弊は認めるが、そんなつもりでは言ってないって 渡すのにmoveが必要とずっと言ってるだろ
709 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:57:42.59 ID:JLRiqZ4D.net] >でなきゃ頭おかしい QZが頭がおかしくないはずがない
710 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:57:49.28 ID:RTw9+8lc.net] >>695 いや、お前は最初から間違ってるよw 確認もせずに否定したんだから
711 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:58:44.54 ID:R2Je5ZhD.net] >>697 事あるごとにQZとやらを持ちだして
712 名前:ヲ避するクズ [] [ここ壊れてます]
713 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:02:06.68 ID:R2Je5ZhD.net] >>698 お得意の難癖ですな 俺は>>668 は質問者の意図からして不適切だと言っている
714 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:09:06.96 ID:RTw9+8lc.net] >>700 それで難癖つけてるという難癖をつけるんです? 元はarguments deductionも含まれる話だから別に不適切じゃないよね? 何が不適切?
715 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:11:18.67 ID:7V4RYMzc.net] はいはい 元「@ 右辺値をmoveするのは間違い? A だってmove(t)」 ↓ 普通の人:Aについて「tは左辺値」 バカ:@について「右辺値のmoveは間違いでない。どうして理解できないの?」 普通の人:Aについて「tは左辺値。どうして理解できないの?」 バカ:@について「右辺値のmoveは間違いでない。どうして理解できないの?」 :
716 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:19:12.83 ID:R2Je5ZhD.net] >>701 元々の質問は「moveに右辺値を渡してる例があるがそれは間違いじゃないのか」というものだろ この場合moveは必要じゃないけど間違っているとは言えないというのが俺の言い分だ 江添のアレを引気合に出した質問者もアレだが まあ質問者の問いと斜めな方向にズラして議論を混乱させるいつもの展開だわね
717 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:28:20.65 ID:RTw9+8lc.net] >>703 もしあんたがID:qgsB8yVYなら自分のレスよく読めと言いたい 特に>>651
718 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:31:07.50 ID:97JZ5equ.net] ID:qgsB8yVY = ID:R2Je5ZhD なの? >>677 >Aのfに渡されるtは単なるTで参照型ですらないよ とか言ってる時点で全然理解できてないのがまるわかりなんだよな もう少し謙虚さがほしいところ
719 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:36:00.06 ID:RTw9+8lc.net] 元々の質問は江添氏の例でいいんだよ それが質問者のベース知識の前提であって意図なんだから ID:7V4RYMzcが言うように元の考えを正すことに意味があるのであって ID:qgsB8yVYのように文を切り離して説明する事に意味はない そんなの回答者が自己満足でしかない
720 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:37:43.54 ID:RTw9+8lc.net] 間違えた ID:qgsB8yVYじゃなくてID:R2Je5ZhDかw まあ難癖とか言ってるから本人で間違いないと思うけど
721 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:37:53.66 ID:R2Je5ZhD.net] ID:qgsB8yVY = ID:R2Je5ZhDだよ 別にIDを隠そうとしたわけじゃなく、なんかしらんけど書き込めなくなったので ルータを操作してIPアドレス変えただけ それを宣言しなかったのは謝る
722 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:37:44.63 ID:GBkyMXza.net] いちいち人を叩くのを目的にしてたら、だんだん客層が悪くなる
723 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:48:06.74 ID:OGvYy5ui.net] Qzフルボコッコだな しかしメンタルつえー
724 名前:646 mailto:sage [2015/07/18(土) 01:48:45.91 ID:+Rsx7s6r.net] 議論がかなりヒートアップしてて書き込むのが恐れ多いのですが・・・ どうやら左辺値・右辺値および左辺値参照・右辺値参照というものを正しく理解していないのが 自分の混乱の原因みたいです。 そこで確認させていただきたいのですが、以下の lr と rr はどちらもlvalueなんでしょうか? struct X{ } ; int f() { return 0 ; } int main() { int i = 0 ; // 式じゃないので、i はrvalueでもlvalueでもない i ; // lvalue 0 ; // rvalue X x ; // 式じゃないので、x はrvalueでもlvalueでもない x ; // lvalue X() ; // rvalue f() ; // rvalue X & lr = x ; // lr はlvalueへの参照だが、lr 自体はlvalue? X && rr = X() ; // rr はrvalueへの参照だが、rr 自体はlvalue? } # そういえば、右辺値やムーブ等を勉強するために相当ググって色々なサイトを見ましたが 皆微妙に言っていることが違ったりして、このスレで激論が生じるのもむべなるかなと感じた次第・・・ まぁそこがC++の面白さでもあるんですかね
725 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 01:54:58.09 ID:n8k6dcHe.net] どっちも左辺値
726 名前:646 mailto:sage [2015/07/18(土) 02:05:32.81 ID:+Rsx7s6r.net] >>712 ありがとうございます。やはりそうですか ということは、>>673 の例に戻ると、以下の理屈で正しいということでしょうか? struct X {} ; template < typename T > void f( T && t ) // この t は「右辺値参照の左辺値」なので、std::move(t) で「右辺値参照の右辺値」に変換してやる必要がある { if ( std::is_lvalue_reference<T>::value ) X x( t ) ; else X x( std::move(t) ) ; } int main() { X x ; X y ; f( x ) ; f( std::move( y ) ) ; // ここで y は右辺値に変換はされるが・・・ } つまり、関数の仮引数は、右辺値参照だろうがなんだろうが、必然的に常に左辺値になってしまうということでしょうか
727 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:19:14.82 ID:n8k6dcHe.net] 名前がついてるからね
728 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:35:55.71 ID:o/QnrV3k.net] >>713 右辺値参照の左辺値なんて戯言は忘れたほうがいいよ fのtの型は f(x) → X&(左辺値参照) f(std::move(y)) → X(単なる左辺値) となる この辺のルールは非常に分かりづらいね
729 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:37:57.07 ID:ZEPmmqWJ.net] >>715 std::move(y)を受け取るんだから X&&でしょ
730 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:38:00.55 ID:YtyUigYQ.net] >>715 ID:R2Je5ZhD さん?
731 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:56:53.52 ID:o/QnrV3k.net] >>716 そう思うでしょ? でもis_reference、is_rvalue_reference、is_lvalue_referenceを組み合わせて試した結果 参照でも何でもない単なるXになってるよ テンプレートの引数型のdeductionルールは摩訶不思議 >>717 そうだよ
732 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:11:56.92 ID:ZEPmmqWJ.net] >>718 reference collapsionで消える&&は引数についてる&&だと思ってたけど Tについてる&&が消えるんだな t自体の型は右辺値参照になってたわ
733 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:52:48.75 ID:C7KIqrbe.net] 結局 ID:R2Je5ZhD はTの型とtの型を混同して暴れてたわけ?
734 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:54:30.80 ID:TrlsMEs4.net] >>718 >参照でも何でもない単なるXになってるよ ならないよ 消えるのはTの&&で、tは右辺値参照だろ
735 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:55:36.18 ID:oxhll+kB.net] f(T &&t); 「tの型はただのX」なんてのは当然 「TはただのX、(tはX&&)」の書き間違いだと思ってスルーしてたけど まさか本気でf(X t)だと思ってたのか?
736 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:13:05.91 ID:o/QnrV3k.net] >>720 、>>721 、>722 恥ずかしいけどその通りだわ無闇に混乱してた 弁解すれば、江添のコードがTの型をチェックしてるのでそれに引きずられたw でも最初の質問「moveに右辺値を渡すのは間違いか?」についての答えは変わらないけどね moveは不要だが間違いではない
737 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:15:36.03 ID:n8k6dcHe.net] >>650 のはtは左辺値じゃないか std::move(t)しなきゃtはコピーされちゃうぞ
738 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:21:54.38 ID:TrlsMEs4.net] 立て続けに無知を呈し、質問者より理解してないとバレた状況で、 最初の文は間違いではないとか言われてもね… ヤケクソかな
739 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:23:50.36 ID:oxhll+kB.net] >>723 誰も言わないのがかわいそうだから俺が言ってやろう 「moveに右辺値を渡すのは間違いか?」は 「別に間違いではない」で正しい 誰 も 否 定 し て な い ぞ(※>>725 を除く) そして↓のメッセージを読んで糞して寝ろ ideone.com/MbV03B
740 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:25:41.81 ID:dgWh7n0F.net] そもそも前提が間違えてるんだから 正しいも間違いもないぞ
741 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:26:56.93 ID:n8k6dcHe.net] >>726 ないって言ってるんだから間違いであることを否定してるじゃん
742 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:29:32.77 ID:TrlsMEs4.net] >>727 言っても理解しないよ 自分が勝った気になればそれで良いんだと思うよこのタイプは
743 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:31:09.70 ID:oxhll+kB.net] >>727 前提も何も、単発質問の「moveに右辺値を渡すのはC++の文法的に間違いか否か?」についての回答ですが何か? >>728 間違いであることを否定してますが何か?
744 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:32:18.67 ID:TrlsMEs4.net] >>726 別に否定してないよ 自演かな?
745 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:01.33 ID:TrlsMEs4.net] 自演だな… こいつ本当何でもやるなあ
746 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:22.58 ID:n8k6dcHe.net] >>730 moveに渡してたのは右辺値じゃなかったでしょ? >>650 見てなかったのか?
747 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:29.70 ID:4GeWeiMQ.net] はいはい都合が悪いのは自演自演
748 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:37:24.23 ID:dgWh7n0F.net] ID:R2Je5ZhD == ID:o/QnrV3k == ID:oxhll+kB だろ なんか自演失敗して擁護が悲しいことになってるけど…
749 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:39:21.37 ID:o/QnrV3k.net] >>726 ありがとう。糞して寝ます(明るくなってきちゃったハア) >>729 勝った気になんてなってませんから!
750 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:41:13.10 ID:TrlsMEs4.net] マジでこういう奴いるんだなあ 流石に時間と場所考えろって…
751 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:42:23.86 ID:o/QnrV3k.net] >>735 R2Je5ZhD == ID:o/QnrV3k != ID:oxhll+kB だよ 負けは認めますけど自演認定はやめて下さい
752 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:43:57.31 ID:o/QnrV3k.net] 無闇に自演認定するような精神障害者よりマシということで気持よく寝ます
753 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:51:05.98 ID:TrlsMEs4.net] 救えねえな
754 名前:702 mailto:sage [2015/07/18(土) 05:15:13.00 ID:oxhll+kB.net] >>731 日本語が弱いようだから説明してやろう 『「(例とは無関係な一般的なC++の文法として)moveに右辺値を渡すのは間違いか?」は 「別に間違いではない」で正しい (「別に間違いではない」というお前が固執し続けてきた意見は)誰 も 否 定 し て な い 』 という意味だ
755 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:02:20.46 ID:4iDO3/6j.net] if ( std::is_lvalue_reference<T>::value ) X x( t ) ; else X x( std::move(t) ) ; 江添氏は実行されない方のコードもコンパイルは されることを認識してたんだろうか ありがちな記述ミスの形をしているので気になった
756 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:28:55.34 ID:o/QnrV3k.net] >>742 その記事の江添は俺と同程度以上に誤解してるよ まあそれは5年以上前の記事だけどね でも「実行されない方のコード」というあなたもまだ誤解してる C++のテンプレートの型ルールは本当に難しいね
757 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:35:03.61 ID:o/QnrV3k.net] 気分を害された人には申し訳ないけど なにはともあれ俺にとってはテンプレート関数の理解が前進した一日でした まる
758 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:02:05.58 ID:4iDO3/6j.net] >その記事の江添は俺(QZ)と同程度以上に誤解してる まじかよ おどろきだ
759 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:41:46.95 ID:bOEkw/VG.net] >>713 >void f( T && t ) // この t は「右辺値参照の左辺値」 わかってるとは思うけどそれは右辺値で呼ばれる時の話で 左辺値xで呼ばれるfのtは左辺値参照だぞ f( x ) = f<X &>(x) T && = X & && = X & void f( T && t ) = void f(X &t)
760 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 15:56:20.31 ID:C7KIqrbe.net] >>743 お前まだ理解できてないのかよ。Javaでもやってろ
761 名前:デフォルトの名無しさん [2015/07/18(土) 15:58:50.31 ID:ihNXNCvt.net] なんでそんなに冷たいの?
762 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 16:29:10.29 ID:TrlsMEs4.net] IDで追っていけばわかる 岡部健のご同類
763 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:01:18.70 ID:Kjz+WqVJ.net] ID:TrlsMEs4も同類
764 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:03:29.52 ID:TrlsMEs4.net] ほらな
765 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:10:23.40 ID:C7KIqrbe.net] 精神科医と激論を交わせるぐらいの頭脳の持ち主だとは思ってたけどまさかね
766 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:14:24.89 ID:TrlsMEs4.net] 念の為、俺が言及してるのはo/QnrV3kの事だよ
767 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 19:00:14.93 ID:Kjz+WqVJ.net] 同類なのは自分なのに気づかないなんて…
768 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 01:50:34.76 ID:uuV0Uo08.net] もう誰が誰やら
769 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:13:06.80 ID:rizf9cO8.net] 自演 ID:n8k6dcHe=ID:TrlsMEs4 アスペ ID:oxhll+kB キチガイ ID:o/QnrV3k この三人を押さえておけばOK あとはゲスト
770 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:23:02.44 ID:CK6DPL2A.net] いちいち人を論じてスレ潰すのはやめろ パン作り板にでも行ってこい
771 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:27:30.09 ID:rizf9cO8.net] これは >自演 ID:n8k6dcHe=ID:TrlsMEs4 の人ですね
772 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:49:40.63 ID:iK86efF8.net] 規格に詳しい方に質問します ideone.com/dU9dtb これの"2"がcopyになってしまうんですが、どうしてですか? 規格のどの部分の規定によりこうなるのか知りたいです
773 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:56:51.32 ID:36W6lgqU.net] 都合が悪いレスは全て自演とか糖質かよw
774 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:11:02.31 ID:binYh77K.net] >>759 static_cast<T&&>(t) が static_cast<X& &&>(t) に展開されて さらに static_cast<X&>(t) と&&減るからです ttp://d.hatena.ne.jp/gintenlabo/20100916/1284657258 規格はここに書いてる
775 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:24:53.89 ID:iK86efF8.net] >>761 ありがとうございます。規格の該当部分を精読します。 直感的には全部moveになって欲しいんですが、どういう理由でこうなってるんですかね?
776 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:30:36.07 ID:binYh77K.net] >>762 f(x);で渡してるのは参照だから プログラマが明示しないかぎり勝手にmoveされるのは困るでしょ テンプレート内ではmoveではなくforward<T>(t)を使うべき そうすれば右辺値が渡されればmove、左辺値が渡されればcopyされる
777 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:39:14.61 ID:iK86efF8.net] >>763 f()では左辺値だろうが右辺値だろうがmoveしたいんです static_cast<T&&>(t)で十分に明示になってると思うんですがねえ どうしてこういう規格にならざるを得なかったのかもう少し調べてみます
778 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 07:20:27.46 ID:rizf9cO8.net] これは >自演 ID:n8k6dcHe=ID:TrlsMEs4 の人ですね
779 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 08:35:41.71 ID:iu/AL9yj.net] そりゃ左辺値参照へのキャストは左辺値を生み出すからね melpon.org/wandbox/permlink/cjb6akMJJVY25X3Q
780 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 08:56:58.98 ID:rizf9cO8.net] これは >アスペ ID:oxhll+kB
781 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 14:01:27.47 ID:I4MCl2HA.net] 自演指摘されたからって必死すぎだろう 誤魔化す以外にそんなレスする奴がいると思ってるのか
782 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 14:33:02.83 ID:QpRpKQBg.net] これも >自演 ID:n8k6dcHe=ID:TrlsMEs4 の人ですね
783 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:27:14.04 ID:iU13bViu.net] cとc#とc++って全部別物ですか? 数学I、数学U、数学Vみたいに似通ったところはあるのでしょうか
784 名前:デフォルトの名無しさん [2015/07/19(日) 17:41:37.09 ID:F7g9AAKV.net] 別物だが似通ってはいる。 C⇒C++はほぼ上位互換性で、C#はC++++から名付けられた説があるし、 構文なんかはC++から取ってきてる。
785 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:44:56.51 ID:9N4IERvr.net] C++ C‡ C♯ C# C‡‡ C## これ全部違うんだよ
786 名前:デフォルトの名無しさん [2015/07/19(日) 17:45:02.22 ID:F7g9AAKV.net] C#への期待。アンダースからの返答 − @IT C#に関して何か興味深い秘話はあるか? 「C#」という言語名を決めたときの話だが、もともとC#プロジェクトのコード名は、「COOL」(C like Object Oriented Language)だった。 だが、すでにほかの製
787 名前:品で使われているなどの理由で、この名前は採用されなかった。 ほかの案として、「EC」(イーシー)、「C2」(シー・スクウェア)、「C3」、また音楽の要素を取り入れて「C#」、元素の名前から「Cs」(シー・セシウム)などが出てきた。 「C#」を近くでよーく見ると、「C++++」に見える。そのような理由で最終的に「C#」という名前に落ち着いた。 http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html [] [ここ壊れてます]
788 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:22:29.91 ID:MTXI4NoM.net] std::unique_ptr<>使ってて疑問なのですが。 MyObject* ary = new MyObject[3]; が std::unique_ptr<MyObject[]> ary(new MyObject[3]); は理解できるんだけど char* str = new char[3]; は、 std::unique_ptr<char> str(new char[3]); になる? std::unique_ptr<char[]> str(new char[3]); になる?
789 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:36:25.78 ID:ckceIrW4.net] std::unique_ptr<char[]> こっち
790 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:56:36.67 ID:iU13bViu.net] >>771 ありがとうございます AndroidやiPhoneのアプリを作ってみたいんですが C言語だとどれを勉強するといいでしょうか?
791 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:11:22.73 ID:iu/AL9yj.net] >>775 間違いではないからと言って不適切なコードを正してあげないとは酷い人ですね
792 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:25:25.80 ID:ckceIrW4.net] >>777 vectorやstringを勧めるということでしょうか?それともmake_uniqueですか? 私の頭では他にどう答えたらよいか思い浮かびませんでした。 どうか完璧な回答をご教示いただけませんか?