1 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:27:47.92 ID:pbJTQx9M.net] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) ideone.com/ (時間帯によってはcodepadが重い事があるのでここも
650 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 21:52:03.56 ID:QLbygVn7.net] アスペは単語レベルで機械的に照らし合わせることしかできない 会話ができないからアスペなんだろ
651 名前:625 mailto:sage [2015/07/16(木) 23:04:35.77 ID:zXNXIZXs.net] >>634 目が節穴だったわ。2回も呼ばれない >or if it is copy-initialization where the cv-unqualified version of the source type is the same class を読み飛ばした
652 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 00:47:02.82 ID:RTw9+8lc.net] >>640 いえ、規格の話はいいんだけど なぜ2回も呼ばれると思ったのか知りたかったんだ その文がないとして呼ばれそうな部分ある?
653 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 06:42:14.37 ID:CUSHLAJl.net] >>635-639 >>583 はQzって変態だよ。 公開オナニースレでのオナネタ供給がストップして発狂中 QzはCすらマスターしてないので、メンバーイニシャライザーの存在を知らない可能性大
654 名前:625 mailto:sage [2015/07/17(金) 07:18:09.46 ID:kM6i16Cc.net] >>641 「or if it is copy」を読み飛ばすと次の段落が該当して 「変換される」でなく「関数がよばれる」と書かれている 「The function is called with the initializer」 で12.3.1のコピーコンストラクター呼び出しが発生して その後「The result of the call(略)is then used to direct-initialization」 で2回目が呼び出されると考えた
655 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 12:08:27.64 ID:RTw9+8lc.net] >>643 その文は、同系統の型はdirect-initializationとして処理するって意味っしょ? 無しとしてもcopy-initialization(=の記法)で起こるのは、 別の型だった場合にuser-defined conversionがあるぐらい コピコン2回目は、それらの中で明示的に呼ばない限り走らないよね? explicitやprivateとしたらill-formedとかの扱いでコンパイルできないだけだし やっぱり何か別に勘違いしとると思うよ
656 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 12:38:51.74 ID:RTw9+8lc.net] >>643 連投&勘違いすまない、こっちがよくわかってなかった user-defined conversionの後に連続2回という意味だね 自分の知らない処理が走りうるのかと思ってたんだ わざわざレスありがとうございました
657 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 14:10:06.77 ID:3GeB3ImX.net] ムーブとか右辺値についてググって勉強しているのですが、いまいちよく分かりません std::move(t)は左辺値から右辺値へ変換するための関数だから、当然 t は左辺値であるべきですよね? tを右辺値にしてる例をよく見るんですが、間違いなんでしょうか?
658 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 14:34:33.09 ID:q0tTJLJ/.net] tを右辺値っていうのはどういう意味? tって名前がついてるんだから左辺値でしょ ソースで説明してくれ
659 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 14:43:39.20 ID:q0tTJLJ/.net] そもそもなぜstd::move(t)なんてするのかって話か?
660 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 15:07:13.81 ID:7IoQrMPq.net] &&t のtが右辺値、っていうありがちな間違い、とエスパー
661 名前:646 mailto:sage [2015/07/17(金) 16:14:19.93 ID:3GeB3ImX.net] cpplover.blogspot.jp/2009/11/rvalue-reference_23.html?m=1 たとえば↑のサイトでは、テンプレート関数の引数が左辺値か右辺値かで分ける例があったんですが template < typename T > void f( T && t ) { if ( std::is_lvalue_reference<T>::value ) X x( t ) ; else X x( std::move(t) ) ; } このelse側のtは既に右辺値だからstd::moveする必要がないように思います
662 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 16:44:35.99 ID:qgsB8yVY.net] >>650 そうだねそのケースでは必要ないね ただstd::moveには右辺値も渡せるようになってるんだから、そうしても「間違い」とは言えないよ
663 名前:646 mailto:sage [2015/07/17(金) 17:28:34.28 ID:3GeB3ImX.net] std::moveは右辺値型にキャストしてるだけだから、右辺値が引数にきても 右辺値のままで問題ないわけですね 江添氏という大御所のサイトなので深読みしてしまいました
664 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:03:40.50 ID:97JZ5equ.net] >>651 いい加減なうそを言うな。
665 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:20:37.67 ID:shZ/TyQ7.net] >>650 ID式tは右辺値参照型の左辺値です type(右辺値参照/左辺値参照)とvalue category(lvalue/xvalue/prvalue)を混同しないで下さい
666 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:24:40.18 ID:shZ/TyQ7.net] ちな右辺値はxvalueとprvalueの総称
667 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:51:48.18 ID:eaJ36lyY.net] 「コピコン」ってかわいいな 擬人化してないかな
668 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 19:41:57.37 ID:qgsB8yVY.net] >>653 どの辺が嘘なのかなあ? 「必要ない」なのか「間違いとは言えない」なのか? 人を嘘つき呼ばわりしたなら答えてね
669 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 19:49:51.19 ID:qgsB8yVY.net] 右辺値参照型の左辺値は右辺値ではない!とか?(笑)
670 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:04:11.60 ID:7IoQrMPq.net] moveしないとムブコンじゃなくてコピコンが呼ばれると思うんだが
671 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:11:45.80 ID:qgsB8yVY.net] >>654 クイズです struct X {}; f(X()); でfへ渡されるtの型はなんでしょうか?
672 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:26:14.52 ID:7V4RYMzc.net] >>657 オツムに障害のあるバカには難しかったかな。 「そうだね」と言ってるわけだから tが右辺値というのを肯
673 名前:定していることになる。 tは右辺値じゃなくて左辺値なんだぜ。 型は関係ない [] [ここ壊れてます]
674 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:31:19.69 ID:qgsB8yVY.net] >>661 なんだ毎度のバカ連呼のアスペ規格厨か 確かに江添の例はこの件においては不適切だけどね 質問者が問題にしてるのはmove(X())のmoveが必要かどうかってことだろ
675 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:42:05.43 ID:97JZ5equ.net] よくわかっていないまま答えてxvalue = 右辺値 and 左辺値という屁理屈で逃げようとしているだけなのか それともただのアスペなだけなのか立場をハッキリさせてほしいな。
676 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:42:43.35 ID:7V4RYMzc.net] へー、必要ないんだー
677 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:47:52.42 ID:qgsB8yVY.net] はいはい毎度の展開 質問者の意図が理解できなくて非本質的なところに難癖つけることしか出来ないアスペ規格厨の群れ
678 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:49:19.50 ID:7IoQrMPq.net] melpon.org/wandbox/permlink/PnOQeW8cT2AT7bXL
679 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:50:04.49 ID:7V4RYMzc.net] >>662 >質問者が問題にしてるのはmove(X())のmoveが必要か 初めてみました どこから湧いて出てきたのそれ?
680 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:51:42.47 ID:RTw9+8lc.net] 能書きをたらたら垂れようかと思ったけど まあこういうのは実際やって見せるのが一番だよね https://ideone.com/UsNiGW
681 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:54:13.07 ID:qgsB8yVY.net] >>666 何を得意になってるのか知らんけど f1、f2のTは参照ですらないから当たり前だな これ江添が荒らしてるようなもんだろ
682 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:56:35.13 ID:qgsB8yVY.net] >>667 >>664 が読めないんだなアスペは
683 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:57:29.51 ID:qgsB8yVY.net] ☓ >>664 ◯ >>644
684 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:58:47.28 ID:qgsB8yVY.net] また違った >>646 だった
685 名前:646 mailto:sage [2015/07/17(金) 20:58:58.51 ID:3GeB3ImX.net] なんか自分が原因で荒れてしまったようですみません というか質問スレがあったんですね・・・そちらで聞くべきでしたか つまり、右辺値は関数の呼び出し側も受け手側も std::move を使うということでしょうか? struct X {} ; template < typename T > void f( T && t ) { if ( std::is_lvalue_reference<T>::value ) X x( t ) ; //・・・@はこっちにくる else X x( std::move(t) ) ; //・・・Aはこっち } int main() { X x ; X y ; f( x ) ; //・・・@ f( std::move( y ) ) ; //・・・A }
686 名前:646 mailto:sage [2015/07/17(金) 21:01:32.94 ID:3GeB3ImX.net] あ、いろいろコード貼っていただいたんですね ありがとうございます、よく見てみます
687 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:15:13.07 ID:7V4RYMzc.net] そうかそうか >>646 を読んで普通は>>647 ,>>649 で示されたような勘違いこそが 問題の本質と気づくんだが アスペは右辺値をmoveすることの是非が気になっちゃったんだな
688 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:25:08.25 ID:qgsB8yVY.net] >>675 >646は明らかに是非を問うてるんだが(「間違いなんでしょうか? 」) 俺はmove(X())のmoveは不必要だが間違いとはいえないと言ってるんだよアスペ君
689 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:27:49.31 ID:qgsB8yVY.net] >>673 Aのfに渡されるtは単なるTで参照型ですらないよ テンプレートの型のdeductionルールは確かに分かりづらいね それと江添を引っ張ると大概荒れるから避けたほうが良い
690 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:28:41.85 ID:7V4RYMzc.net] >>673 まず↓を理解してくれ void f(int && v) { v;// 元は右辺値だけどここでは左辺値 move(v);//右辺値に戻す } int main() { int v;//vは式じゃないので右辺値でも左辺値でもない f( v );//vは左辺値(コンパイルエラー) f( move(v) );// move(v)は右辺値 }
691 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:43:11.51 ID:R2Je5ZhD.net] >>678 > f( v );//vは左辺値(コンパイルエラー) は? もう無茶苦茶だなw
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ですか? 私の頭では他にどう答えたらよいか思い浮かびませんでした。 どうか完璧な回答をご教示いただけませんか?
793 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 21:31:15.63 ID:ckceIrW4.net] まあ書き方によっては依然としてリークの危険があるからmake_uniqueが使えるならそっちのほうが望ましいわな
794 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 22:09:14.54 ID:MTXI4NoM.net] >>775 ,777-779 ありがとうございます。 vc10なので、std::make_unique使えないのです。 std::stringは使わないけど、std::basic_string<TCHAR>なら、たまに使います。 元JAVA使いなので、C++の基本を知らずに使ってるかも知れませんww
795 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:16:16.53 ID:ckceIrW4.net] >>780 unique_ptrに拘る理由がないならvectorがお勧めだよ。
796 名前:デフォルトの名無しさん [2015/07/19(日) 23:29:29.46 ID:J4Ltq9z4.net] #include <iostream> #include <random> int main(){ std::random_device rd; std::cout << rd() << std::endl; return 0; } で出力される値が何度実行しても同じになってしまうのですが何故でしょう
797 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:40:35.83 ID:uuV0Uo08.net] seedを与えないとだめなんじゃないの?
798 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:51:24.10 ID:iK86efF8.net] >>782 そのコードには全く問題ないよ ライブラリ以下が正しく機能してない もしかして組込み?環境を書いてもらわないと
799 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:52:11.35 ID:iu/AL9yj.net] >>783 んなこたーない ただの処理系のバグだろう
800 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:34:00.09 ID:d2x9KMbz.net] >>782 環境についての情報を書いて
801 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:59:06.25 ID:eqB+tjvJ.net] >>786 嫌どす コードに全く問題ないなら なんで環境を書かんといかんの
802 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:14:46.08 ID:d2x9KMbz.net] >>787 それなら誰にも原因について確たる答えを用意できないことが最初から決まってしまうんだから そもそも質問するな馬鹿
803 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:20:14.66 ID:UX3o5Q0t.net] コードに問題なくてもstd::random_deviceの実装に問題がないとは限らない
804 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:25:44.00 ID:theP84i7.net] 普通の人間は目的を達成する(意図した結果が得られる)ための行動を取る 規格にこだわる人間はコードの問題かどうかを気にして実装の不具合には興味がない これは後者のパターン
805 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:27:43.11 ID:0igkruKl.net] >>790 原因究明を重視するのは、いずれにも属さないんだな
806 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:28:56.83 ID:/EsSmyHW.net] 質問者もアレすぎるけど、それ以上にわけの分からんのが湧いてきたな
807 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:41:29.65 ID:eKxXjUv7.net] 質問者にミスがあるはず、 というかおよそ原因には心当たりあるけど 環境が分からないと全然違ってる恐れがあるから今のところここでは書けないよな。
808 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:48:38.60 ID:Zw2a1PSh.net] >>787 質問文の不備を減らせばもっと有益な情報得られるかもしれないのに お前の損得に直結する岐路で、どうして情報得られない方を選ぶのだろう? 情報欲しがってない奴がどうして質問なんかしてるのだろう? ひょっとして頭の障害か何か?
809 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:52:24.48 ID:theP84i7.net] 質問した後に回答者を煽るのは オツムに障害を持った人の特長
810 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:22:46.21 ID:8grmR+UY.net] >>787 > コードに全く問題ないなら それまだ確定してないでしょ? 「処理系のバグだろう」という「だろう」レベルの意見をひとつ貰っただけで 早くも決めつけちゃってるわけですか? とりあえずプログラマに向いてなさそう ばいばい別世界の住民さん
811 名前:デフォルトの名無しさん [2015/07/20(月) 02:43:27.95 ID:gdO7FQR/.net] 初代スレに回答者の掟というのがあって、質問に対して質問で返してはならないとありませんでしたか?
812 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:47:08.95 ID:theP84i7.net] へー、知らないけど その情報が何か有益なの?
813 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:48:20.37 ID:UX3o5Q0t.net] >>1 に >質問者は必ず環境を書きましょう。 って書いてるのに書かないアホに付き合わなくてもいいでしょ
814 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:56:00.65 ID:theP84i7.net] 『ただしその場合』という大切な文言を意図的に削る人も困りものです
815 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:02:23.28 ID:/EsSmyHW.net] >>761 規格の§8.3.2-5〜6を読んでみたんですけど ここではキャストについては何も触れられていないように思えるんですが、どうなんでしょうかね? §5.2.9(Static cast)には if T is an rvalue reference to object type, the result is an xvalue とあってxvalueになってキャスト結果はmove可能に思えるんですが、何か見落としてますか?
816 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:16:00.47 ID:theP84i7.net] >>801 〜761より抜粋〜 『static_cast<X&>(t)と&&減るから』
817 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:25:11.29 ID:/EsSmyHW.net] >>796 >>782 のコード自体には問題がないのは確定してるよ これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる 考えられるのは>>782 の環境ではハードウエアエントロピーを反映する機構が組み込まれていないのではないかと
818 名前:801 mailto:sage [2015/07/20(月) 04:06:41.03 ID:/EsSmyHW.net] でもまあキャストの場合でも§8.3.2-6のルールが適用されるんだろうなあ std::moveの実装はみんな参照をremoveしてから&&付けてるから §8.3.2-6を字句どうりに読めばtypedef 、type template-parameter、decltype-specifier 以外ではT& &&はエラーにならなきゃいけないと思うんだが 俺が何か見落としてるんだろうけど何なのか分からない
819 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:23:53.19 ID:/EsSmyHW.net] あっそうかtype template-parameterに当たるということか Tがtemplate-parameterなら T& &&は全てT&に変換されると ホント難しいわ
820 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:39:27.70 ID:theP84i7.net] ところがISO/IEC 14882:2014で template-parameterが削除されているのであった。 まあ結論は変わらないけど
821 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:42:29.86 ID:/EsSmyHW.net] an attempt to create the type “rvalue reference to cv TR” creates the type TR.だな やっと分かった >>801 、>>804 は寝言ですので忘れて下さいごめんなさい
822 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:48:36.62 ID:/EsSmyHW.net] >>806 あっそうなんだ 買う気しないから最終ドラフト読んでたw
823 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 09:14:19.77 ID:qaRX0VWC.net] >コード自体には問題がないのは確定してるよ >これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる とりあえずプログラマに向いてなさそう
824 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 09:49:53.29 ID:j3bVGMZR.net] >>782 std::random_device rd; std::cout << rd.entropy() << std::endl; やってみ これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて 常に擬似乱数を返すようになっている だから次善策として std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count()); を使うのが常套手段 srand((unsigned)time(nullptr)); を使うのと似ているね
825 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:11:47.48 ID:theP84i7.net] >>810 ほうほう、疑似乱数を返すとどうして「次善策」に飛躍してしまうのですか?
826 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:12:41.50 ID:F9PK3kSV.net] 毎回乱数列が同じだと言うなら種が必要って事でしょね。
827 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:18:59.83 ID:Ebj0wxFB.net] gccでwindows向けにコンパイルするとstd::random_deviceの中身がstd::mt19937になってるから いつも同じ乱数吐くけどそれかね
828 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:26:27.58 ID:/EsSmyHW.net] cygwinのgccではちゃんと毎回違う値になる
829 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:28:20.95 ID:/EsSmyHW.net] >>812 std::random_deviceには種は与えられないから
830 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:30:11.56 ID:theP84i7.net] >>810 >0 が表示されたらその処理系では真の乱数がサポートされてい とりあえす嘘を教えるな
831 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:32:56.85 ID:/EsSmyHW.net] >>809 お前は とりあえず人間として生きるのに向いてなさそう
832 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:35:34.58 ID:UX3o5Q0t.net] ttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/tr1/random.h ttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/src/c%2B%2B11/random.cc cygwinに入ってるのはちゃんとしてるのかね やっぱりmt19937を呼んでるな
833 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:36:39.90 ID:JaqU9d1i.net] >>803 ハードウェアエントロピーを取得できるか確認せず 取得できると決め込んで処理して その結果意図した挙動をしないのだから 明らかにコードの問題だろう これでコードに問題ないと決めつけてるのはどうかしてる
834 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:39:02.21 ID:theP84i7.net] ちなみに自分の環境では、TPMの無いコンピューターに入れたウブンコの GCCだとentropy()が0を返すな こいつは信用ならない >>819 何故ですか? 規格上はハードウェア機能の有無に関わらず固定値を返してはなりませんよ
835 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:41:32.31 ID:1Qy7XHWg.net] 乱数だから実行環境ごとに挙動が変わるのが普通なんじゃない?
836 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:42:42.77 ID:j3bVGMZR.net] >>816 >If the library implementation employs a random number engine instead of a real-random number generator, >the value returned by this function is always zero. >>811 rand()でもプログラム走らせる度に同じ乱数系列になってしまうだろ アホか >>813 「真の乱数」を返す方法はいろいろ議論されてるね PIDを使うとか Linuxには/dev/random MinGWのgccは手抜きだな
837 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:43:44.83 ID:Ebj0wxFB.net] 疑似乱数だと変わらなかったりする
838 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:45:36.38 ID:/EsSmyHW.net] >>816 規格の§26.5.6-5には If the implementation employs a random number engine, returns 0.0. とあるから>>810 は嘘ではない
839 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:45:37.50 ID:theP84i7.net] >>822 >instead of a real-random number generator なるほどそれか、勘違いしたすまぬ
840 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:50:55.65 ID:/EsSmyHW.net] cygwinのgcc(4.9.2)ではentropy()は0を返す
841 名前:ッどoperator()は毎回違う値になる [] [ここ壊れてます]
842 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:58:15.70 ID:ZwKNfUvh.net] この流れなら聞ける エントロピーってなに?
843 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:59:24.66 ID:/EsSmyHW.net] 規格の§26.5.6-6を見るとentropy()が0を返すような環境であってもnon-deterministicな値を返さなきゃいけないみたいだけどね Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive. It is implementation-defined how these values are generated.
844 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:02:57.44 ID:/EsSmyHW.net] >>828 はoperator()の話しね >>819 ライブラリにバグが有り迂回措置をしなきゃならないことはままあることだけど それと>>782 のコード自体には問題がないことは別の話
845 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:10:17.00 ID:MKIWYupr.net] バグじゃないんじゃね? entropy()が0.0を返すのなら毎回同じ乱数系列になっても文句は言えないという事なだけで
846 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:22:06.61 ID:/EsSmyHW.net] >>830 time()すらサポートできない環境もあるだろうけどな でも規格ではoperator()はnon-deterministic random valueを返さなきゃならないことになってる 同じ種による擬似乱数ならnon-deterministicにはならない
847 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:24:22.43 ID:Ebj0wxFB.net] 規格がどうであろうがアホな環境があるのはしょうがない
848 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:25:45.09 ID:MKIWYupr.net] >>831 いやいやoperator()は単に乱数エンジンを呼び出して次の新しい乱数を返すだけでしょ
849 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:26:23.38 ID:theP84i7.net] 正確にはoperator()はnon-deterministic random valueを返すか または例外をスローしなければならない
850 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:33:27.11 ID:JaqU9d1i.net] >>834 環境が毎度同じ値をハードウェアエントロピーとして返してたら例外にしようにも判断できないだろう
851 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:33:39.96 ID:/EsSmyHW.net] >>833 entoropy()==0な環境ならそうだけど 問題はその場合の擬似乱数の種だよ エントロピーを持った種を生成する手段が全くない環境ではstd::random_deviceは規格通りに実装できないと思う
852 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:38:55.35 ID:uNOqpDKk.net] 環境を明らかにして再現可能にしないと 本当の原因については何もかも憶測だわな
853 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:40:06.20 ID:/EsSmyHW.net] >>834 §26.5.6-7に例外規定があるね 例外に該当するにも関わらず例外上げないならやっぱりバグだね
854 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:41:48.34 ID:theP84i7.net] >>835 同じ値が返りうるものを使ってrandam_deviceを作ったら それは処理系のバグです
855 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:56:27.72 ID:skw8xdRE.net] >>839 じゃあ、/dev/randomは使えないんだな
856 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:07:53.20 ID:2F+fvzms.net] >>839 そのような仕様は無い
857 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:16:22.99 ID:theP84i7.net] >>841 仕様にあるかどうかじゃなくて 仕様を満たす物を作るかどうかという話なんだが 馬鹿には難しかったかな
858 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:18:07.44 ID:RGuMbU6U.net] >>842 お前が言ってるような要求の仕様があるかないかだろ 馬鹿か
859 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:19:24.81 ID:19+QQn1h.net] > 同じ値が返りうるものを使ってrandam_deviceを作ったら > それは処理系のバグです どうしてこういうデマを思いつけるの? 親の教育?
860 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:21:14.86 ID:theP84i7.net] >>843 知らなかったのなら教えてやろう >>828 で規定されているのだよ
861 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:28:17.77 ID:CPoN3U++.net] non-deterministic意味がわからなかったんだろう
862 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:28:53.22 ID:/EsSmyHW.net] >>824 を補足訂正しとくか ・ライブラリが擬似乱数を使うならentropy()はゼロを返さなければならない ・しかし、その場合でもoperator()は何らかの手段でnon-deterministicな値を返さなければならない ・それすら出来ないなら例外を上げなければいけない >>810 の >これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて >常に擬似乱数を返すようになっている までは正しいが、それ以降はバグってるライブラリに対する迂回処置 規格を順守するならtry〜catchで確認しなければならないけどライブラリがバグってて例外上げないなら 意味がなく>>810 みたいなことをやらなきゃならない でもそんな環境ではstd::chrono::system_clock::now()やtime()が使い物になるかどうかすら試してみなきゃわからない
863 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:39:30.02 ID:kZPq/fe7.net] >>845 そこにはそんなこと書いてない 書いているのは取得できなかった場合にthrowしろということだけだ ハードウェアないしそれをエミュレートするソフトウェアが同じ値を返したときに その不自然さの判定をライブラリーに要求する仕様は存在していない そもそも非決定性乱数だと名乗る数列に対してそれが非決定性乱数でないと外部から証明することは不可能
864 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:41:33.14 ID:ewQgCmyw.net] >>848 entropy()が0なら例外を吐くようにするとかの手段はある
865 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:42:27.08 ID:VhxPp0/8.net] 今日も >自演 ID:n8k6dcHe=ID:TrlsMEs4 >アスペ ID:oxhll+kB >キチガイ ID:o/QnrV3k の不毛な規格論争が血気盛んですね
866 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:50:52.26 ID:CPoN3U++.net] 言葉遊びが好きだなあ
867 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:53:14.65 ID:5h6P6Rwy.net] >>839 > 同じ値が返りうるものを使ってrandam_deviceを作ったら > それは処理系のバグです つまり、/dev/urandomや/dev/randomのようなユーザーが書き換えられる擬似デバイス すなわち「同じ値が返りうるもの」を使ってはならない仕様だと言いたいのですね?
868 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:54:33.43 ID:miZegYar.net] int rand() {return 0;}//乱数でないと証明することは不可能(^^)
869 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:56:56.05 ID:CPoN3U++.net] 言葉遊びして勝ち誇ってるには悪いけど 本当に同値しか返さないなら証明可能だぞ むしろ反証ができないわけで
870 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:05:03.81 ID:ewQgCmyw.net] 手持ちの処理系(MinGW 5.1.0)だけど #include <iostream> #include <random> int main() { std::random_device rd; std::cout << rd() << std::endl; } 何回走らせても 3499211612 が返り、例外を吐かない result_type operator()(); 6 Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive. It is implementation-defined how these values are generated. 7 Throws: A value of an implementation-defined type derived from exception if a random number could not be obtained. と規格票にはあるけど、operator()が非決定性の乱数を返すとはどこにも書かれてない 擬似乱数でもいいから得られれば例外を吐かないと読めるんだが
871 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:06:57.42 ID:theP84i7.net] (つд⊂)ゴシゴシ
872 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:09:28.33 ID:CPoN3U++.net] >>855 >operator()が非決定性の乱数を返すとはどこにも書かれてない 少なくとも、前提はどうあれ明らかに書いてあるものを出して どこにも書かれてないは嘘だろ
873 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:11:49.80 ID:ewQgCmyw.net] あ、ごめんそうだな じゃあこの処理系のバグだな rd()を呼び出した時点でstd::exceptionを継承した例外を吐かなければ規格に一致してないわけか
874 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:14:36.84 ID:HS03ITz9.net] どちらかというとコンストラクタの時点で非決定性乱数を返せるアテが無いってことで例外にして欲しいところ。
875 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:16:01.20 ID:CPoN3U++.net] 途中でプールが消える可能性もあるね
876 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:20:50.77 ID:theP84i7.net] ちなみにコンストラクターが例外を出しても 規格に違反はしてないぞ
877 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:24:27.46 ID:CPoN3U++.net] しかし規格に対してVCがより準拠して高機能で gccが微妙な対応とは思わなんだ (正確にはlibstdc++だけど)
878 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:30:25.55 ID:qtHFk0LE.net] linuxで使う分には問題ないんだよ
879 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:45:33.88 ID:yFbTkFIh.net] >>863 linuxでもurandom書き換えられたらwindowsと変わらない linuxで要件満たすのは不可能
880 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:59:56.44 ID:ewQgCmyw.net] www.argocorp.com/compo/IDQ/IDQ_PCI.html こんなのでも差すしかないんじゃね
881 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 14:16:13.79 ID:/EsSmyHW.net] 量子状態が真に不決定的だという量子力学主流派の主張にだって反対意見は多くあるし(有名なのはアインシュタイン) つきつめると結局ラプラスの悪魔の話にまでいっちゃう
882 名前:デフォルトの名無しさん [2015/07/20(月) 14:19:54.76 ID:kIIIo7Lt.net] >>782 の者ですが >>810 さんの >std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count()); を使うことで解決しました ちなみに環境はwindowsのgcc4.9.2です
883 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 00:56:27.52 ID:tw33l9e0.net] CからC++へ移ってクラスの活用を学び始めています しかしメンバーが静的なクラスばかりになってしまい、 Class::Func()のような処理ばかりで、Cで関数使っていた頃との違いが実感できません オブジェクト指向を身に付ける為に、こういう処理を作ってみると良いってモノがあれば教えて欲しいです
884 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:04:02.59 ID:iAnJqoKI.net] >>868 そんなので作ってたら悪い癖が固まる 本でも読んでろ
885 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:13:35.48 ID:Ekp6Lmit.net] C++クラスと継承完全制覇 とかいいのでわ?
886 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:31:58.55 ID:tw33l9e0.net] >>870 ありがとうございます 早速本屋で探してみます
887 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:54:30.04 ID:BsRxe1GP.net] >>868 何のためにstaticにしてんの?
888 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:03:44.28 ID:l6C/lcEi.net] >>872 そりゃなんと言ってもデザインパターンだろ https://ja.m.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)
889 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:04:14.07 ID:l6C/lcEi.net] あ、 ×>>872 ○>>868
890 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:05:29.24 ID:tw33l9e0.net] >>872 オブジェクト毎に持つ必要性が無い値だと思ったからです DirectXやDirectInputの利用で、 初期化したデバイスのポインタをクラス変数として保持し、派生先のクラスで利用できるようにしてました その結果、 DirectX::Initialize() とか、DirectInput::GetKeyState() のような処理を使わざるを得なくなりました これではグローバル変数でデバイス保持してた、クラス未使用の頃とやってる事が同じだから何か違うなーと
891 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 21:29:05.54 ID:MZjkxTxw.net] そういうもんですよ。 もうちょっとオシャレな人たちは、シングルトンを使う。
892 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 00:12:51.45 ID:N6B7rSAC.net] クラスで共有するなら当然static使う
893 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 00:35:33.34 ID:V3PTIB1w.net] それらの処理をやってる箇所まで内包させて これ使えば全部やってくれるよ
894 名前:ってクラスにするのが 最終的な目標って感じかなぁ [] [ここ壊れてます]
895 名前:デフォルトの名無しさん [2015/07/22(水) 16:33:13.94 ID:vU2lJ4S0.net] >>862 宣伝条項とか有るんでないの。 GNU製品を使う場合、商用製品を貶さなければならないとかさ。 よう知らんけど。
896 名前:デフォルトの名無しさん [2015/07/22(水) 18:52:41.66 ID:QLvVRyDz.net] 苦しんで覚えるc言語のサイトがアクセスできないんですが…
897 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 18:57:26.61 ID:KhraFoTS.net] アクセスするまでに苦しめという親心だ
898 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 19:55:00.74 ID:Uuj8BVVu.net] プログラミング初心者ってまず何をすればいいですか?
899 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 19:56:09.51 ID:KhraFoTS.net] 動く保証のあるプログラムの写経
900 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 20:00:47.95 ID:RSJsUGeJ.net] 写経したくなるような作りたいプログラムを見つける
901 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 20:59:56.40 ID:6tF8DM8V.net] >>882 プログラミングを忘れ、まともな人生を歩む事を考える
902 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 21:51:13.30 ID:Md5kWR9m.net] ある程度中身のわかるソフトの挙動を観察し仕組みを洞察する
903 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 23:02:09.87 ID:vClKc3rH.net] >>882 「○○作ってみたい」から考え始めてそれを実現するための関数1つでも作ってみる
904 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 00:30:25.25 ID:5whcWqvP.net] 作りたいアプリのクラスを作ってしまおう (ストラウストラップ)
905 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 11:22:52.88 ID:Yxc4xF6u.net] Androidスレにて回答が得られそうにないので来ました。 Android機器でC++ができると聞いてAIDEを購入したのですが、C++11を使う設定がわかりません。 LOCAL_CFLAGS := -std=c++11, LOCAL_CPPFLAGS := -std=c++11をApplication.mkに書いてもC++11のコードのコンパイルが通りませんでした。 検索してみたところ、Toolchainでgcc 4.8を入れれば良いと書かれていましたが、Toolchainの入れ方がわかりません。 GooglePlayで[NDK Toolchain]で検索してもそれらしいものが引っ掛かりません。 解法を教えてください。あるいは、どんなキーワードで検索したら解決しますか?
906 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 15:24:00.49 ID:1xg3cb1R.net] そんなもん買わなくてもC++できるのに。
907 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:09:41.76 ID:5whcWqvP.net] アンドロイドで遊びたいんですよ
908 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:56:05.66 ID:P0N6qRSq.net] >>891 android studioじゃダメなん?
909 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:19:07.64 ID:s5ALrjlX.net] 実機でポロポロ動いての見て楽しむんですよ
910 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:21:00.21 ID:P0N6qRSq.net] >>893 そういう事か。 エミュレータだと糞遅いもんなあ
911 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:05:42.76 ID:nCR9QL2r.net] 実は今入院中で、しかもはしたお金しかなくてノートPCが買えないので、スマホでC++を書いている状況なんですよね。 C4droidでC++11を書いていますが、タブ式のエディタでないことと、分割コンパイルができないことで大変苦労しています。
912 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:12:19.00 ID:pDMzRj5e.net] そうですか
913 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 17:46:40.13 ID:/55SuOij.net] Application.mk に APP_CPPFLAGS := -std=c++11 って書けばいいんじゃないの
914 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 10:31:50.76 ID:pSI/1ixo.net] どうして入院させられたのか理解してないんですね
915 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/01(土) 22:37:45.46 ID:/RIOF0J6.net] ファイルやディレクトリーやワイルドカードを含むリストを、 パスファイル名のリストに展開したいのだが、いい方法はないだろうか?
916 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:33:42.45 ID:CYsajC4S.net] PowerShellには、フルパスを返す、Resolve-Path がある Resolve-Path C:\TEMP\*.txt C:\TEMP\test1.txt C:\TEMP\test2.txt C:\TEMP\test3.txt
917 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:36:31.87 ID:UaSYqc/x.net] >>900 スレ違いは去れ
918 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 00:38:55.04 ID:+SVNoiwH.net] >>901 いちいち五月蝿いんだよ。阿呆かよ。
919 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 00:40:51.05 ID:G4TAbL+8.net] FindFirstFile(Ex) でワイルドカード使えるからまんま渡してFindNextFile する (MSCなら)スタートアップのリンクモジュールを変える 実行時引数のワイルドカードを 展開済み引数にするのがあった記憶
920 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:20:35.53 ID:77q907bZ.net] ちなみに>>900 =>>902 =>>903 =QZ
921 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 07:46:12.30 ID:K1eGJczB.net] jbbs.shitaraba.net/netgame/14889/ これのプログラム解明お願いします
922 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 08:01:46.29 ID:+B7/KlLQ.net] >>905 氏ね
923 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 15:27:28.43 ID:2WU/dKTq.net] >>903 それボーランドのコンパイラじゃね?
924 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:35:41.96 ID:zMJ+WguM.net] これ系ではだめ? https://msdn.microsoft.com/ja-jp/library/kda16keh(v=vs.120).aspx
925 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:46:29.65 ID:SLv/zRdd.net] win32api でいいのにラッパを使うの?gcc/ming とかでは使えないのに
926 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:39:18.72 ID:dv1hKBwd.net] C/C++両方で使うヘッダファイルを書いています。 #ifdef __cplusplus #include <cstdio> #else #include <stdio.h> #endif #ifdef __cplusplus extern "C" { using namespace std; #endif int OutputString(FILE* fp, const char* s, size_t n); #ifdef __cplusplus } #endif みたいに書いたら、using namespace std;をヘッダに書くな!と怒られました。 私は、usingの有効範囲は{ }の中だけだと思ったんですが違うんでしょうか? できれば、 #ifdef __cplusplus int OutputString(std::FILE* fp, const char* s, std::size_t n); #else int OutputString(FILE* fp, const char* s, size_t n); #endif みたいな書き方はしたくないんですが。
927 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:43:07.73 ID:t8uosJPh.net] #ifdef __cplusplus #define NAMESPACE_STD(TYPE) std::TYPE #else #define NAMESPACE_STD(TYPE) TYPE #endif int OutputString(FILE* fp, const char* s, NAMESPACE_STD(size_t) n);
928 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:58:03.10 ID:PIBA7Cur.net] >>910 >C/C++両方で使うヘッダファイルを書いています。 C/C++両方で使う場合ってどう言う場合なの?
929 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 12:54:22.61 ID:qkkgbGkC.net] >>910 extern の{}はスコープとは違うはず。 >>911 みたいにしとけば? #define STD std:: OutputString(STD FILE* fp, );
930 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:01:02.17 ID:dv1hKBwd.net] >>912 >C/C++両方で使う場合ってどう言う場合なの? 色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、 C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。 なので、Cライブラリのヘッダファイルを修正していたんですが、std::size_t等をどうすべきか悩みまして… >>911 の方法でやってみます。ありがとうございました。
931 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:26:13.64 ID:ZNzZ9/K0.net] >>914 > 色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、 > C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。 それは、C++コーディング規約を変えた奴が無知で使えない奴だったというだけのような 気がするが…いずれにしろ現場は大変だな…
932 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:29:15.95 ID:ZNzZ9/K0.net] 言い忘れたが、そのヘッダーファイルはCソースのヘッダーファイルなので C++からインクルードする場合の対処は必要だが、C++ソースのヘッダー ファイルではない、従って#include <cstdio>を使う事自体が間違っている 可能性の方が高い
933 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/03(月) 17:39:41.05 ID:/P0N0OgP.net] TypicalConsoleApp --- a template project of console application https://github.com/katahiromz/TypicalConsoleApp よろしくね!!!
934 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 19:13:07.32 ID:fubWtLYm.net] >>917 なに?
935 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 23:03:14.14 ID:bvkPQc8b.net] >>917 コミュ障は去れ
936 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:58:56.42 ID:r6nVJo7D.net] >>916 バカは去れ
937 名前:デフォルトの名無しさん [2015/08/05(水) 17:14:25.78 ID:22Ehcq84.net] visual studio関係のスレで聞くべき質問なのかもしれませんが, 相対パスについて(おそらく初歩的な)質問があります. たとえば,指定したファイルを読み込んで処理をするクラス, 具体的には画像データを読み取るクラスImageReaderがあるとします. 処理内容は,ifstreamからファイルデータすべての情報およびサイズを 読み取って,各画像を表現する構造体に合わせた処理を行う単純なものと します.実際に利用するとき,new式なら ImageReader* imager = new ImageReader( "imagefile's path" ); のようにファイルを指定するのが(初心者の間では?)メジャーだと 思います. これをvisual C++2013でビルドして実行可能ファイルを作成し, 実際に問題なく動くことをDebugフォルダ内に該当の画像ファイルを ちゃんと置いてから実行して確認します.ここまでは問題ありません. 疑問なのはここからで,このDebugフォルダをたとえばデスクトップ上や, 外付けのUSBメモリに移した後,実行可能ファイルを開いてもちゃんと 動作してくれるのはなぜか,です. 実行可能ファイルを開くたびに再コンパイルされているなら, 場所が変わっても相対的な位置関係さえ気を付ければ大丈夫なのは わかるのですが,再コンパイルなんてしているわけないですよね? つまり,相対パスを次のようにした場合, "data/image/file.dds" 下のカッコでくくった部分が変更されても問題ないのかっていう疑問です. "(C:Visual Studio 2013\Projects\Game\solution\title)\data\image\file.dds"
938 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:23:15.82 ID:8Ly/MaH0.net] ・デバッガが相対パスの基点を Debug フォルダにして CreateProcess してる (プロジェクトの設定で、あえて別のフォルダに変えることも可能) ・実行ファイル作って、そいつをダブルクリックした場合には explorer が相対パスの基点を実行ファイルのおいてある場所にして CreateProcess してる ・実行ファイル作って、コマンドプロンプト(cmd.exe)からタイプして起動した場合には そのカレントディレクトリを相対パスの基点として CreateProcess してる 実行ファイルへのショートカットを作った場合 ショートカットのプロパティの作業ディレクトリが相対パスの基点
939 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:40:58.78 ID:22Ehcq84.net] なるほど,根本的に間違った認識を・・・ コンパイル処理でパスが埋め込まれるわけではないんですね. 良くできてるなぁ ありがとうございました.
940 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:24:28.76 ID:n/R/gJe6.net] >>923 そそ コンパイル時に、相対パスをフルパス化して埋め込むわけではない ってことだね あくまで 記述したとおりの文字列を実行ファイルに埋め込んでる ドライブ名からの絶対パスならば、実行ファイルが何処に居ようが、そのフォルダ決め打ちだし 相対パスならば、呼び出し側(デバッガ/explorer/コマンドプロンプト等)により基点からの相対になる
941 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:28:04.18 ID:IqH75krm.net] カレントディレクトリの概念はコンソール使わないとイメージしにくいのかなあ ショートカットのプロパティで作業フォルダとなってるのがそれだな。
942 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:28:55.75 ID:y9IIWzjN.net] プログラムで使う画像なんかは、 実行時にexeのパスを求めて、そこから画像のパスを生成しないと、 コマンドプロンプトから起動した場合なんかに落ちるんだよね
943 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/05(水) 19:32:51.98 ID:L7EpLchZ.net] GetModuleFileName
944 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:34:38.59 ID:4lOabosS.net] >>927 誰も訊いてないから コミュ障は去れ
945 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:57:31.39 ID:L7EpLchZ.net] 【初心者歓迎】
946 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 08:09:32.44 ID:c8ZxAoVu.net] 初心者は歓迎 コミュ障は非歓迎
947 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 08:45:54.70 ID:BM+A+5/Q.net] コテハンがかたなしだなw
948 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 00:43:13.34 ID:Eohg7Dz0.net] あああ
949 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 05:32:25.11 ID:dHRwhHmw.net] 西城くーん
950 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 21:51:50.18 ID:Dbf8XOfd.net] 「ふつうのLinuxプログラミング」にfeof関数を使うなと説明がありますが それはなぜですか?
951 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 21:58:35.07 ID:EREVH0u4.net] >>834 「読んだ後」でないと「終端を過ぎてしまったかどうか」を検出出来ないからじゃね?
952 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 22:52:17.49 ID:dHRwhHmw.net] 使った事ないなぁ。 大体バイナリは最初にサイズ取得するみたいな。
953 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 23:27:36.40 ID:zjP+b/ec.net] パイズリが最初にサイズ取得するやて?
954 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 23:30:32.06 ID:zjP+b/ec.net] >>934 根拠も述べずに他人に変な思想を広めようとする本なんか 捨ててええぞ
955 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 05:51:04.91 ID:TpmJtB/J.net] >>936 パイプからバイナリデータ貰うとかやったことないのか? まあ、あまり一般的じゃないか...
956 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 06:11:34.86 ID:LfXppaJj.net] >>939 は日本語も読めないバカですね
957 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 06:16:20.23 ID:TpmJtB/J.net] >>940 お前意味わかってないだろ... 知らないのになんで首突っ込もうとするんだろう
958 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 07:31:08.03 ID:LfA/skDI.net] やったことないから使った事ないんだろって指摘なんじゃ?
959 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:36:53.73 ID:or9dNLa9.net] >>934 その本に理由書いて無いの? 無いから聞いてるんだとは思うけど、どんな筆者なんだろうな…
960 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:45:45.74 ID:hYSXGduH.net] あくまでエラーを格納してる大域変数を読みに行くってやつだから目的とそぐわない可能性があるってことですかね? 初心者なので私も気になります
961 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:04:45.10 ID:nYbrbIvI.net] >>943 青木峰郎って人 根拠は見直してみたけどやっぱりないみたいです
962 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:19:42.57 ID:+IVNtZk/.net] ループの継続判定に使うな、というのはあるね バイナリの読み込みはバッファサイズ未満を読んだら終了、でいいんじゃ・・・
963 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:59:22.62 ID:TpmJtB/J.net] feof 使うな でググるとこう言うのがヒットするから、この辺りの話だろうね d.hatena.ne.jp/hnw/touch/20130406
964 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:29:37.17 ID:nYbrbIvI.net] >>946 >>947 つまり関数自体には問題はない 使い道がない ということですか ありがとうございました
965 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:53:02.34 ID:mCEKjMZK.net] ファイルポインタ渡して下請け関数でなんらかの読み込みを伴う処理 下請け関数呼び出して、戻ってきた時 末端到達したのか、別件で途中脱出してきたのか確認するのに使えるかも?ぐらいかなぁ
966 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:56:43.50 ID:TpmJtB/J.net] >>948 関数に問題はないし、使い道もある 単に間違って使われることが多いだけ ストリームの状態じゃなくて、直前の入出力操作エラーの結果を示すって言う関数だからね
967 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:57:53.76 ID:kVT9f1nv.net] >>949 まぁね でも結局ステータスを親に返すか って話になると思う。
968 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 12:35:43.89 ID:nYbrbIvI.net] >>950 なるほど ありがとうございます
969 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 14:42:06.64 ID:yKwsHF9E.net] ネイティブc++のライブラリをCLRで使う場合、ライブラリ形式は動的(dll)と静的(lib)どちらも大丈夫ですか? それとも後者しか使えない、などの制限があったりしますか?
970 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 14:47:38.59 ID:p+j059KJ.net] 前者しか使えません
971 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 18:50:47.34 ID:yKwsHF9E.net] >>954 本当ですか? 海外のフォーラム見ると、静的ライブラリじゃないと駄目って言ってる人いるんですが、逆だったんですかね
972 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 02:50:11.88 ID:BCVAnZaZ.net] >>955 URL
973 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 07:42:09.87 ID:AeYGcSnH.net] CLRってなんだっけ
974 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 08:43:38.05 ID:mPByWcg9.net] どっちもいける /pureは後者だけか
975 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 08:43:59.06 ID:mPByWcg9.net] おっと間違った前者
976 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/13(木) 14:28:34.67 ID:5WXSkhNu.net] アンパンマン、新しい顔がたくさんできたよ!!! E.A.T. (Eyeball Allocation Table) https://github.com/katahiromz/EAT A specialized memory management system in C++. pstdbool --- portable stdbool https://github.com/katahiromz/pstdbool pstdint --- portable stdint https://github.com/katahiromz/pstdint よろしくね。
977 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:22:05.08 ID:DIZBxb65.net] >>956 とりあえず3つほど、、、 https://social.msdn.microsoft.com/Forums/en-US/df1661eb-c01e-408d-a6e0-d64b17f2c6a6/how-to-refer-dll-in-ccli-application?forum=vcgeneral forums.codeguru.com/showthread.php?461115-adding-dll-reference-into-managed-C-visual-studio-2008-project の一番最後のレス stackoverflow.com/questions/8498947/adding-natively-compiled-c-dll-to-clr-c-project のHansさんのレス
978 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:28:30.60 ID:DIZBxb65.net] つまり、dllをリンクするのにヘッダはもちろん、libも必要になるってことですか?
979 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:55:55.43 ID:aB+CmHXz.net] libないと関数名をリンクできないだろ ヘッダに書いてる関数名と、名前空間やらオーバーロードを解決してマングリングしたものの関係性がlibに記述されてると理解してる
980 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:05:39.09 ID:DIZBxb65.net] >>963 どうも、Windowsには普通のスタティックライブラリ(Unix系での.aファイル)の他に インポートライブラリというのがあり、両方とも拡張子がlibなんですね・・・ とんでもない勘違いしてました
981 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 23:49:09.88 ID:HDGJU3CK.net] >>962 いえリンクの仕方によります>>963 は嘘つきなので無視してください
982 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 10:40:11.01 ID:030ck1US.net] >>963 調べたところ、インポートライブラリにはルックアップテーブル作成のための情報が入ってるらしいですね >>965 インポートライブラリは暗黙的リンクには必要ですが、明示的リンクには不要ということですね c++とは直接関係ない話題ですいませんでした。勉強になりました ちなみに、今更聞くのもあれですがCLRってスレチですか?
983 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 10:52:02.66 ID:rxGnV8e7.net] スレチだけど誘導せずに勝手にレスつけてるんだから気にするな
984 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 18:38:31.27 ID:N/BdRhBJ.net] 環境依存文字OKなんだからCLRも問題ない気はする
985 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 21:17:42.52 ID:mMb0xxGG.net] まあ専用スレあるので素早い回答が欲しかったらそっちで
986 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:28:55.02 ID:BC6RDWNW.net] visual studio 2013の windowフォームで作成した textBox1〜textBox64のテキスト内容を まとめて変更したいのですが 少ない行数で簡単に変更する方法を教えてください。 textBox1->Text = L"aa"; textBox2->Text = L"aa"; ・ ・ ・ textBox64->Text = L"aa";
987 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:49:06.40 ID:2TQ1sRCh.net] 配列にする
988 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:22:48.42 ID:mJ5AYOWE.net] >>970 c++よりc#の方がform作り易いぞ
989 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:44:16.66 ID:3rmo/1Qf.net] まとめて関数の引数にするため、クラス構造体などの引数化容易な集合として扱いたいが、 集合としては一つしか呼ばない量があります .までが元々不要なうえ手間がかかり見づらくなるだけなので付けたくないのですが 省略のようなことはできないものでしょうか(以下は素人考え) class Input{public:int A,B,・・;}; void f(Input in,・・){略}; #define A input.A #define B input.B ・・ int main(){ Input input; A=・・; B=・・;・・; f(input,・・); }
990 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 08:50:55.30 ID:k3v/6O3B.net] 他所言語でおけ かな? with 識別子 . メンバー名 = 代入 : : end with こいうのが欲しくなる気持ちはわからないではない
991 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 09:00:38.36 ID:G0vOLImE.net] >>973 できるし、実際にやってる 有名どころでは struct in_addr とか あと GCC の拡張機能で初期化だけなら Input input = { .A=・・, .B=・・, ・・}
992 名前:; のように書ける [] [ここ壊れてます]
993 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 09:21:01.38 ID:EUq24GhA.net] 引き数を取るコンストラクタを用意するだけじゃないの?
994 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 10:32:11.65 ID:EwR31uEA.net] A, B 用のセッタ作れば良いだけじゃないのん?
995 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 14:31:46.84 ID:9q62HXi+.net] union{ int i; struct { unsigned int a : 1; unsigned int b : 1; } BIT; } hoge;//グローバル変数 void funcA(){ //hoge.aに対するいろんな処理(処理の内容はfuncBと同じ) } void funcB(){ //hoge.bに対するいろんな処理(処理の内容はfuncAと同じ) } Cで上記のような関数があるときに、funcAとfuncBの処理の内容を1つのコードにまとめるということはできないですか? funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました
996 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:16:35.55 ID:EwR31uEA.net] >>978 A, Bを同じクラスにするだけで良いのでは? 別解としてはtemplateを使う手もあるけど、多分そこまでするほどの事じゃないと察する。
997 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:19:27.93 ID:Fj/4E2oI.net] ゴミレスしないでください
998 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:36:37.35 ID:DK3HdHSw.net] hoge.a=func(hoge.a); では駄目?
999 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:50:40.92 ID:joxnevy0.net] func(&hoge.a) func(&hoge.b) じゃあかんのか
1000 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:55:37.74 ID:Fj/4E2oI.net] ビットフィールドも知らないんなら、ゴミレスしないでください
1001 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:11:32.93 ID:9q62HXi+.net] >>979 Cにclassなんかないんですが >>981 処理でいろいろ条件分岐するのでそれでは意味がない >>982 >funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました
1002 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:25:21.20 ID:t3K/aRMS.net] ゲッターとセッターの関数ポインタを引数にする
1003 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:45:15.51 ID:9q62HXi+.net] >>985 ありがとうございました
1004 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:03:51.94 ID:WInuKq4U.net] ビットフィールド止めて &hoge とビットマスク渡せばいいような気もする
1005 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:31:30.33 ID:rfTaTQIO.net] ちなみに>>975 =>>977 =>>987 =QZ
1006 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 00:59:15.46 ID:o7p+NB2T.net] >>984 なんで条件分岐があると >>981 がダメになるの? >>985 にできて >>981 にできないことなんて無いと思うんだけど。
1007 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 02:32:24.05 ID:KDudTXNJ.net] 次スレよろよろ
1008 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:10:45.87 ID:47QFVOwL.net] ほい 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1439849418/
1009 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:44:08.07 ID:lMcZlJPi.net] >>991 乙乙乙
1010 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:16:28.25 ID:mkEa0Vju.net] >>989 でも使う側で代入しなきゃいけないってめんどくさくない? >>985 のほうはfuncAとかを呼び出すようにすれば関数ポインタがどうこうというのは気にせずに使えるし
1011 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:39:47.45 ID:O8W/9LGI.net] うめしばー
1012 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:47:10.39 ID:/6UfQ5+D.net] うめ
1013 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:47:59.14 ID:/6UfQ5+D.net] うめ
1014 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:48:27.02 ID:/6UfQ5+D.net] うめ
1015 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:48:55.03 ID:/6UfQ5+D.net] うめ
1016 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:49:08.08 ID:/6UfQ5+D.net] うめ
1017 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:50:26.34 ID:O8W/9LGI.net] 千
1018 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1019 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています