【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/06/05(金) 23:27:47.92ID:pbJTQx9Mただしその場合、質問者は必ず環境を書きましょう。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
前スレ
【初心者歓迎】C/C++室 Ver.95【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1423872914/
0002デフォルトの名無しさん
2015/06/05(金) 23:44:49.19ID:JJJ2g9Sl0003デフォルトの名無しさん
2015/06/05(金) 23:52:48.97ID:cKja1wy10004デフォルトの名無しさん
2015/06/05(金) 23:54:57.46ID:DXaZxPH60005デフォルトの名無しさん
2015/06/05(金) 23:56:49.92ID:tERJk0Uu0006デフォルトの名無しさん
2015/06/06(土) 00:03:12.40ID:M49TyJvh0007デフォルトの名無しさん
2015/06/06(土) 00:51:44.09ID:DXSt7rl70008デフォルトの名無しさん
2015/06/06(土) 04:32:13.69ID:/6GggC300009デフォルトの名無しさん
2015/06/07(日) 13:26:17.75ID:GZ3uiqryVisualStudioの使用が主流?なんですかね
0010デフォルトの名無しさん
2015/06/07(日) 13:33:10.22ID:CnFB2uHW0011デフォルトの名無しさん
2015/06/07(日) 13:34:33.72ID:hr3tQ2QJ0012デフォルトの名無しさん
2015/06/07(日) 13:35:35.85ID:khofDikvVSにしとけばいいんじゃないかな
情報多いと思うし
慣れてきたら他も触ってみればいい
0013デフォルトの名無しさん
2015/06/07(日) 14:36:22.78ID:yqfGSgYQ0014デフォルトの名無しさん
2015/06/07(日) 15:31:40.74ID:2KmVxUihだがC++の道を極める求道者にはなれない
0015デフォルトの名無しさん
2015/06/07(日) 16:36:11.02ID:chj3jLUMVS には何が足りないんだ?
0016デフォルトの名無しさん
2015/06/07(日) 16:58:02.42ID:mQnOWg31もうg++は要らない。
でも求道者にはclangが必須かな
0017デフォルトの名無しさん
2015/06/07(日) 17:09:38.69ID:NjlaHsdj0018デフォルトの名無しさん
2015/06/07(日) 18:03:28.46ID:BED/WPPF簡単だし、お手軽におもちゃ作れるしな
0019デフォルトの名無しさん
2015/06/07(日) 19:22:02.82ID:JpRiBM0Z0020デフォルトの名無しさん
2015/06/07(日) 19:34:37.23ID:BED/WPPF0021デフォルトの名無しさん
2015/06/07(日) 22:53:04.61ID:hr3tQ2QJそのうちほかのものまでゴミの臭いがつく
0022デフォルトの名無しさん
2015/06/08(月) 00:36:34.43ID:mJY5GxG50023デフォルトの名無しさん
2015/06/08(月) 00:54:11.45ID:5ucRRAFX0024デフォルトの名無しさん
2015/06/08(月) 12:09:31.29ID:NC5UU/I10025デフォルトの名無しさん
2015/06/08(月) 12:57:20.87ID:BYDNcOl50026デフォルトの名無しさん
2015/06/08(月) 14:31:49.05ID:Njvm7shU0027デフォルトの名無しさん
2015/06/09(火) 00:18:26.87ID:xfiXeUeQ0028デフォルトの名無しさん
2015/06/10(水) 21:15:38.82ID:ilTOHdYYauto f=[&x](){x++;};
f();
printf("%d\n",x);
こんなプログラムを最適化ONでビルドして実行すると
なぜかf()を抜けた時点でxのアドレスがNULLになり
printf内部で落ちてしまいます。
最適化なしだと期待通り1が出力されます。
キャプチャの仕方が間違っているのでしょうか?
環境はVS2012です。
0029デフォルトの名無しさん
2015/06/10(水) 21:35:26.53ID:/eNROP7Rfは関数、xは引数だとしてfはグローバル変数にアクセスするのでいいのか?
文法自体わかってない。
0030デフォルトの名無しさん
2015/06/10(水) 21:52:38.49ID:96RlC2BQ0031デフォルトの名無しさん
2015/06/10(水) 22:03:18.30ID:E3lz5ETfに変えても同じ?
0032デフォルトの名無しさん
2015/06/10(水) 22:10:02.98ID:kk2eCJK3だが
『xのアドレスがNULLになり
printf内部で落ちてしまいます』
言っていることが意味不明だ
0033デフォルトの名無しさん
2015/06/10(水) 22:17:03.15ID:6b8sBCSUせっかく隠蔽したものをほじくり出す感じ
0034デフォルトの名無しさん
2015/06/10(水) 22:39:44.75ID:73TZN3iI0036デフォルトの名無しさん
2015/06/10(水) 22:49:28.47ID:Okrjkhyrと言う言葉の意味もよく知らないけど
使ってみたかったクソコテ野郎
0037デフォルトの名無しさん
2015/06/10(水) 22:55:03.82ID:X+sSFCkO0038デフォルトの名無しさん
2015/06/10(水) 22:57:18.54ID:7znYU1gJ0039片山博文MZ ◆T6xkBnTXz7B0
2015/06/10(水) 22:57:56.64ID:ifXizSNQ関数ポインター使わないからインライン化できる。
0040デフォルトの名無しさん
2015/06/10(水) 22:59:22.02ID:6mK0yDvYpredicate: 引数に対してtrue/falseの結果を与えるもの
0041デフォルトの名無しさん
2015/06/10(水) 23:00:59.02ID:4lZYRE2mfに入れずにいきなりラムダを呼んだらどうなる?
0042片山博文MZ ◆T6xkBnTXz7B0
2015/06/10(水) 23:03:13.11ID:ifXizSNQ0043デフォルトの名無しさん
2015/06/11(木) 11:24:34.71ID:R2TwyAk2使われてるライブラリも見たことがない。一体どこで使われているんだw
0044デフォルトの名無しさん
2015/06/11(木) 11:35:00.64ID:ESr81XRP0045デフォルトの名無しさん
2015/06/11(木) 12:09:12.67ID:wlQvrmKv0046デフォルトの名無しさん
2015/06/11(木) 12:12:33.27ID:IsG2Qw3q再現する最小限のコードよこせ。
0047デフォルトの名無しさん
2015/06/11(木) 12:19:22.87ID:pGHCo9siソースは出せません。
0048デフォルトの名無しさん
2015/06/11(木) 12:20:14.20ID:ezCGPCx0広く使われるまであと何十年かかかるのか。
0049デフォルトの名無しさん
2015/06/11(木) 12:34:03.11ID:nlMbZwOhttps://msdn.microsoft.com/ja-jp/library/jj950081.aspx
ほらよ
0050デフォルトの名無しさん
2015/06/11(木) 13:54:48.61ID:FmOUSr/Q0051デフォルトの名無しさん
2015/06/11(木) 13:57:10.36ID:q/LkR2I60052デフォルトの名無しさん
2015/06/11(木) 13:58:34.80ID:4D2y0Pob0053デフォルトの名無しさん
2015/06/11(木) 13:59:14.58ID:IsG2Qw3q0054デフォルトの名無しさん
2015/06/11(木) 14:01:15.29ID:AuS2IYQV0055デフォルトの名無しさん
2015/06/11(木) 14:01:49.67ID:FmOUSr/Q「僕ちんが想像するに遅いんじゃないかな」くらいにしておいた方が良いかと
0056デフォルトの名無しさん
2015/06/11(木) 14:03:17.51ID:hDuZrxPZ0057デフォルトの名無しさん
2015/06/11(木) 14:09:58.13ID:U/N4lXDi述語ほしいときとか
0058デフォルトの名無しさん
2015/06/11(木) 14:25:36.80ID:5XjSsN44それはオープンソースのライブラリーではないな
0059デフォルトの名無しさん
2015/06/11(木) 14:42:40.67ID:ESr81XRPttps://casablanca.codeplex.com/license
Apache License 2.0はオープンソースのライセンスじゃなかったのか…
0060デフォルトの名無しさん
2015/06/11(木) 15:08:51.32ID:JmSxoDP90061デフォルトの名無しさん
2015/06/11(木) 17:26:18.48ID:GJ9jcB3iそういった言語の機能的なことは詳しいが実際のしごとはやたら遅い奴いない?
多分、小さなサンプルプログラムしか作ったことないんだろうな
細かいことは後でいいから、さっさと作ってデバッグしろよ。
0062デフォルトの名無しさん
2015/06/11(木) 17:38:07.85ID:FmOUSr/Qそいつに言えよw
0063デフォルトの名無しさん
2015/06/11(木) 17:51:58.83ID:q/LkR2I6ここの連中も似たり寄ったりだよ
コンパイラがエラーをはかないソースは書けても、実用的なアプリケーションは作ったこと無い奴ばっか
0064デフォルトの名無しさん
2015/06/11(木) 20:06:41.37ID:mKFwr7Agラムダ式使ってるのは1個か2個くらいだよな
0065デフォルトの名無しさん
2015/06/11(木) 21:09:30.99ID:j+ThwGWi0066デフォルトの名無しさん
2015/06/11(木) 21:12:00.42ID:nlMbZwOh0067デフォルトの名無しさん
2015/06/12(金) 00:23:34.61ID:zV6gKt9+その1000個のうち、C++11が承認された2011年9月以降に作成されたライブラリの数を示したらどうだ?低能
0068デフォルトの名無しさん
2015/06/12(金) 01:27:00.88ID:ai38sP/Nその情報の有益性って何?
0069デフォルトの名無しさん
2015/06/12(金) 08:21:42.11ID:K1SJqQ2pラムダ使えない時代の奴混ぜてもしょうがないでしょってことだろ
0070デフォルトの名無しさん
2015/06/12(金) 08:22:37.76ID:yngeaFwE0071デフォルトの名無しさん
2015/06/12(金) 08:41:31.87ID:Qvm3BcbJ0072デフォルトの名無しさん
2015/06/12(金) 09:47:57.36ID:kSQ7fCIM2011年9月まで使えない時代で
2011年9月から使える時代になった
というわけじゃないだろ
0073デフォルトの名無しさん
2015/06/12(金) 11:30:31.65ID:EWXbILw8ラムダ使えない時代に生まれたライブラリでも
ラムダ使えるようになって以後にバージョンアップされてりゃ排除しなくていいのでは?
0074デフォルトの名無しさん
2015/06/12(金) 12:36:55.37ID:K1SJqQ2pならいつがいいの?
よりいい範囲があるなら教えてくれよ。
>>73
最終更新日がわかるならその方がいいかもしれない。
ただ、ラムダ無しで作ってるものをラムダが使えるようになったからと言って書き直さないと思うので作成日で区切るのもありだと思う。
0075デフォルトの名無しさん
2015/06/12(金) 18:24:45.89ID:ZnWobP75なんで範囲を絞る必要があるの?
現在アクティブなオープンソースのライブラリプロジェクトを1000個かき集めて
そのうちラムダ式使ってるのは何個あるのか数えてみるだけの話でしょ?
0076デフォルトの名無しさん
2015/06/12(金) 18:28:19.92ID:ZnWobP75> ラムダ無しで作ってるものをラムダが使えるようになったからと言って書き直さない
え?どうして?
0077デフォルトの名無しさん
2015/06/12(金) 18:30:32.32ID:gaMby9Jaたとえば2012年以降はメッセージの修正しかしてないものが
>>43の根拠として「ラムダが使えるのに使っていない」にカウントされたらそれは不適切
0078デフォルトの名無しさん
2015/06/12(金) 18:36:55.42ID:1Z1vAYw+全然違う話題の43なんか持ち出して話を混ぜんなよWW
0079デフォルトの名無しさん
2015/06/12(金) 18:42:25.76ID:R5Ka64Bkまず事実を測定してみないか?
まず測定を終えてからどうこう思考してみようよ
「どうあってほしい」から始まって
「カウントしてほしくないものをカウントしないためにはどういう条件で排除すればいいか」
の議論を延々続けて測定の着手をさせない努力をするのは
技術の分野ではなく宗教の分野のようだよ
0080デフォルトの名無しさん
2015/06/12(金) 19:01:09.87ID:j1SWbXbSB「Nの数を根拠にすることはおかしくね?
C「まず数えてから考えてみよう
実際に数えずに語るのは宗教
Cは話を逸らすだけの詭弁野郎wwww
0081デフォルトの名無しさん
2015/06/12(金) 19:12:36.50ID:IV7PJrm5「千個中何個か発見した」という結果が出ても何の根拠にも使えない
つうか、全然違う話でしょ
0082デフォルトの名無しさん
2015/06/12(金) 19:13:47.98ID:3MbxbYsxAに該当するレスはこの場に存在してない
0083デフォルトの名無しさん
2015/06/12(金) 19:15:30.46ID:ipNXiW4b> A「Nの数が少ないからXである
この「Xである」の話はひとつも出てなくね?
0084デフォルトの名無しさん
2015/06/12(金) 19:17:48.06ID:ipNXiW4b> B「Nの数を根拠にすることはおかしくね?
誰も根拠にするなんて言ってないのに、妄想の人が根拠にするなと騒いでるだけだよ
0085デフォルトの名無しさん
2015/06/12(金) 19:20:25.51ID:zGKuJ7ry数えずに語るのが宗教だなんて話は出てませんぜ
0086デフォルトの名無しさん
2015/06/12(金) 19:33:46.57ID:7kWsK557>>69 とか >>71 を読んで理解できないなら、話に無理に加わらない方がいいと思う。
>>76
大抵のプログラマは動いているものをいちいち書き直すほど暇じゃない。
>>77
正確でないのは承知してるので、いちいち反例をあげる必要はないよ。
そもそもその件は >>74 の後半に書いてある。
>>79
よろしくお願いします。
0087デフォルトの名無しさん
2015/06/12(金) 19:50:48.65ID:YprfgWl4そんな統計とって何の足しになるんだか
ラムダ使ったほうが効果的なところでは迷わず使えよ
汎用性がなく一箇所でしか使われないコードとか
0088デフォルトの名無しさん
2015/06/12(金) 20:20:51.03ID:mNJlRwVfラムダ使わずに作ったものは後からラムダ使うように改造しないという信念があるの?
その考え方は驚きの初耳なんだけど
0089デフォルトの名無しさん
2015/06/12(金) 20:24:02.64ID:yngeaFwEこのXである、がない
あるいは個々人の考えで補完されてるまま話が続こうとするから
Bの主張が正しいかどうか判別できない
1000個あるライブラリからラムダ式を使っているのは2つくらい
ここから言えることは何か?
0090デフォルトの名無しさん
2015/06/12(金) 20:53:20.65ID:KoeeUimc予想以上に存在しないのかもな。
0091デフォルトの名無しさん
2015/06/12(金) 21:02:34.04ID:1Z1vAYw+C99じゃなくC89前提で書かれてるもんな
0092デフォルトの名無しさん
2015/06/12(金) 21:23:54.99ID:K0LPTxas全員が全員最新の環境ならもっとガンガン使えるかな
0093デフォルトの名無しさん
2015/06/12(金) 22:50:44.08ID:7kWsK557特段改造の必要もないけど、ラムダ使える〜って、ラムダ使うように手直しするって?
ほとんど病気だぞ、それ w
0094デフォルトの名無しさん
2015/06/12(金) 23:04:03.99ID:Kc7Sj0Rn0095デフォルトの名無しさん
2015/06/13(土) 01:23:42.99ID:05Jv17Sn脅迫性障害って奴な
楽しい人は別
0096デフォルトの名無しさん
2015/06/13(土) 01:28:33.38ID:ZgdEQxJ32000年以前に作ったライブラリを最近片っ端に改造して
ラムダ式を与えるためのメソッド足して遊んでますけど
みんなそうやって楽しくやってるんじゃないんですか?
0097デフォルトの名無しさん
2015/06/13(土) 01:35:16.38ID:xzoa8IB+0098デフォルトの名無しさん
2015/06/13(土) 01:37:21.89ID:oLptQlzpラムダ無しで作ってるものをラムダが使えるようになったからと言って
わざわざ書き直してラムダ対応する馬鹿は病気じゃないの?
そんなことして何の役にも立たないのに何を無意味なことをしてるの?
0099デフォルトの名無しさん
2015/06/13(土) 01:39:55.45ID:05Jv17Sn0100デフォルトの名無しさん
2015/06/13(土) 01:44:56.34ID:ydZkeZWj0101デフォルトの名無しさん
2015/06/13(土) 01:47:07.38ID:QoUgxLhC0102デフォルトの名無しさん
2015/06/13(土) 01:50:03.96ID:vAcEoMEzC++11正式化以降に作られたライブラリもC++03対応を重視してるぞ
0103デフォルトの名無しさん
2015/06/13(土) 01:55:35.98ID:rgUmKvjC0104デフォルトの名無しさん
2015/06/13(土) 02:09:39.03ID:N7uXhOC6業務で作るソフトとは状況が違う
古いコンパイラに対応する必要がない状況でラムダを避けるのはバカ
0105デフォルトの名無しさん
2015/06/13(土) 04:22:59.36ID:Ito4e+Ww・自作テンプレートの禁止
・例外禁止
・環境はgcc 3.3
・変数は使い終わったらcloseを呼び出してヌルを入れること
0106デフォルトの名無しさん
2015/06/13(土) 09:19:55.15ID:VPkV4eHUおじいちゃん
それはヌルではなくてナルというんですよ
0107デフォルトの名無しさん
2015/06/13(土) 09:26:05.97ID:FQeTzdta0108デフォルトの名無しさん
2015/06/13(土) 09:38:57.75ID:jEfwhpow0109デフォルトの名無しさん
2015/06/13(土) 09:43:02.98ID:XtyRFZm/jap char は使っても良いのですか?
0110デフォルトの名無しさん
2015/06/13(土) 09:55:10.15ID:lYkKpzwR> 大抵のプログラマは動いているものをいちいち書き直すほど暇じゃない。
2chに張り付きっぱなしの暇人のくせに
0111デフォルトの名無しさん
2015/06/13(土) 10:03:20.15ID:y/hrQw57「ラムダ無しで作ってるものをラムダが使えるようになったからと言って書き直さない
「大抵のプログラマは動いているものをいちいち書き直すほど暇じゃない
「わざわざ書き直してラムダ対応する馬鹿は病気
0112デフォルトの名無しさん
2015/06/13(土) 10:03:34.93ID:M8zBZxSF自己紹介乙
0113デフォルトの名無しさん
2015/06/13(土) 12:33:25.81ID:Sm9/2l6c「自己紹介乙」とは言い返すボキャブラリーに貧した者が使う常套句
つまり「自己紹介乙」と言った時点で負けを認めた事を意味する
0114デフォルトの名無しさん
2015/06/13(土) 13:17:15.82ID:oZyolcMH生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0115デフォルトの名無しさん
2015/06/13(土) 13:54:04.80ID:jEfwhpow仲良くしろよ
0116デフォルトの名無しさん
2015/06/13(土) 13:57:08.64ID:+HguQo6y本気になっちゃうのも仕方ないね
0117デフォルトの名無しさん
2015/06/13(土) 14:00:37.39ID:l7rw4EeF0118デフォルトの名無しさん
2015/06/13(土) 14:48:45.77ID:HgxUgyeKメリットなくても出来上がってるプログラムにラムダ付け足してみたりするだろ
0119デフォルトの名無しさん
2015/06/13(土) 14:56:37.53ID:QxSJZHwkというか言い争ってるのはここらへんの認識の違いじゃないか?
0120デフォルトの名無しさん
2015/06/13(土) 15:24:55.37ID:kjnaZNV9gcc 5.1.0 では-O3でもちゃんと 1 と表示されるな
というか-O3にすると
mov $0x1,%edx
lea 0x184b(%rip),%rcx
callq 0x4077a0 <printf(char const*, ...)>
になってしまってラムダ式そのものが無くなってしまった
0121デフォルトの名無しさん
2015/06/13(土) 15:28:28.18ID:RP8pqgiN0122デフォルトの名無しさん
2015/06/13(土) 15:41:52.80ID:19wKs4Az0123デフォルトの名無しさん
2015/06/13(土) 15:44:54.66ID:xzoa8IB+0124デフォルトの名無しさん
2015/06/13(土) 15:51:01.56ID:kjnaZNV9movl $0x0,0x2c(%rsp)
mov $0x2c(%rsp),%eax
lea 0x1884(%rip),%rcx
add $0x1,%eax
mov %eax,0x2c(%rsp)
mov $0x2c(%rsp),%edx
callq 0x4077a0 <printf(char const*, ...)>
となるんでインライン展開してるだけだね
0125デフォルトの名無しさん
2015/06/13(土) 15:52:31.01ID:tR5e1Ncp0126デフォルトの名無しさん
2015/06/13(土) 16:58:17.52ID:N7uXhOC6使ったほうが良い場面ではつべこべ言わずに使え
0127デフォルトの名無しさん
2015/06/13(土) 17:39:58.10ID:19wKs4Az0128デフォルトの名無しさん
2015/06/13(土) 17:51:15.73ID:MHptqojwstd::thread t1
{
[&]
{
// 関数なんか使ってられるか
}
};
0129デフォルトの名無しさん
2015/06/13(土) 18:23:54.45ID:xv1nvRDbよくもそんな危険なコードを書けるな
0130デフォルトの名無しさん
2015/06/13(土) 19:48:03.77ID:XbA3H8fd0131デフォルトの名無しさん
2015/06/13(土) 19:52:53.05ID:hEJgokp/話を反らしてまでラムダが面倒ということにしたいの?
0132デフォルトの名無しさん
2015/06/13(土) 20:09:13.86ID:jKGoCo7LC++ のラムダってYコンビネータとか記述できますか?
0133デフォルトの名無しさん
2015/06/13(土) 20:20:15.07ID:qOZIdXyk0134デフォルトの名無しさん
2015/06/13(土) 20:21:20.65ID:jKGoCo7Lどんな感じになるのでしょう?
0135デフォルトの名無しさん
2015/06/14(日) 15:59:32.13ID:HbVleRJY三度の飯よりプログラミングが好きだから、過去のコード書き直すなんてつまらんことするより新しいコードを書くわ
もちろん新しいコードはラムダ使いまくるが w
0136デフォルトの名無しさん
2015/06/14(日) 16:53:17.20ID:W5WL6w7T>新しいコードはラムダ使いまくる
不動点コンビネータの記述もできないラムダ式を「ラムダ式」と呼んでいるのか?
本当に三度の飯より好きなのか?
0137デフォルトの名無しさん
2015/06/14(日) 18:18:38.82ID:BSAkVjAb0138デフォルトの名無しさん
2015/06/14(日) 18:31:07.63ID:W5WL6w7T0139デフォルトの名無しさん
2015/06/14(日) 18:57:37.81ID:SSUUjgo5「機能Aを使うことで改善が期待できるか」に基づいて考えるからね。
「この言語の機能Aが他の言語と比べて同等か」
なんて他言語信者の思考はどうでもいい
0140デフォルトの名無しさん
2015/06/14(日) 19:04:59.17ID:HbVleRJY「不動点コンビネータ知ってる俺スゲー」君だろ w
スルーでいいと思う
0141デフォルトの名無しさん
2015/06/14(日) 19:11:34.44ID:W5WL6w7TLisp のラムダ式がついに来たかと期待したんだが羊頭狗肉なんだね‥
いいよ普通に関数オブジェクトで書いとくし
0142デフォルトの名無しさん
2015/06/14(日) 19:21:31.05ID:VXo/YF5W0143デフォルトの名無しさん
2015/06/14(日) 19:44:45.38ID:W5WL6w7T0144デフォルトの名無しさん
2015/06/14(日) 19:47:48.73ID:iglu1H/10145デフォルトの名無しさん
2015/06/14(日) 19:50:52.89ID:TW+i3CDs0146デフォルトの名無しさん
2015/06/14(日) 20:01:27.64ID:W5WL6w7T普通にメンバテンプレートを書けばすむ話
ラムダ式なんて,一行がずんだらに長くなるだけで大して可読性がよくなるわけじゃないんだよね…
0147デフォルトの名無しさん
2015/06/14(日) 20:13:10.23ID:TW+i3CDsラムダ式で1行が長くなる?
一体何を言ってるんだこいつは…
0148デフォルトの名無しさん
2015/06/14(日) 21:30:40.12ID:HAKGVyNPたぶんラムダ式は消える(キリッ
うわぁ……
0149デフォルトの名無しさん
2015/06/14(日) 23:09:03.21ID:iOV4RdOh0150デフォルトの名無しさん
2015/06/14(日) 23:14:22.91ID:W5WL6w7Tそれはさすがに調査不足‥>>143 としてもそこまでは面倒はみきれない
0151デフォルトの名無しさん
2015/06/14(日) 23:24:49.25ID:O54UAv06使いたくない人は使わなきゃいいだけ
C++はそれを許してくれるよ
やったね!
0152デフォルトの名無しさん
2015/06/14(日) 23:33:03.56ID:lodH31Twauto_ptrはそれか
0153デフォルトの名無しさん
2015/06/14(日) 23:38:08.23ID:ocyd5wvL0154デフォルトの名無しさん
2015/06/14(日) 23:38:13.43ID:W5WL6w7T0155デフォルトの名無しさん
2015/06/14(日) 23:38:43.86ID:RXXsbARc0156デフォルトの名無しさん
2015/06/14(日) 23:41:46.35ID:+tOeM05v0157デフォルトの名無しさん
2015/06/15(月) 01:51:36.58ID:SEa1N02vその関数の中身が*a=*a+*b;*b=*a-*b;*a=*a-*b;
である場合、起きうる問題って何がある?*a+*bのアドレスに既に別のが割当られてるかもしれない?と思ったけどよくわからない
0158デフォルトの名無しさん
2015/06/15(月) 01:54:13.67ID:DRt4UXNja = bの場合*a = 0が必ず返ってくる(a = bの場合変化しないことを期待されるかもしれない)
0159デフォルトの名無しさん
2015/06/15(月) 01:55:09.83ID:DRt4UXNj0160デフォルトの名無しさん
2015/06/15(月) 02:13:48.45ID:SEa1N02vおお、こんなに早く……ありがとう
ちなみにtmpとか別の変数使わずにそれらを回避する方法ってある?
0161デフォルトの名無しさん
2015/06/15(月) 02:23:36.32ID:Wlj6ZCex0162デフォルトの名無しさん
2015/06/15(月) 02:25:47.57ID:Wlj6ZCex0163デフォルトの名無しさん
2015/06/15(月) 11:34:57.01ID:/ZXirDuWstring tmp1 = "+D0mH`7R@Cux[{lPbwcTD;'pTkXY#1@";
string tmp2;
tmp2 = tmp1.at(1) + tmp1.at(3) + tmp1.at(5) + tmp1.at(7);
cout << tmp2 << endl;
}
実行結果
c
なぜ・・
0164デフォルトの名無しさん
2015/06/15(月) 12:32:08.80ID:a384H5JL0165デフォルトの名無しさん
2015/06/15(月) 12:54:45.60ID:1FZGsYFn0166デフォルトの名無しさん
2015/06/15(月) 12:59:43.32ID:/ZXirDuWそういうことか!騙された!
0167デフォルトの名無しさん
2015/06/15(月) 17:27:49.20ID:T7wqdyuw0168デフォルトの名無しさん
2015/06/15(月) 17:34:24.36ID:HDA/Cn6Gってやれば string の + が呼ばれるんでないかい。
0169デフォルトの名無しさん
2015/06/15(月) 17:34:30.41ID:T7wqdyuwtmp2 = tmp2 + tmp[1] + tmp1[3]+ ・・・
というやり方しか思いつかないです。もっとスマートな方法が・・・
0170デフォルトの名無しさん
2015/06/15(月) 17:35:19.62ID:T7wqdyuwやっぱそうするしかないですかね・・・
0171デフォルトの名無しさん
2015/06/15(月) 19:10:29.52ID:vjf9P8uPstring tmp2{tmp1.at(1),tmp1.at(3),tmp1.at(5),tmp1.at(7)};
0172デフォルトの名無しさん
2015/06/15(月) 21:39:29.41ID:INXnVK+j0173デフォルトの名無しさん
2015/06/16(火) 04:07:26.81ID:yD3ZQl9W_CRTIMP2 _declspec(noreturn) void _Xbad_alloc()
がどこで実装されてるか教えてください……
STL写経が捗りません……
0174デフォルトの名無しさん
2015/06/16(火) 04:27:33.26ID:/0ZadraV0175デフォルトの名無しさん
2015/06/16(火) 06:54:16.03ID:a66PPdJo0176デフォルトの名無しさん
2015/06/16(火) 07:10:54.68ID:WwZ8EXS40177デフォルトの名無しさん
2015/06/16(火) 07:41:18.94ID:fgRQky170178デフォルトの名無しさん
2015/06/16(火) 07:43:16.73ID:N++hQ/DI元の値って保持されるんだっけ?
0179デフォルトの名無しさん
2015/06/16(火) 08:24:27.46ID:fgRQky17厳密にはされない
ISO/IEC 14882:2014 23.3.6.3節 段落14
If an exception is thrown other than by the move constructor of a non-CopyInsertable T there are no effects.
この回りくどい珍妙な言い回しは
・ムーブコンストラクタの有無を見て(安全になるよう)うまいことやれ
・ただしムーブコンストラクタが例外を出すアホは相手にしなくていい
ということを言っている
0180デフォルトの名無しさん
2015/06/16(火) 09:53:24.51ID:N++hQ/DIあざっす
単なる値の羅列の構造体は気にしなくていいみたいですね
0181デフォルトの名無しさん
2015/06/16(火) 10:31:23.08ID:flrqwRAg> 単なる値の羅列の構造体
とは、こういうこと?
template<typename T,size_t N>
struct SimpleArrayStructure {
T values[N];
};
0182デフォルトの名無しさん
2015/06/16(火) 10:35:02.85ID:N++hQ/DI0183デフォルトの名無しさん
2015/06/16(火) 11:57:14.78ID:X0o7CvN3なるほどな
0184デフォルトの名無しさん
2015/06/16(火) 18:39:24.72ID:yD3ZQl9W両方ためしてみます、ありがとう!
STL写経は単純に勉強のためですよ。STLの中身も知らずしてC++使いと言えるのかと思いまして。
0185デフォルトの名無しさん
2015/06/16(火) 18:49:47.13ID:w7JH+znBそんなものより標準ライブラリを学んだ方がいい
0186デフォルトの名無しさん
2015/06/16(火) 19:26:15.14ID:lGDFdcrw0187デフォルトの名無しさん
2015/06/16(火) 20:18:35.26ID:lyjS/LrbBjarne何それ凄い本なの?
規格に書いてなかったら存在しないに決まってんだろ
STLは固有名詞だぞ
むしろ存在するという根拠がその何とかだけ哀れプ
0188デフォルトの名無しさん
2015/06/16(火) 21:18:31.53ID:GK8aqbnd俺からしたら目くそ鼻くそなんだからさ
0189デフォルトの名無しさん
2015/06/16(火) 21:37:58.87ID:lLEFDpN40190デフォルトの名無しさん
2015/06/16(火) 21:48:16.00ID:XBYuHCiX0191デフォルトの名無しさん
2015/06/16(火) 21:50:47.25ID:tGx4Deufウンコを食するのはチョンだけだからうぬぼれるな
0192デフォルトの名無しさん
2015/06/16(火) 22:13:24.54ID:a66PPdJo0193デフォルトの名無しさん
2015/06/16(火) 22:22:13.05ID:Wlz7LxtVちなみにC++より先にSTLの(計画)が存在していてada言語なんかで実装されていたが、
C++がSTLを実装できるように言語整備してくれることになってC++に乗り換えたようだが。
最近の新機能は別として、STLの実装はC++の根幹と強く関わっている。
0194デフォルトの名無しさん
2015/06/16(火) 23:00:38.11ID:RvppK8J/switchでシコシコ書いとけ
0195デフォルトの名無しさん
2015/06/17(水) 01:02:46.42ID:Rr/faFkhdumpbinで定義場所がわかったのですが、リバースエンジニアリングの文献あさってたら不安になってきました。
0196デフォルトの名無しさん
2015/06/17(水) 01:13:12.91ID:fwpnML0y0197デフォルトの名無しさん
2015/06/17(水) 07:47:03.15ID:XzA4s7ugただし、その成果の利用は著作権や特許権の侵害になる可能性がある。
0198デフォルトの名無しさん
2015/06/17(水) 08:28:40.34ID:nLVEpHHv利用許諾の内容による
0199デフォルトの名無しさん
2015/06/17(水) 08:30:02.84ID:m8tZeVT50200デフォルトの名無しさん
2015/06/17(水) 09:19:44.98ID:1fuhRo8qシミュレーションなどを行う時に
・シミュレーション全体の処理を行うクラスをClassA
・シミュレーションで扱う一つの要素をClassB
としたとき、ClassAがClassBのインスタンスを所有するのが妥当と思ったのですが
ClassBのインスタンスが別のClassBのインスタンスの情報を取得したい場合にはどうしたら良いでしょうか
0201デフォルトの名無しさん
2015/06/17(水) 09:20:50.28ID:fwpnML0y0202デフォルトの名無しさん
2015/06/17(水) 09:32:58.65ID:z8bMCcaAweakでなくてもいいけど
0203デフォルトの名無しさん
2015/06/17(水) 09:41:17.80ID:TAhSydYNとくにC++は言語仕様的に外部オブジェクトの生存保証されないし
0204デフォルトの名無しさん
2015/06/17(水) 12:33:37.15ID:301WTulA「お前が盗用してないかを確かめるために俺にはリバ(ryする権利がある」
という主張がある
0205デフォルトの名無しさん
2015/06/17(水) 13:22:43.92ID:J4GCOmLO0206デフォルトの名無しさん
2015/06/17(水) 13:45:47.07ID:YyzkFynf0207デフォルトの名無しさん
2015/06/17(水) 19:36:26.34ID:2rbkWFjf0208デフォルトの名無しさん
2015/06/17(水) 21:33:49.99ID:LUerVH9fそれを打ち込めば嫌でも覚える
0209デフォルトの名無しさん
2015/06/17(水) 23:28:20.14ID:JpEvga0Qもちろん利用許諾は法律ではない
ただ利用許諾に合意した上で使用しておきながら利用許諾に違反することは法律的にアウト
0210デフォルトの名無しさん
2015/06/17(水) 23:50:45.31ID:Ktj7spujだとvectorが所有しているTypeのポインタが変更されない保証はしますがポインタが指す内容をconstするにはどうしたら良いでしょうか
0211デフォルトの名無しさん
2015/06/18(木) 00:28:40.47ID:S7MXVj3efunc(const std::vector<const Type*>& data)
0212デフォルトの名無しさん
2015/06/18(木) 00:29:35.45ID:8E4hSzpF0213デフォルトの名無しさん
2015/06/18(木) 00:39:57.75ID:emWLg+djありがとうございます
そこにもconst指定出来るのを知りませんでした
0214デフォルトの名無しさん
2015/06/18(木) 01:16:09.08ID:pxg0AGV7利用許諾とか法律的にとか言いながら、最後は「アウト」かよ。
「アウト」ってどういう状態なんだよ。
0215デフォルトの名無しさん
2015/06/18(木) 01:18:22.49ID:pxg0AGV7ついでに、なんと言う法律の第何条で「アウト」なんだ?
0216デフォルトの名無しさん
2015/06/18(木) 05:57:00.60ID:4nFQxAQO利用許諾自体がグレーだって事もある
0217デフォルトの名無しさん
2015/06/18(木) 06:08:53.36ID:DCGka9LV0218デフォルトの名無しさん
2015/06/18(木) 10:30:49.87ID:GO7pZsHO特許技術は公開技術
リバースエンジニアリングをしないと知ることができない非公開技術は特許の保護を受けられない
0219デフォルトの名無しさん
2015/06/18(木) 11:49:59.30ID:pxg0AGV7利用している特許を公開する義務はない。
特許侵害で訴えられてる奴は「誰それの特許使ってます」と公開してたから訴えられたとでも言いたいのだろうか?
頭悪すぎるぞ。
0220デフォルトの名無しさん
2015/06/18(木) 11:51:47.50ID:8GBJ818p次の話題でるまで傍観やな
0221デフォルトの名無しさん
2015/06/18(木) 12:23:41.86ID:4nFQxAQO利用している特許を公開って言ってるように見えるのか・・・
0222デフォルトの名無しさん
2015/06/18(木) 12:33:31.12ID:+t+nHn0Jその前の二つも頭悪いの丸わかりなコメントだから相手にしなくていい
0223デフォルトの名無しさん
2015/06/18(木) 12:40:33.52ID:l5ecBeAY特許を申請して認められるためにはその技術を丸ごと公開しなければならないという話なんだけどね。
リバースエンジニアリングしなければ見つけられないような隠している技術は特許として認めてくれないんだけど
そういうことをまだ勉強してない年齢なのかな?
0224デフォルトの名無しさん
2015/06/18(木) 13:20:22.41ID:Uqe2tLhjガキみたいな喧嘩
0225デフォルトの名無しさん
2015/06/18(木) 13:22:23.54ID:4nFQxAQO0226デフォルトの名無しさん
2015/06/18(木) 13:32:48.13ID:dz4KgSgw当人がどうでもいいと思われてることに気がついて、やめてほしいんだろう
0227デフォルトの名無しさん
2015/06/18(木) 13:34:24.46ID:EWYficgP0228デフォルトの名無しさん
2015/06/18(木) 14:44:25.34ID:D1v6en8Z__debugbreak()という組み込み関数が用意されているのですが
gccにも同じような関数はあるでしょうか?
0229デフォルトの名無しさん
2015/06/18(木) 15:10:36.84ID:pxg0AGV7特許の申請と実施は全く別物だ。
侵害してる事実の立証のためにリバースエンジニアリングする場合もある。
そんなに頭悪いと生きていくの大変だろ。バカだからそれすら自覚できないのか。
0230デフォルトの名無しさん
2015/06/18(木) 15:53:54.07ID:dz4KgSgwあると思うけど、、とりあえず
asm ("int3");
でどうなる?
0231デフォルトの名無しさん
2015/06/18(木) 18:16:01.53ID:Y3/N3mbvお前がせこせこ書いてる話題がどうでもいいってことだろ。アスペかよw
0232デフォルトの名無しさん
2015/06/18(木) 18:20:35.66ID:oM2PY3Rb0233デフォルトの名無しさん
2015/06/18(木) 18:24:32.90ID:MEqdcl1Jそいつと同じ臭いがする。
0234デフォルトの名無しさん
2015/06/18(木) 18:29:26.63ID:b0+O/L2f質問なんですが、visual C++2013のcrt中、xmemory0で、::operator new(size * sizeof(type))って文を使ったアロケータ、_Allocate(size_t, _Ty)があります。
これは、new[]でないとdelete[]が動作しないと思うので、配列確保は意図していないアロケータだと予想したのですが、コメントには「カウント分の配列をアロケート」とある処理で呼び出され、_countが渡されています。
::operator newは配列にも問題なしで使えるものだったのでしょうか、それともvisual C++特有で可能なのでしょうか。
※ MSDNの::operator new関数項は参考になりませんでした。
0235デフォルトの名無しさん
2015/06/18(木) 18:58:57.78ID:8GBJ818p2番目はどうでもいいが1番目がどういう奴か気になるw
0236デフォルトの名無しさん
2015/06/18(木) 21:20:05.51ID:dSLi8a8Rwikipediaを見るとサポートする言語としてPHP、Rubyなどが挙げられ、実際ググるとこれらの言語のページがよく見つかるのですが、
これらの言語特有の機能というわけではなくて、一種の考え方というか方法論と思ったのですが、合ってるでしょうか?
(C++のコードでもよくtraitウンヌンという名のクラスや関数を目にします)
あと、これはスレチかもしれませんが、この辺も含めて学習するのに適した書籍がありましたら教えてください。
0237デフォルトの名無しさん
2015/06/18(木) 21:58:58.36ID:pxg0AGV70238デフォルトの名無しさん
2015/06/18(木) 22:03:10.28ID:6XTUSAzX0239デフォルトの名無しさん
2015/06/18(木) 22:57:07.51ID:07+WSBTeイメージが欲しいだけならstd::stringのソースを読んでください
0240デフォルトの名無しさん
2015/06/18(木) 23:31:52.10ID:rU9GRM1c0241デフォルトの名無しさん
2015/06/18(木) 23:32:21.15ID:20ArJ1BM0242デフォルトの名無しさん
2015/06/19(金) 00:01:44.54ID:i9GZa/610243デフォルトの名無しさん
2015/06/19(金) 07:12:21.98ID:P4SCySD/ん?同一人物視してる?糖質?
0244デフォルトの名無しさん
2015/06/19(金) 08:27:57.72ID:rAG6nPHK絡むの好きだねえ
0245228
2015/06/19(金) 09:59:33.39ID:WpsaewOpそれだとUnrecognized opcode: `int3'という
コンパイルエラーが発生してしまいましたが
ググってたら__builtin_trapという関数が見つかりました。
0246デフォルトの名無しさん
2015/06/19(金) 10:22:25.16ID:79sHcd8Tつ Modern C++ Design
0247236
2015/06/19(金) 10:51:56.03ID:W25LiItWModern C++ Designとか有名所の書籍をもっと読もうと思います
ありがとうございました
0248デフォルトの名無しさん
2015/06/19(金) 11:52:23.32ID:7q0J1L8t0249デフォルトの名無しさん
2015/06/19(金) 20:09:34.67ID:pabjvoWo0250デフォルトの名無しさん
2015/06/20(土) 11:05:57.00ID:PKKtbZWy0251デフォルトの名無しさん
2015/06/20(土) 11:10:33.63ID:x1pBWz9uちょっと考えれば分かりそうなものだが
0252デフォルトの名無しさん
2015/06/20(土) 11:12:12.24ID:PKKtbZWyメモリ確保が行われると思うんですが
この時特定のポインタを指定するスレッドセーフな方法ってありますか?
0253デフォルトの名無しさん
2015/06/20(土) 11:24:50.70ID:PKKtbZWyこれの具体的な使い方ってわかります?
0254デフォルトの名無しさん
2015/06/20(土) 11:41:56.88ID:C7h5NlrH先頭要素を指定アドレスに配置したいならコンテナーを自作するしかない
0255デフォルトの名無しさん
2015/06/20(土) 11:45:41.45ID:PKKtbZWy0256デフォルトの名無しさん
2015/06/20(土) 13:09:32.75ID:aEgncsrl0257デフォルトの名無しさん
2015/06/20(土) 13:13:02.23ID:k+RF+9l2ちゃんとデストラクタ呼び出してからdeleteしてるから大丈夫
0258デフォルトの名無しさん
2015/06/20(土) 16:01:12.61ID:aEgncsrlどの処理の話でしょうか?
void allocator::destroy(_Ty*)でしたら、自分は配置newしてるvoid allocator::construct関連用の関数だとおもいます(だから関係ない話だとおもいます)。
::operator deleteの話でしたらごめんなさい。その場合は1つ、質問があるのですが、
「デストラクタを呼び出してるから大丈夫」
とは、_count要素個分のデストラクタを呼び出してるということですよね?すると今度はdelete[]が謎ですね……
見た感じ、new[]はRTCCALLBACKというマクロ(定義が別にあるみたいで詳細不明)でnewのサイズを記憶しているみたいなのですが。
0259デフォルトの名無しさん
2015/06/20(土) 16:22:36.18ID:WCJ0snsI0260デフォルトの名無しさん
2015/06/20(土) 16:29:42.91ID:f7mGspD+個別にデストラクタ呼んでdeleteすりゃ大丈夫ってだけ
new[]もdelete[]も上と同じことしてるだけだ
0261デフォルトの名無しさん
2015/06/20(土) 16:46:12.46ID:aEgncsrl「配列確保と書いてある処理に、::operator new[]()ではなく、::operator new()を使ってメモリ確保してるのは大丈夫なんでしょうか」
ということなんです。そして、疑問に思った理由は、new[]の方は、いま提示してくださった、
「個別にデストラクタ呼んで〜」を実現するために、確保したメモリの近くにこっそり、N * sizeof(type)の N を記憶配置する処理が、newに加わったものと聞いているからです。
delete[]は、この N の書かれたメモリを読んできちんとデストラクタを呼ぶはずです。
そして今newaop.cppを読んでいるのですが、
void operator new[](size_t)
はどうやら、operator new()に処理を丸投げしてるようです。
なので、言語仕様に沿うためにnew[]を作っただけで、実はマイクロソフトのnew()は万能かもしれないという予想ができました。
0262デフォルトの名無しさん
2015/06/20(土) 16:57:03.03ID:f7mGspD+0263デフォルトの名無しさん
2015/06/20(土) 17:05:37.37ID:WCJ0snsI0264デフォルトの名無しさん
2015/06/20(土) 17:26:22.91ID:aEgncsrlnewとnew[]の違いが核なのに共通処理であるmallocよんでるとか、ちゃんとsizeof()ってかいてあるのにオブジェクトのサイズが違うとか的外れすぎます……
0265デフォルトの名無しさん
2015/06/20(土) 17:31:17.43ID:f7mGspD+マイクロソフトのnewが万能って何を勘違いしたらそんな考えに行きつくんだ
0266デフォルトの名無しさん
2015/06/20(土) 17:47:35.83ID:aEgncsrlもちろん、visual C++があるから回答されたんですよね?
0267デフォルトの名無しさん
2015/06/20(土) 18:39:23.69ID:+xZFlOkPおまえ頭悪いな。
例えるなら「operator newのソースを覗いたらmallocしてたんですけど
mallocとdeleteは互換性無いんでは?」
みたいな勘違い質問だ
0268デフォルトの名無しさん
2015/06/20(土) 19:35:08.24ID:WCJ0snsIあなたの理屈だとクラスが複数のメンバ変数持ってしまったらoperator newが使えなくなるんじゃないか?
ってことを>>263で遠回しに言ってみたんですが伝わらなかったようですね
0269デフォルトの名無しさん
2015/06/20(土) 19:36:45.20ID:RdU0NHX60270デフォルトの名無しさん
2015/06/20(土) 20:40:03.11ID:omTqKyyloperator newもoperator new[]もコンストラクタは呼ばない
引数で受け取ったメモリサイズを確保してるだけで違いは何もない
newはoperator newでメモリ確保してコンストラクタ呼び出し
new[]は配列数を保存するためのメモリも含めてoperator new[]でメモリ確保して配列数だけコンストラクタ呼び出し
0271デフォルトの名無しさん
2015/06/20(土) 20:51:25.30ID:aEgncsrlキーは演算子だったんですね……
ということは最初の質問も大丈夫なのか。
ありがとうございました。
0272デフォルトの名無しさん
2015/06/20(土) 21:09:01.76ID:KwPVj5b7charをmallocしてるだけならデストラクタなんて関係ないから変わらん
0273デフォルトの名無しさん
2015/06/20(土) 21:21:00.82ID:IffuO+cK0274デフォルトの名無しさん
2015/06/20(土) 21:42:39.32ID:u8g5xW9v0275デフォルトの名無しさん
2015/06/20(土) 22:19:06.72ID:boB6aoFy1-1. operator newでメモリ確保
1-2. コンストラクター呼び出し
2. new[]式のやること
2-1. operator new[]でメモリ確保 ★A
2-3. コンストラクター複数呼び出し
3.delete式のやること
3-1. デストラクター呼び出し
3-2. operator deleteでメモリ解放
4. delete[]式のやること
4-1. デストラクター複数呼び出し
4-2. operator delete[]でメモリ解放
★Aの処理を、1-1の処理を再利用
して呼び出すことに問題はない。
ただしその場合、3-2と4-2を同じ
にしておかないとおかしなことになる
0276デフォルトの名無しさん
2015/06/20(土) 22:19:31.11ID:e5DrvLw2スタックやヒープに置かれる場合、用意されたメモリは最初ゴミで埋まってますよね
コンストラクタで値を与えたり、代入したりして、初期化が完全に終わった後でも
他のスレッドからアクセスすると最初のゴミが見えてしまうことってありませんか
どこか(規約とか)で安全が担保されているんでしょうか
0277デフォルトの名無しさん
2015/06/20(土) 22:24:38.01ID:TpIghoYwvolatileと違って無いことになっている。
コンパイラーはそれが無いようにしなければならない。
実際になっているかどうかは知らん。
0278デフォルトの名無しさん
2015/06/20(土) 22:29:08.11ID:e5DrvLw2そういう風に考えておきます
ありがとうございました
0279デフォルトの名無しさん
2015/06/20(土) 23:45:56.39ID:TorvNocD共有するなら、クリチカルセクションで同期取って、
初期済かどうかも確認出来るようにしないと。
0280デフォルトの名無しさん
2015/06/21(日) 00:16:56.88ID:rdO67jBaメモリバリアもリオーダ抑制もしていなかった
大丈夫なんだろうか…
0281デフォルトの名無しさん
2015/06/21(日) 00:45:23.95ID:wi8ruPuE0282280
2015/06/21(日) 01:41:17.24ID:YN1udE9rintがロックフリーだったのか。失礼した
0283デフォルトの名無しさん
2015/06/21(日) 06:21:07.89ID:QGPUzNZz初期化してから他のスレッドから見えるようにすればいいだけ
0284デフォルトの名無しさん
2015/06/21(日) 09:41:37.24ID:qbGsUBw5そしたらなんかロックがめちゃくちゃ競合しててパフォーマンスが出ないんです。
で、変更履歴よく見たらなんか全メソッドを一つのmutexでロックして、マルチスレッドに対応した、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、単一mutexで囲うだけの対応如きでマルチスレッド対応とか言ってんじゃねーよ、ボケが。
単一mutexだよ、単一mutex。
なんかthreadを作りまくってる箇所もあるし。多重ループの内側でthread生成か。おめでてーな。
よーしデータを細分化してガンガン別スレッドで処理しちゃうぞー、とかやってるの。もう見てらんない。
お前らな、Fork/Joinフレームワークのスレッドプール実装やるからそれ使えと。
マルチスレッドってのはな、もっと殺伐としてるべきなんだよ。
Work-stealing dequeを持ったスレッド同士がいつタスクをstealしてもおかしくない、
盗むか盗まれるか、そんな雰囲気がいいんじゃねーか。Lock-freeじゃない奴は、すっこんでろ。
で、ようやくdata raceの箇所を見つけたかと思ったら、コメントに、gccの最適化でバグるのでvolatileを付ける、とか書いてるんです。
そこでまたぶち切れですよ。
あのな、volatileなんてC++のマルチスレッドプログラムじゃ意味ねーんだよ。ボケが。
得意げな顔して何が、最適化でバグる、だ。
お前は本当にメモリモデルを理解してるのかと問いたい。問い詰めたい。小1時間問い詰めたい。
バグってるのはお前のコードのほうちゃうんかと。
マルチスレッド通の俺から言わせてもらえば今、マルチスレッドプログラミングでの最新流行はやっぱり、
non seq_cst atomics、これだね。
非seq_cstなatomic変数 + seq_cst fence。これが通の作り方。
non seq_cst atomicsってのはatomic変数へのアクセスにmemory_order_seq_cstを指定しない。そん代わりオーバーヘッドが少なめ。これ。
で、それを補完する明示的なmemory_order_seq_cstメモリフェンス。これ最強。
しかしこれをやると次からHans Boehm先生にマークされるという危険も伴う、諸刃の剣。
素人でなくてもお薦め出来ない。
まあお前らド素人は、毎日 Good morning all! とでもつぶやいてなさいってこった。
0285デフォルトの名無しさん
2015/06/21(日) 09:56:28.22ID:/g9T8vHw0286デフォルトの名無しさん
2015/06/21(日) 10:18:13.21ID:tbpMdeltstd::atomic<T>はコヒーレンスの制御したとして
コンパイラの出力するコードの再オーダリング抑制までしてくれたっけ?
a1 = 1;
a2 = 2;
この順序が入れ替わったらコンシステンシーが保てなくなる
0287デフォルトの名無しさん
2015/06/21(日) 11:06:51.76ID:faNvk/Nnint main (void){
int a=0,b=0;
scanf ("%d",&a);
scanf ("%d",&b);
If ( a==b ) printf ("2つの数値はおなじです\n");
else if ( a>b) printf("一つ目のほうが大きいね\n");
else printf("2つ目のほうが大きいね\n");
return 0;
}
というプログラムなんですが2つめのscanfが入力待ちになりません
0288デフォルトの名無しさん
2015/06/21(日) 11:24:44.25ID:0VYCqu5Yその時の改行コードを無視しているから、2行目の入力として読み込まれてしまってる
確かこんな指定で読み飛ばせたはず。詳しくは、scanf 改行 でぐぐってみて。
scanf("%d%*c",&a)
0289デフォルトの名無しさん
2015/06/21(日) 14:34:48.43ID:GXl3ve4yでてきなかったっけ?
「\n」が任意の空白を読み飛ばしたような記憶がある
0290デフォルトの名無しさん
2015/06/21(日) 14:47:09.64ID:i/7Q1J4R例えば↓みたいなコードで、ptrとaddrが直接使えたらいいんですが。
union {
int* ptr;
intptr_t addr;
} const u = {new int(100)};
0291デフォルトの名無しさん
2015/06/21(日) 14:53:54.65ID:6fYaRm3Qそうだったのか
scanf2回連続で使った事はなかったなぁ。
0292デフォルトの名無しさん
2015/06/21(日) 15:20:52.36ID:1IBkKjPWコンパイルできてるか?
if は二文字とも小文字,一行目は #include と # が必要
その修正をほどこしたうえで,
手元の環境(windows7/cygwin/gcc4.8.3) ではうまくいく
>>288
それは %c のときの問題,%d では改行は自力で読み飛ばすはず
0293デフォルトの名無しさん
2015/06/21(日) 16:18:28.16ID:6fYaRm3Qgetsで取ってからほげほげみたいな。
最近はcinばっかだし。
0294デフォルトの名無しさん
2015/06/21(日) 16:24:30.89ID:/g9T8vHw内心cin使いたいねんボケー
0295デフォルトの名無しさん
2015/06/21(日) 16:41:03.46ID:rQEeY9TQfgetsでとってからstrtol
0296デフォルトの名無しさん
2015/06/21(日) 16:54:02.91ID:1IBkKjPWgets() はC11やC++14 では廃止された,仕様に致命的な脆弱性をかかえているから
0297デフォルトの名無しさん
2015/06/21(日) 16:56:17.33ID:M36Jvwtz0298デフォルトの名無しさん
2015/06/21(日) 16:57:30.03ID:GundJla3sscanfならいいが
0299デフォルトの名無しさん
2015/06/21(日) 17:03:46.65ID:0VYCqu5Y0300デフォルトの名無しさん
2015/06/21(日) 17:10:58.20ID:qbGsUBw5廃止できるんなら、セキュアっぽい仕様に変更も可能だと思うんだけど、
なんで廃止なんだろう?(´・ω・`)
0301デフォルトの名無しさん
2015/06/21(日) 17:13:51.04ID:1IBkKjPWfgets() 使え馬鹿
0302デフォルトの名無しさん
2015/06/21(日) 17:16:08.12ID:9rSSXz+5代わりにgets_sができたからにきまってるだろう。
0303デフォルトの名無しさん
2015/06/21(日) 17:44:51.75ID:qbGsUBw5いや、あのね?(´・ω・`)
無くしてしまえるなら変えてもいいんじゃないの?(´・ω・`)
という疑問なんだよ?(´・ω・`)
因みにgets_s()は確か実装が必須じゃなかったような気がするよ?(´・ω・`)
0304デフォルトの名無しさん
2015/06/21(日) 17:52:59.29ID:BziqIqe80305デフォルトの名無しさん
2015/06/21(日) 17:56:00.28ID:qbGsUBw5なるほど!納得したよ!情弱を困らせると五月蝿いからって理由だったんだね?(´・ω・`)
0306デフォルトの名無しさん
2015/06/21(日) 18:13:27.08ID:1IBkKjPW0307デフォルトの名無しさん
2015/06/21(日) 18:18:11.04ID:/g9T8vHwここまで情弱のみなさんのトークをお送りしました
以下、情強の方だけが書き込んで下さい
*******************************************/
0308デフォルトの名無しさん
2015/06/21(日) 19:05:02.79ID:6fYaRm3Q0309デフォルトの名無しさん
2015/06/21(日) 19:25:24.07ID:k0Gw61eHtemplateなんてマジで不要だろ
どんな型でも格納できるコンテナやアルゴリズムなんて必要になったことが無い
設計、DR、CRが終ってコーディングに入る段階ではすべてのデータ型とアルゴリズムは決定してるだろ
boostやstlを作っているような人以外のtemplateなんて使えたものじゃないしな
0310デフォルトの名無しさん
2015/06/21(日) 19:29:12.61ID:bqnhQGpv0311デフォルトの名無しさん
2015/06/21(日) 19:36:39.03ID:8uauNRnw0312デフォルトの名無しさん
2015/06/21(日) 19:41:30.92ID:k0Gw61eH0313デフォルトの名無しさん
2015/06/21(日) 19:43:28.70ID:airbCSrp0314デフォルトの名無しさん
2015/06/21(日) 19:47:05.20ID:4GD8qFUn>boostやstlを作っているような人以外のtemplateなんて使えたものじゃない
いまどきC++の需要なんて
そういうニッチなとこしか残ってないだろ
もしくはオナニーパーパス言語ともいう
0315デフォルトの名無しさん
2015/06/21(日) 20:00:27.34ID:9sgw6ymn特定の型だけでしか、インスタンス化できないとか・・・
なんじゃそりゃ天ぷらじゃねーじゃんよw
0316デフォルトの名無しさん
2015/06/21(日) 20:01:50.89ID:k0Gw61eH普通はイカとかエビだけだろ
どこの世界に象をてんぷらにする奴がいるの
0317デフォルトの名無しさん
2015/06/21(日) 20:15:07.49ID:RBHwsW1q0318デフォルトの名無しさん
2015/06/21(日) 20:24:26.06ID:05QcComm0319デフォルトの名無しさん
2015/06/22(月) 00:33:51.35ID:A9JUVydE0320デフォルトの名無しさん
2015/06/22(月) 04:45:35.18ID:HGgblcg2同じく
でもコンパイル遅くなるから絶対入らないだろうな
0321デフォルトの名無しさん
2015/06/22(月) 07:57:22.13ID:zGeYKnW10322デフォルトの名無しさん
2015/06/22(月) 13:16:11.96ID:8JObeX9Y0323デフォルトの名無しさん
2015/06/22(月) 13:43:58.19ID:iW451COyそもそもこのスレ見なきゃいいんだよ
C++もテンプレートも必要としてる分野はたくさんある
不要とかいってる奴はそういう分野からお呼びがかからない様な人間ってだけ
0324デフォルトの名無しさん
2015/06/22(月) 15:23:50.81ID:c/bcOoEk0325デフォルトの名無しさん
2015/06/22(月) 15:41:26.38ID:kjcmsc/+こちら、昔コマンドコンパイラを少し使ったことがあるくらいです。
VC++と言うのがマイクロソフトで入手出来ましたが、
これの使いかたがよく分かりません
よくサイトとかで「猿でもわかる初めてのC」みたいなのがあると思いますが、
「猿でも分かるVC++コンパイラ!」みたいなサイトはないでしょうか?
0326デフォルトの名無しさん
2015/06/22(月) 15:59:06.88ID:i6Y0mMuW0327デフォルトの名無しさん
2015/06/22(月) 16:00:10.61ID:c/bcOoEkあるよ
0328デフォルトの名無しさん
2015/06/22(月) 16:04:47.15ID:aqgeqhwIボタンを押したら こんちわ ってメッセジボックスが出るのを
作ってみる。5分で出来るけどw そこにいろいろ追加してくのがいい。
基礎からコツコツやるとえらく時間かかるぞ。
0329デフォルトの名無しさん
2015/06/22(月) 16:13:35.25ID:1r/sB/vM0330デフォルトの名無しさん
2015/06/22(月) 18:38:43.50ID:kjcmsc/+やっぱ意味分からんかったんでコマンドコンパイラ使うことにしました。
0331デフォルトの名無しさん
2015/06/22(月) 20:19:23.03ID:3IYPkzd3最新版ならc++11対応のはず。
0332デフォルトの名無しさん
2015/06/23(火) 06:09:07.40ID:YqL5wpE8#include <stdio.h>
int main(void)
{
printf("何段表示しますか:");
return 0;
}
のソースをコンパイルすると、「unknown escape sequence: '\x8e'」のエラーがでます。「表示」という文字を無くすと問題なく動きます。文字コードか何かが原因でしょうか?
0333デフォルトの名無しさん
2015/06/23(火) 06:34:53.60ID:5h3tXqcsコンパイルエラーが出る
0334デフォルトの名無しさん
2015/06/23(火) 06:40:55.35ID:YqL5wpE8ありがとうごさいます
0335デフォルトの名無しさん
2015/06/23(火) 07:13:28.64ID:dwq1Acysいないコンパイラーを使っていることが問題。
対応していないコンパイラーが内部処理のどこでコケたのかなど
どうでもいいこと
0336デフォルトの名無しさん
2015/06/23(火) 07:20:47.06ID:qkxeTacgprintf("何段\表示しますか:");
で行けるんじゃないか?
0337デフォルトの名無しさん
2015/06/23(火) 07:40:53.63ID:YqL5wpE8やってみたら、
unknown escape sequence: '\x95'
unknown escape sequence: '\x8e'
と二重のエラーが出ました。
ちょっとコンパイラと文字コードについて調べてみます。
ありがとうごさいます。
0338デフォルトの名無しさん
2015/06/23(火) 07:54:54.53ID:PmYcJsrz初心者かなんか知らんが >>1 は読んでくれ
> 質問者は必ず環境を書きましょう。
0339デフォルトの名無しさん
2015/06/23(火) 07:57:55.21ID:RdIs/jqn\の位置が違うな
「表示」のコード並びが、0x95, '\', 0x8e, 0xa6 で、
最初は '\', 0x8eの組み合わせがエラーになっていた。
なので、0x95, '\', '\', 0x8e, 0xa6 にすればいい。
よって、「表\示」
0340デフォルトの名無しさん
2015/06/23(火) 08:07:19.72ID:a/siRS730341デフォルトの名無しさん
2015/06/23(火) 08:39:20.50ID:YqL5wpE8すみません、
Windows7で苦Cで配ってる、学習用C言語開発環境を使ってます。
コンパイラ: Tiny C Compiler
コードエディター: Azuki
のようです。エディターの文字コードの変更はできないみたいです。
>>339
表示されました。
文字コードの2バイト目が\だったんですね
0342デフォルトの名無しさん
2015/06/23(火) 08:45:19.50ID:jsVgNnjEUNICODEにすれば面倒な事考えずに済むよ
0343デフォルトの名無しさん
2015/06/23(火) 09:02:18.24ID:kcQ8bjDG0344デフォルトの名無しさん
2015/06/23(火) 10:11:37.80ID:PmYcJsrz何かの理由があってその環境使わざるを得ないなら >>343 の言う通り日本語を諦めておくのが吉
特に理由がなくて、個人の趣味なら Visual Studio でも入れておけばいい
今時 表\ なんて知っててもしょうがない知識だしね
0345デフォルトの名無しさん
2015/06/23(火) 17:12:17.76ID:m7BL+erR0346デフォルトの名無しさん
2015/06/23(火) 17:23:32.92ID:l4FzoNFP0347デフォルトの名無しさん
2015/06/23(火) 20:43:03.36ID:VhIo6ThO0348デフォルトの名無しさん
2015/06/23(火) 21:05:30.06ID:ZGwr55Pkただの>>347の妄想だから
どうせソースは出せないんだろうけど
0349デフォルトの名無しさん
2015/06/23(火) 21:17:27.86ID:TflOpSzzそれってUTF16の話じゃない? 俺もよーわからんw
0350デフォルトの名無しさん
2015/06/23(火) 21:19:18.83ID:xmziolSEJavaでも無い限り 付いてれば安泰
0351デフォルトの名無しさん
2015/06/23(火) 22:14:27.41ID:2h81dcvH0352デフォルトの名無しさん
2015/06/23(火) 23:08:07.89ID:Yra6/pdr0353デフォルトの名無しさん
2015/06/24(水) 00:44:17.69ID:pD1CV6feBOMを普通の文字ASCII(UTF)と認識する。
0354デフォルトの名無しさん
2015/06/24(水) 00:48:38.59ID:jjxytSZJ例えば何?
逆しかしらんわ、例えばシェルスクリプト
0355デフォルトの名無しさん
2015/06/24(水) 01:00:04.41ID:jjxytSZJ各ローカルのエンコーディング(CP932とか)と区別するために仕方ないとは思うけどね
0356デフォルトの名無しさん
2015/06/24(水) 04:06:54.28ID:0YYtkPhPいや、俺が頼んだから。
0358デフォルトの名無しさん
2015/06/24(水) 08:01:23.75ID:1pOYGOOQ0359デフォルトの名無しさん
2015/06/24(水) 08:17:15.29ID:RCx1dp210360デフォルトの名無しさん
2015/06/24(水) 12:47:46.27ID:0YYtkPhP0361デフォルトの名無しさん
2015/06/24(水) 15:17:32.93ID:RCx1dp21UTF-8にBOMは規格で推奨されてないし、付けてもいいよ程度のもんだから、わざわざ対応しないと思う
0362デフォルトの名無しさん
2015/06/24(水) 15:26:42.21ID:5Nshi9zistdio とか fstream でなんかケアしなきゃいかんのか?
誰かサンプル持ってたらよろです。
0363デフォルトの名無しさん
2015/06/24(水) 15:49:55.96ID:NHniIMjV自分のプログラムの対応の話じゃないと思うけど。
0364デフォルトの名無しさん
2015/06/24(水) 21:50:57.24ID:OJjTVAhEUnicode準拠をうたってはなりません。
対応は任意でなく必須です。
0366デフォルトの名無しさん
2015/06/24(水) 22:41:25.10ID:QFYn1SeTそんな改造は数分もかからないだろ
0367デフォルトの名無しさん
2015/06/24(水) 22:50:25.56ID:RCx1dp210368デフォルトの名無しさん
2015/06/24(水) 23:40:15.34ID:j7aixYkfVisual C++限定だが
auto f = std:: fopen(R"(c:\bom.txt)", "r, ccs=UTF-8");
if (f == nullptr)
throw "oops...";
wchar_t buf[100];
fgewts(buf, 100, f); //BOMは読み飛ばされる
0369デフォルトの名無しさん
2015/06/25(木) 00:14:28.43ID:VkOPpBHgども 結局 VC?がBOMをつけてないとutf8でることがわからないみたいね。
会社でも自宅でもlinux鯖はutf8でやってるけど、今まで問題が出なかったのは
系が閉じてたって事なんだろね。
以前にUTF16の中国語のファイルをVCで変換する時、BOMを意識した覚えがある。
0370デフォルトの名無しさん
2015/06/25(木) 00:36:05.41ID:QrIpaMYvUnicodeマークじゃないんだよ
0371デフォルトの名無しさん
2015/06/25(木) 07:10:32.26ID:xvyRgwF3付いててるのを読めなかったらバグですよ?
0372デフォルトの名無しさん
2015/06/25(木) 07:13:57.60ID:q/nLF9Gf0373デフォルトの名無しさん
2015/06/25(木) 08:40:14.19ID:ofXCbpD30374デフォルトの名無しさん
2015/06/25(木) 09:39:23.26ID:V1vMIA1d0375デフォルトの名無しさん
2015/06/25(木) 13:46:35.96ID:KIJ/2YKU昔のような身勝手なオレオレ仕様は少なくなったんじゃ?
知らんけど
0376デフォルトの名無しさん
2015/06/25(木) 14:13:47.61ID:JIDQ8g88また、仮にしたとしてもインラインしない方がよかったりしますか?
ラッパーの内容は、ラッパー対象のある関数の、ある引数を隠すものです。
0377デフォルトの名無しさん
2015/06/25(木) 14:21:41.49ID:+mJ3x15yもちろんインライン展開できるよ
inlineつけてもインライン展開してくれるとは限らないけど
強制的にインライン展開したいならコンパイラによっては
__forceinline(VC)とか__attribute__((always_inline))(GCC)がある。
0378デフォルトの名無しさん
2015/06/25(木) 15:04:46.96ID:JIDQ8g88無駄な質問でしたね……ごめんなさい。
>>377
ありがとうございます!
コンパイラ様はインライン化していなかったのでインラインは非推奨なのでしょうか。
forceinline覚えておきます。
0379デフォルトの名無しさん
2015/06/25(木) 15:14:58.96ID:VkOPpBHg0380デフォルトの名無しさん
2015/06/25(木) 15:20:12.37ID:OhItl4efスタックが本当にギリな状態?
0381デフォルトの名無しさん
2015/06/25(木) 19:52:23.26ID:thAj7A8FUTF-8だと認識しないことはバグではありません
でもUTF-8だと認識しているのにBOM有りを読めないのはバグです
0382デフォルトの名無しさん
2015/06/25(木) 21:18:16.87ID:QrIpaMYvUTF-8しか受け付けない、もしくは使用するエンコーディングを決める方法が別で提供されているのであれば、BOMの添付は禁止すべきと書いてあるんだけど。
gccはエンコーディングを指定出来るし、デフォルトはシステムロケールに設定されているエンコーディングを使用する。
つまり使用するエンコーディングが決まってるからBOMの添付は禁止。
0383デフォルトの名無しさん
2015/06/25(木) 21:39:38.32ID:EqwSAYW9MSでもそこまで俺様ルールを語らないのに
誰にそんなデマを吹き込まれたんだよ
0384デフォルトの名無しさん
2015/06/25(木) 21:56:34.23ID:6T6/Nvaf禁止すべきと禁止の区別もつかないのかよ
>別で提供されているのであれば
冒頭に書かれた適用範囲ぐらい読んだらどうなの?
プロトコルとアプリケーションの用語を明確に使い分けていて
この文書はプロトコルに言及したもの。
gccのオプションは明らかに関係ない
>>383
Unicode Standard読んでから出直せ
0385デフォルトの名無しさん
2015/06/25(木) 22:09:24.95ID:kAKrjTbCgccの入力のプロトコルの話だよな
0386デフォルトの名無しさん
2015/06/25(木) 22:31:21.92ID:QrIpaMYvじゃあその前段のストリームの最初のU+FEFFはZWSPとして解釈できる、常にsignatureではないってのは読めるよね?
コンパイルするファイルの先頭とかincludeしたファイルの先頭にユニコード文字が合ったら文法エラーになるのは普通だと思うけど?
あと、Unicode standrd読み直せとかおおざっぱに言うんじゃなくてそれのどこに書いてあるかポイント示した方が建設的な議論になると思うよ。
そういうつもりがないならそれはそれで構わないけどさ。
0387デフォルトの名無しさん
2015/06/25(木) 22:50:18.27ID:Wbuu0KdJ0388デフォルトの名無しさん
2015/06/25(木) 23:29:47.86ID:n2Du4S5Dひょっとして「常にシグネチャーというわけではない」を
「常にシグネチャーでない」と勘違いした?
その前にいいかげん適用前提が違う文書持ち出すの止めれ
0389デフォルトの名無しさん
2015/06/25(木) 23:40:12.63ID:QrIpaMYv別に勘違いしてないけど?
そう書いてるし
で、適用前提がどう違うんだ?
0390デフォルトの名無しさん
2015/06/26(金) 01:03:10.83ID:e7iRldNZそれ無意味じゃないか?
0391デフォルトの名無しさん
2015/06/26(金) 01:13:24.31ID:eSs+94eD> ひょっとして「常にシグネチャーというわけではない」を
そんなこと書いてる規格はどこにもない
0392デフォルトの名無しさん
2015/06/26(金) 01:26:16.34ID:TBuS4pq60393デフォルトの名無しさん
2015/06/26(金) 01:26:32.00ID:JggZpWgl0394デフォルトの名無しさん
2015/06/26(金) 02:03:52.61ID:rrmvAZf/テキストファイルのUTF-8の先頭がZWSP(U+FEFF)に値する文字列だった場合必ず読み飛ばせと書いてある規格の文書だしてくれって言ってるんだけど
そんなに自信満々ならすぐ出せるよね?
0395デフォルトの名無しさん
2015/06/26(金) 02:05:26.16ID:h13vbdrjって事ですね。
ん? viでテキストでデータファイル作る時、BOMなんか付かんよなぁ。
調べてみるかw あっぶー
0396デフォルトの名無しさん
2015/06/26(金) 02:08:14.60ID:ZvSiRQcs「常にシグネチャーというわけではない」と書かれてある規格書はどれですか?
0397デフォルトの名無しさん
2015/06/26(金) 02:10:35.96ID:JNJ/VPAI> … 場合必ず読み飛ばせと書いてある規格の文書だしてくれって言ってるんだけど
何番のレスでそれを言ってるの?
0398デフォルトの名無しさん
2015/06/26(金) 02:15:51.14ID:5AuyErdZ空気読めない病か
0399デフォルトの名無しさん
2015/06/26(金) 05:29:32.97ID:kN6yxPsW知らないようだから教えてあげるよ
http://tools.ietf.org/html/rfc3629#section-6
『U+FEFF in the first position of a stream MAY be interpreted as a zero-width non-breaking space, and is not always a signature.』
0400デフォルトの名無しさん
2015/06/26(金) 06:06:48.17ID:p2u7R4Bh0401デフォルトの名無しさん
2015/06/26(金) 08:21:12.45ID:zVLNx7Uq>>386後半じゃね
0402デフォルトの名無しさん
2015/06/26(金) 08:27:34.48ID:mHm08jEMWindowsの場合はエンコーディングの区別として必要なんだろう。
もともと何もなければシステムロケールのMBCS、UTF-16 BOMがあれば
UnicodeとしていたところにUTF-8を混ぜるなら何らかの目印がないと。
0403デフォルトの名無しさん
2015/06/26(金) 08:51:15.80ID:ll0kneqe0404デフォルトの名無しさん
2015/06/26(金) 09:06:15.73ID:rrmvAZf/根本はgccがUTF-8でBOMを読み飛ばさないのはバグかどうか?だからスレ違いとも言い切れない。
さっさと根拠出してくれたらこんな風に発散する事も無いのにね
0405デフォルトの名無しさん
2015/06/26(金) 09:40:42.44ID:vN2cPuzlそれは「常にシグネチャーではない」の方だろう
0406デフォルトの名無しさん
2015/06/26(金) 09:42:32.76ID:wrsw7rn3エンコードの指定はコンパイラーの起動オプションでやればいいこと
0407デフォルトの名無しさん
2015/06/26(金) 11:21:10.57ID:2DIvwxNaネチネチとしつこいのもどうかと
0408デフォルトの名無しさん
2015/06/26(金) 13:27:05.74ID:bzZHYNjaオプションで指定したいってのは同意だけど
Unicode Standard 7.0.0の3.10に従ったファイルが読めないのは何とかならんもんかね
0409デフォルトの名無しさん
2015/06/26(金) 14:11:18.96ID:ufdBwIlVCの規格にそれが読めるべきだとでも書いてんのか?
0410デフォルトの名無しさん
2015/06/26(金) 15:06:25.84ID:nMtdIwuiMSが付けたがる理由についての議論で
そうすることの必要性があるという話と
オプションでやればいいのだから必要性があることにならないという話が
ぶつかってんだろ?
「読めないのはなんとかならんもんかね」は何の関係があるんだ?
gccの仕様については別のツリーなんだから関係ないところにぶら下げんなよ
0411デフォルトの名無しさん
2015/06/26(金) 16:23:28.74ID:DGi08Nca0412デフォルトの名無しさん
2015/06/26(金) 16:23:39.53ID:RqUqKeIt0413デフォルトの名無しさん
2015/06/26(金) 16:26:07.76ID:RqUqKeIt0414デフォルトの名無しさん
2015/06/26(金) 17:36:42.45ID:h13vbdrjうそん オプションわ?
0415デフォルトの名無しさん
2015/06/26(金) 19:19:11.14ID:x5rK/oSUコンパイルオプションで文字コード指定しろなんて言われたら悪夢じゃね?
ファイルシステムに文字コードの属性が持たせられないんだから
内容で判断できるようにしておかないと困る
0416デフォルトの名無しさん
2015/06/26(金) 19:32:25.16ID:xjgOsjgGそういうときは、文字コード判定プログラムを使って振り分ける
0417デフォルトの名無しさん
2015/06/26(金) 19:54:30.36ID:lJNlJt0qguessればいい
0418デフォルトの名無しさん
2015/06/26(金) 19:54:49.05ID:geSptdQS0419デフォルトの名無しさん
2015/06/26(金) 19:57:02.38ID:PsuOU61s0420デフォルトの名無しさん
2015/06/26(金) 23:02:36.81ID:wrrg34rCASCII文字全部
0421デフォルトの名無しさん
2015/06/26(金) 23:10:52.98ID:QWBhAVlI0422デフォルトの名無しさん
2015/06/26(金) 23:20:57.93ID:uDnONhSK推測が前提ならよけい、BOMがあれば早いし確実だろう。
0423デフォルトの名無しさん
2015/06/26(金) 23:28:49.14ID:Nu5Eq91bA「BOM付いてなかったら混在したとき大変だろ」
B「判定プログラムを作ればいい」
Bは会話のできないアスペ
0424デフォルトの名無しさん
2015/06/26(金) 23:48:20.14ID:of/AuL+E同じバイト列になる文字があるエンコーディングがあるから確実ではないな
0425デフォルトの名無しさん
2015/06/27(土) 03:03:30.26ID:sq4XoAGlShift_JISはIANA上に正式名称として存在するが
Shift-JISは存在しない
0426デフォルトの名無しさん
2015/06/27(土) 03:04:36.37ID:LNawPNEKそういう文字がないんだよ
0427デフォルトの名無しさん
2015/06/27(土) 03:49:03.12ID:6cnS2jj50428デフォルトの名無しさん
2015/06/27(土) 09:14:50.57ID:S/rvYXws0429デフォルトの名無しさん
2015/06/29(月) 07:55:42.70ID:D7jxIzCC解釈に曖昧性が残るじゃないか。
0430デフォルトの名無しさん
2015/06/30(火) 05:47:08.93ID:cdRwV9j9これから苦しんで〜をもう一周したり、もう少し高度なC言語の本に手を出すか
昔買って挫折してたやさしいC++を始めるか
どちらが良いのでしょうか?
0431デフォルトの名無しさん
2015/06/30(火) 07:11:36.47ID:mUVzLumV0432デフォルトの名無しさん
2015/06/30(火) 08:50:56.53ID:SA/B9hQl0433デフォルトの名無しさん
2015/06/30(火) 14:29:16.72ID:vlMYeJfXだめだと思うなぁ。
0434デフォルトの名無しさん
2015/06/30(火) 15:04:04.38ID:i8ZpT3Aq0435デフォルトの名無しさん
2015/06/30(火) 15:25:39.71ID:SxVzyymn読んでるだけじゃ‥ヌググ
0436デフォルトの名無しさん
2015/06/30(火) 20:18:49.47ID:i8ZpT3Aq0437デフォルトの名無しさん
2015/07/06(月) 00:05:28.23ID:LeTT1hT8C++を学ぶのになんでCが出てくるのか不思議。
0438デフォルトの名無しさん
2015/07/06(月) 01:14:33.64ID:VnHZAaaA0439デフォルトの名無しさん
2015/07/06(月) 01:31:59.47ID:Io0iQPrmPOSIX環境を使うつもりがないということか?
0440デフォルトの名無しさん
2015/07/06(月) 01:34:30.66ID:zKWcKKsoどういう意味?
0441デフォルトの名無しさん
2015/07/06(月) 01:51:12.45ID:G/B+NFD1どういう意味とは?
0442デフォルトの名無しさん
2015/07/06(月) 01:53:11.62ID:YlcCiWLR0443デフォルトの名無しさん
2015/07/06(月) 01:54:31.73ID:HjKCw0JZ典型的とは?
0444デフォルトの名無しさん
2015/07/06(月) 01:58:10.62ID:YwEgTEQGどういう意味?
0445デフォルトの名無しさん
2015/07/06(月) 01:59:33.10ID:uVP7HEVL最近の若い人は「POSIX環境」と言われても意味が分からないのかな
0446デフォルトの名無しさん
2015/07/06(月) 02:15:59.19ID:zKWcKKso>>445
posixのAPIを使うつもりがないという意味で言ってるのであればposixのAPIを直接使う理由は殆ど無いし
posixとその互換のシステム(LinuxやOSX,BSD)を使うつもりがないという意味であればC言語を使わないというのと関係性がわからない
という理由でどういう意味かと聞きました
0447437
2015/07/06(月) 07:12:04.03ID:LeTT1hT8たまに調べて関数呼び出すぐらいはするよ。
extern "C"で宣言されてるんだろうなという程度の認識しかない。
0448デフォルトの名無しさん
2015/07/06(月) 10:07:42.22ID:S8xxWpoSその関数の中身を学ぶ気はないの?
0449デフォルトの名無しさん
2015/07/06(月) 10:55:46.10ID:UtQpsrfy0450デフォルトの名無しさん
2015/07/06(月) 12:00:28.33ID:c9Pq6PXh0451デフォルトの名無しさん
2015/07/06(月) 12:42:17.66ID:Tkz216Bq0452デフォルトの名無しさん
2015/07/06(月) 12:49:34.44ID:DNOTyWLE本当に問題ないんかという点でいろんな意見が出てるんやないかー
ぼけー
0453デフォルトの名無しさん
2015/07/06(月) 12:50:58.65ID:o8rxMXGeつまり言い換えると
「問題がなければ、問題がない」
てことだな
0454デフォルトの名無しさん
2015/07/06(月) 13:10:46.09ID:57DZj4l7他の言語にした方が無難だよ
0455デフォルトの名無しさん
2015/07/06(月) 13:58:57.01ID:AfAEiFHK0456デフォルトの名無しさん
2015/07/06(月) 14:39:25.13ID:QG0oot86自己責任で好きにすりゃいいさ
0457デフォルトの名無しさん
2015/07/06(月) 14:40:31.81ID:nVA3PHQU0458デフォルトの名無しさん
2015/07/06(月) 14:42:32.45ID:SEf5XUfd0459デフォルトの名無しさん
2015/07/06(月) 14:45:02.72ID:e+smMlMf0460デフォルトの名無しさん
2015/07/06(月) 18:05:05.72ID:LCyZYiqiテストとして mod 4 の剰余の演算を考えています
class mod4{
public:
int n;
mod4(int n1){
n=n1%4;
}
mod4 operator + (int n1){
mod4 a;
a.n=(n+n1)%4;
return a;
}
};
で一応動くのですが、intを後置だけでなく前置しても計算する方法が分かりません
またiostream, fstreamの出力で、クラスを指定するだけで
自動的に.nを出力するように出力形式を指定することは、
complexのように可能な気がするのですが手法がわかりません
0461デフォルトの名無しさん
2015/07/06(月) 18:07:21.62ID:qCZjlRkB自分が勉強した言語を知らないと言われて
自分がdisられた妄想に取り付かれたんじゃねーの
0462デフォルトの名無しさん
2015/07/06(月) 18:09:07.16ID:KzNzThiiをグローバルに置く
0463デフォルトの名無しさん
2015/07/06(月) 18:31:22.24ID:LCyZYiqiありがとうございます
0464デフォルトの名無しさん
2015/07/06(月) 18:39:58.49ID:oV/lkPx7Cの読み書き経験がないために
「POSIX環境を使いながらも、POSIXが定める関数の中身を読み解けない」
「gccのソースすらまともに読めない」
「libpng、libjpeg、gmpとかのライブラリーは読んでも意味が分からない」
それを放置しておきながら奥底まで理解したというためには何をすればいいの?
0465デフォルトの名無しさん
2015/07/06(月) 18:43:29.66ID:mxlN2zD6慣れがない程度
必要になったら慣れればいい
0466デフォルトの名無しさん
2015/07/06(月) 19:03:04.77ID:kBO1IjC2かと言ってアセンブラはやりすぎ、くらいの人が使う言語
0467デフォルトの名無しさん
2015/07/06(月) 19:20:23.15ID:DvE9zAyD慣れるのは時間かかるぞ
慣れ終えた頃には必要でなくなる
0468デフォルトの名無しさん
2015/07/06(月) 19:23:30.07ID:U1mw4CcpC++を奥底まで理解するにはC++を学べばいい
Cが必要という根拠が何も出てこないところを見ると
C信者はバカなの?コミュ障なの?
0469デフォルトの名無しさん
2015/07/06(月) 20:11:14.79ID:HTAglc73使ってるライブラリもカーネルもC製が多いのに、C++だけ学んだだけでそういったものを作れる人もしくは不具合を見つけだせる人になりますか?
0470デフォルトの名無しさん
2015/07/06(月) 20:11:22.64ID:nVA3PHQU0471デフォルトの名無しさん
2015/07/06(月) 20:13:12.02ID:+Ezk7dLW何もかも全部学べばいいだろ
なんで学ばない言い訳を必死にアピールしてんだよ
お前ちょっとおかしいぞ
0472デフォルトの名無しさん
2015/07/06(月) 20:14:48.42ID:z7iHYWh9学びやすさの議論は置いておいて, C++もメモリモデルとかは学べるわけだし
一方でC/C++という言語はどうしてもOSとかのシステムに近いレイヤーで使われることが多くて, Linux環境が念頭にある人からするとCの部分も勉強しなきゃならないという主張になる
0473デフォルトの名無しさん
2015/07/06(月) 20:16:55.43ID:VXE13LoC0474デフォルトの名無しさん
2015/07/06(月) 20:16:59.40ID:l10ibwOJ0475デフォルトの名無しさん
2015/07/06(月) 20:20:53.75ID:nVA3PHQU0476デフォルトの名無しさん
2015/07/06(月) 20:32:35.18ID:azr+Jyxuというのがフリーランスでやってきたら、面接で落とすよね?
0477デフォルトの名無しさん
2015/07/06(月) 20:36:04.15ID:F+Ucpn+Fならないと思うけど、それがどうかしたの?
C++を学ぶのにCが必要な理由が
「Cを学ばないとCが理解できないから」なんて
おまえちょっとおかしいぞ。
0478デフォルトの名無しさん
2015/07/06(月) 20:36:56.60ID:GUT2T6A+0479デフォルトの名無しさん
2015/07/06(月) 20:58:41.49ID:cgBCux2d0480デフォルトの名無しさん
2015/07/06(月) 21:07:23.43ID:YlmAa+P1A「Cを奥底まで知るにはHTMLを学ぶ必要がある!」
B「えっ?」
A「世の中のウェブサイトはHTMLで作られている!!」
B「知るか、Cを知りたければCを学べばいいよ。HTMLは不用だし」
A「HTML読んでもわからずに放置。それでCを理解してると言えるの?」
「Cだけ学んでウェブサイト作れるようになるの?」
B「だから何でウェブサイトなのさ」
A「HTMLを学ばない言い訳を必死でアピールw」
「HTMLに親を殺されたんだろwww」
「アビバでエクセル覚えた方が儲かるぞwwww」
結論:C使いは知的な障害を抱えている
0481デフォルトの名無しさん
2015/07/06(月) 21:08:24.41ID:nVA3PHQU0482デフォルトの名無しさん
2015/07/06(月) 21:40:10.74ID:AfAEiFHK内包してないんだ。これが。
0483デフォルトの名無しさん
2015/07/06(月) 21:49:17.62ID:HjKCw0JZ0484デフォルトの名無しさん
2015/07/06(月) 21:52:03.86ID:KzNzThii0485デフォルトの名無しさん
2015/07/06(月) 21:56:23.05ID:8ClaGM8Uvoid f(int unko[static const restrict 1]);
0486デフォルトの名無しさん
2015/07/06(月) 22:11:29.76ID:QI5ceWXb> 「C++歴20年です。Cは書いたことも読んだこともありません。」
さすがにこうなると生理的に嫌だな
0487デフォルトの名無しさん
2015/07/06(月) 22:15:54.72ID:uTC0EYRaANSI CでNULLは0は等価ですか?
0488デフォルトの名無しさん
2015/07/06(月) 22:51:58.03ID:fhp0P+BJ多いかもしれないけどヘッダーファイルとかあるだろうからなんの問題もないでしょ
アセンブラー言語で書かれてるライブラリも(昔は)あったよ
0489デフォルトの名無しさん
2015/07/06(月) 22:52:50.78ID:fhp0P+BJアセンブリ言語に訂正しとくよ
0490デフォルトの名無しさん
2015/07/06(月) 23:21:48.20ID:CSbBVr9s規格として違うし
0じゃない実装もあるし
0491デフォルトの名無しさん
2015/07/07(火) 00:03:39.87ID:t1FyPIkw分かりました
ありがとうございました
0492デフォルトの名無しさん
2015/07/07(火) 00:27:53.62ID:KY4bh5nL釣り餌投下だと思ったのに
0493デフォルトの名無しさん
2015/07/07(火) 04:42:01.00ID:QhcZ6j1E0494デフォルトの名無しさん
2015/07/07(火) 05:10:31.19ID:ng9AgpHC前から?
0495デフォルトの名無しさん
2015/07/07(火) 05:29:26.95ID:ZJfWjPxl0496デフォルトの名無しさん
2015/07/07(火) 12:42:38.70ID:wQtirtRg規格はどう定義されてるの?
0497デフォルトの名無しさん
2015/07/07(火) 15:24:04.97ID:5WqTHFAp0498デフォルトの名無しさん
2015/07/07(火) 15:48:20.07ID:5q81H0EDISO/IEC 9899:2011 7.9p3
『The macros are
NULL
which expands to an implementation-defined null pointer constant』
0499デフォルトの名無しさん
2015/07/07(火) 16:36:10.37ID:862QYq/IAn integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant.
とあるのは、プログラム表記上は0で書いていいってことでしょ。内部実装がどうであれ。
0500デフォルトの名無しさん
2015/07/07(火) 17:39:44.06ID:EvIDQyY/NULLがゼロであるわけではない
0501デフォルトの名無しさん
2015/07/07(火) 17:50:47.29ID:qNcl5j7+短い文の中に二つも嘘が書かれているようだ
>整数ゼロを
>NULLだと解釈される
0502デフォルトの名無しさん
2015/07/07(火) 18:30:13.58ID:ptgX7kBx正しくは何ですか?
0504デフォルトの名無しさん
2015/07/07(火) 19:11:40.82ID:I1tb5YMOつまり「NULL」は「ヌルポインタ定数」ではないと言いたいんだな?
お前の方が嘘っぽくね?
0505デフォルトの名無しさん
2015/07/07(火) 19:15:03.95ID:NNpZghj8> 整数リテラルのゼロをポインタにキャストするときは
これは嘘
(1-1)でもNULLになる
0506デフォルトの名無しさん
2015/07/07(火) 19:34:02.13ID:Bop5Vbl60507デフォルトの名無しさん
2015/07/07(火) 19:35:08.16ID:wQtirtRgほとんどの実装はそうなるだろうけど規格上はダメだろ
0508デフォルトの名無しさん
2015/07/07(火) 19:46:49.33ID:ZtNPndvwコンパイル時に0確定すればいい
リテラルであることは求められない
0509デフォルトの名無しさん
2015/07/07(火) 20:07:04.73ID:oR9xV2kdNULLも0も""も'\0'も気にしたことが無い。
そんなもの適当でもプログラムが動けばいいだろ。
0510デフォルトの名無しさん
2015/07/07(火) 20:17:04.83ID:9KOp+c270511デフォルトの名無しさん
2015/07/07(火) 20:17:23.34ID:Bop5Vbl6>>507
>>499の通りCではリテラルでなくてもヌルポインターになる。
0512デフォルトの名無しさん
2015/07/07(火) 20:18:13.35ID:4Dd6qTUR0513デフォルトの名無しさん
2015/07/07(火) 20:26:50.71ID:+oCo2uon日本語版CFAQ『定数0は』
会話がループするやんけ
0514デフォルトの名無しさん
2015/07/07(火) 20:27:44.89ID:4Dd6qTURこれで終わり
0515デフォルトの名無しさん
2015/07/07(火) 20:43:08.45ID:wQtirtRg理解した。定数式か。サンクス
0516デフォルトの名無しさん
2015/07/07(火) 21:39:04.71ID:zGGr2/jS> 整数リテラルのゼロをポインタにキャストするときは自動的にヌルポインタ定数だと解釈される
この説は流行ってる?
今ここだけ?
0517デフォルトの名無しさん
2015/07/07(火) 21:44:39.56ID:Bop5Vbl6流行ってない。
「整数リテラルのゼロをポインター型にキャストした結果はヌルポインターになる」
なら正しい。
0518デフォルトの名無しさん
2015/07/07(火) 21:59:11.07ID:o2vdK0G6結局どっちなんだよ
0519デフォルトの名無しさん
2015/07/07(火) 22:17:24.21ID:UK9JBwIrついでにリテラルが定数式であることも理解できないんだろう
0520デフォルトの名無しさん
2015/07/07(火) 22:44:45.13ID:AYkJJtoI結果が0になる定数式
(1-1) や 0 は該当
int a = 2;
const int c = 1;
a-2 や c -1 は適合しない
0521デフォルトの名無しさん
2015/07/07(火) 22:53:24.76ID:fmLzrjpx「定数式はリテラルしかない」派ですか
3派に分かれてるようですね
0522デフォルトの名無しさん
2015/07/07(火) 23:14:37.87ID:hEbqDUGA(B) 「(1-1)は定数式の0に含まれる」派
(B-0) 「仕様上NULL扱いされるのはリテラルの0だけ。(1-1)のような定数式の0は対象外」派
(B-1) 「仕様上NULL扱いされるのはリテラルの0だけでなく (1-1)のような定数式の0も含む」派
0523デフォルトの名無しさん
2015/07/07(火) 23:35:36.57ID:pt8kirha0524デフォルトの名無しさん
2015/07/07(火) 23:38:52.87ID:oR9xV2kd夜中にこんなややこしい文章は理解出来ない
0525デフォルトの名無しさん
2015/07/07(火) 23:41:12.54ID:OROm0kU8じゃあ、お前は明日の朝に読めよ
0526デフォルトの名無しさん
2015/07/08(水) 00:37:34.02ID:QLXOn1Rg朝早くから自演レスしたお前がいうなよ
仕事しろよQZ
0527デフォルトの名無しさん
2015/07/08(水) 00:45:43.59ID:ryUp+g/00528デフォルトの名無しさん
2015/07/08(水) 02:45:42.06ID:kjaPeLTy0529デフォルトの名無しさん
2015/07/08(水) 02:47:20.98ID:GG1KyjDS0530デフォルトの名無しさん
2015/07/08(水) 03:01:37.68ID:zv+9uHgH0531デフォルトの名無しさん
2015/07/08(水) 03:02:55.48ID:GG1KyjDSお前には話してないから
0532デフォルトの名無しさん
2015/07/08(水) 04:43:57.43ID:lHtKocYf0533デフォルトの名無しさん
2015/07/08(水) 07:13:11.92ID:SyhtiKOH>仕様上NULL扱いされるのは
ヌルポインタとヌルポインタ定数の違いがまだ理解できないなんてどれだけ頭が悪いの
0534デフォルトの名無しさん
2015/07/08(水) 14:45:02.24ID:SCpUiQEImap_ChInt[10] ;
mapに要素がない状態で上みたいにしたらキー10の要素が作られるけど
このときintの値は0って保証されてますか?
自分でやってみたら0だったけど他のPCでもちゃんとそうなるか知りたい
0535デフォルトの名無しさん
2015/07/08(水) 14:50:04.01ID:eZCBgyaIyes
0536デフォルトの名無しさん
2015/07/08(水) 15:36:53.14ID:SCpUiQEIありがとうございます
0537片山博文MZ ◆T6xkBnTXz7B0
2015/07/08(水) 21:48:15.07ID:73Ug3WexDLLをスタティックライブラリーに変換することは可能か?
0538片山博文MZ ◆T6xkBnTXz7B0
2015/07/08(水) 21:56:59.57ID:73Ug3Wexhttp://www.binary-soft.com/dll2lib/dll2lib.htm
0539デフォルトの名無しさん
2015/07/08(水) 22:26:29.91ID:K5IYat/K凄い発明ですね
0540デフォルトの名無しさん
2015/07/08(水) 23:08:10.86ID:lHtKocYf窓なら配布の時もインストラがやってくれると思うんですけど。
0541デフォルトの名無しさん
2015/07/08(水) 23:40:59.41ID:TRwqxnZN*p = NULL
*p = 0
NULLと書いた方が、意味がわかりやすいから、
NULLを使うだけで、これらは同じ意味。
0は数値の0でもないし、すべてのビットが0でもない!
ポインタに0を代入すると、
どのアドレスも指していないという、単なる取り決めであり、
本当のアドレスは0ではなく、何かわからない
virtual f() = 0
純粋仮想関数の0と同じで、数値じゃなく、単なる取り決め!
コンパイルしやすく、ミスも発見しやすく、
予約語の数を増やすこともないから、0が使われた
0542デフォルトの名無しさん
2015/07/08(水) 23:46:25.43ID:QyEnNIQg0543デフォルトの名無しさん
2015/07/09(木) 00:02:08.17ID:Fl65kOzE0544デフォルトの名無しさん
2015/07/09(木) 00:07:23.19ID:No2Q5Qqx今ちらっと見たら
#ifndef NULL
# if defined __GNUG__ && \
(__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
# define NULL (__null)
# else
# if !defined(__cplusplus)
# define NULL ((void*)0)
# else
# define NULL (0)
# endif
# endif
#endif
な感じでlibioで定義されてた。_null ってなんやw
0545デフォルトの名無しさん
2015/07/09(木) 01:30:36.12ID:CyKpelBr↓こういうコードに警告を出すためのコンパイラ独自キーワード。
#include <stddef.h>
#include <string.h>
int main()
{
int i;
memset(&i, NULL, sizeof(i));
}
:6:29: 警告: passing NULL to non-pointer argument 2 of ‘void* memset(void*, int, size_t)’ [-Wconversion-null]
http://melpon.org/wandbox/permlink/Vgp6jqytS1T0y9sM
0546デフォルトの名無しさん
2015/07/09(木) 22:38:08.76ID:1/aylVmX0547デフォルトの名無しさん
2015/07/10(金) 06:20:12.89ID:nE5CRCmh「共通言語ランタイムサポート(/clr)」の設定で作ったツールから
「共通言語ランタイムサポートを使用しない」の設定で作ったDLL(またはlib)を使って
関数を呼び出したいのですが可能でしょうか?
どうもやってみたところ
dllでは#usingで失敗
libでは外部公開している関数を認識しない
といった状況でして・・・
使用しているのはVS2008です
0548デフォルトの名無しさん
2015/07/10(金) 06:52:08.58ID:vY1aCUGVスレチ
C++/CLIスレへどうぞ
0549デフォルトの名無しさん
2015/07/10(金) 07:09:33.84ID:AhForOF3libは、C言語の関数?ならlib側のプロトタイプ宣言を extern "C" { }で囲む
0550デフォルトの名無しさん
2015/07/10(金) 07:11:52.89ID:CaePx9j00551デフォルトの名無しさん
2015/07/10(金) 08:04:55.96ID:Divl2bDc0552デフォルトの名無しさん
2015/07/10(金) 19:59:52.96ID:9OV4RYzP0553デフォルトの名無しさん
2015/07/12(日) 06:21:46.79ID:FD2YUPpJどこが悪いのでしょうか
ttp://codepad.org/W9HTaZKO
ttp://codepad.org/5xdDgomM
ttp://codepad.org/pTaoaiU1
よろしくお願いします
0554デフォルトの名無しさん
2015/07/12(日) 06:23:27.54ID:FD2YUPpJ流してください
すれ汚しすみませんでした
0555デフォルトの名無しさん
2015/07/12(日) 06:31:23.08ID:DYhAKwb50556デフォルトの名無しさん
2015/07/12(日) 09:30:27.34ID:HB04b7Av0557デフォルトの名無しさん
2015/07/13(月) 15:17:20.23ID:MiC8RasG0558デフォルトの名無しさん
2015/07/13(月) 15:25:30.57ID:VqtAIesyエコーバックしないようにすればいいけど、まともにやるとかなり大変
0559デフォルトの名無しさん
2015/07/13(月) 16:24:16.35ID:TIwshmli0560デフォルトの名無しさん
2015/07/13(月) 18:20:18.47ID:CxqY55Y8まず>>1を読め
話はそれからだ
0561デフォルトの名無しさん
2015/07/13(月) 18:26:20.53ID:FYGRXR4u0562デフォルトの名無しさん
2015/07/13(月) 18:46:11.99ID:3+liPIr50563デフォルトの名無しさん
2015/07/14(火) 01:24:42.23ID:A/Y1UzxU出来ないかw
0564デフォルトの名無しさん
2015/07/14(火) 18:26:11.85ID:0+Qa01OWint i = 0;
while(cin.get(char[i++]) && char[i] != '\n' && i < 10);
のあとに、文字数をオーバーして入力された文字を読み飛ばすために
cin.ignore(cin.rdbuf()->in_avail(), '\n');
としたのですがうまく読み飛ばしてくれません。
そこで間に
cout << cin.rdbuf()->in_avail() << endl;
を入れたのですがこれは0を返しているようです。
ためしに
cin.ignore(INT_MAX, '\n');
としたところきちんと動きました。
cin.get()ではcin.rdbuf()->in_avail()は使えないのでしょうか?
その場合他に使える関数などありましたらそれもお願いします。
どなたかご教授ください。
0565デフォルトの名無しさん
2015/07/14(火) 18:51:11.65ID:RQ2DWYjgなんだこの糞コード
0566デフォルトの名無しさん
2015/07/14(火) 19:00:03.87ID:9IOpPA1s申し訳ないです…
本当に初心者なんです…
0567デフォルトの名無しさん
2015/07/14(火) 20:24:11.58ID:A/Y1UzxU0568デフォルトの名無しさん
2015/07/14(火) 20:57:29.67ID:3KviU9VD批判するだけで何も示さないやつ?
0569デフォルトの名無しさん
2015/07/14(火) 22:38:40.15ID:rB0J2LcB何重にも自演とかやべえなおい
0570デフォルトの名無しさん
2015/07/14(火) 22:49:18.41ID:RCR6Bt7P>としたのですがうまく読み飛ばしてくれません。
ウンコgccだろ?
0571デフォルトの名無しさん
2015/07/14(火) 23:56:56.70ID:m+yjPH9A#include <fstream>
#include <string>
int main()
{
const int MAXCOL = 128;
char buf[MAXCOL];
std::ifstream ifs("test.txt");
int i = 0;
std::string str;
while (ifs.get(buf[i++]) && buf[i] != '\n' && i < 10);
for (int j = 0; j < i; j++)
std::cout << buf[j];
std::cout << std::endl;
std::cout << ifs.rdbuf()->in_avail() << std::endl;
std::getline(ifs, str);
std::cout << "'" << str << "'" << std::endl;
}
test.txtの中身
123456789012345
出力
1234567890
6
'12345'
動いてるように見えるんだけどなあ gcc5.1.0
0572デフォルトの名無しさん
2015/07/15(水) 00:34:57.66ID:z+4I+fKC0573デフォルトの名無しさん
2015/07/15(水) 01:15:06.30ID:FZiUS4KG何を目的に何をしたいかちゃんと書け
0574デフォルトの名無しさん
2015/07/15(水) 03:29:56.38ID:myPIEZhq0575デフォルトの名無しさん
2015/07/15(水) 13:09:59.11ID:/1JnBGZi0576デフォルトの名無しさん
2015/07/15(水) 14:23:12.87ID:eSiIKS6l0577デフォルトの名無しさん
2015/07/15(水) 17:55:24.68ID:JvXXYrIqclass c2{
public:
c1 c1A(),c1B();
c2(){
}
}
でいい?c1にコンストラクタ以外の初期化関数init()用意して
c2(){}内でc1A.init()みたいにした方がいい?
0578デフォルトの名無しさん
2015/07/15(水) 18:22:10.51ID:Hy0e54Lm0579デフォルトの名無しさん
2015/07/15(水) 18:27:12.98ID:Hy0e54Lmclass baka {
c1 c1A{}, c1B{};
};
0580デフォルトの名無しさん
2015/07/15(水) 18:28:56.80ID:sh5I1Ay1class c2{
public:
c1 c1();
c2()
{
}
}
は可能。ビャーネ本でも電卓つくる章で使ってる。
イニシャライザーの利用はプログラム内容にもよるが、基本は初期化リストでメンバー単位の初期化。
※ただしVS2013はメンバー変数のデフォルト初期化が実装されてないので注意
0581デフォルトの名無しさん
2015/07/15(水) 19:00:56.85ID:ED4DjS6K>初期化リストでメンバー単位の初期化
初期化リストで初期化できるコンストラクターは限定されるので
式リストでの初期化と使い分けが必要なんだが
どんな基本ですか
0582デフォルトの名無しさん
2015/07/15(水) 20:01:57.20ID:sh5I1Ay1?
std::initializer_listと勘違いしてる?
constructor : m_member1{}, m_member2{}
{
}
のことだよ、初期化リストは
0583デフォルトの名無しさん
2015/07/15(水) 20:35:36.50ID:4CumgDsMほうほう、それはISO/IEC 14882:2014 8.5p1のどこに書かれているのですか
0584デフォルトの名無しさん
2015/07/15(水) 21:15:42.79ID:sh5I1Ay1規格書はもってないっすね。
揚げ足とり楽しい?
質問や文章の核じゃない部分指摘して喜ぶ人の気持ちがわからない。
0585デフォルトの名無しさん
2015/07/15(水) 22:06:14.39ID:5tz0PrDk0586デフォルトの名無しさん
2015/07/15(水) 22:36:32.55ID:AGHZqgYMそれじゃないから。わからないなら参加しなくて良い。この前も言ったろう。
http://peace.2ch.net/test/read.cgi/tech/1435970316/234
234 デフォルトの名無しさん[sage] 2015/07/11(土) 20:04:46.34 ID:OROQmvPq
>>232
そうなの?
ISO/IEC 9899:2011の6.7.2.1でidentifierがoptになっているので
無名共用体はありかと思っていたが
0587デフォルトの名無しさん
2015/07/15(水) 22:51:53.49ID:5tz0PrDkわかるわからないじゃなくて
規格的にどうなのかで語ったらどうだ
0588デフォルトの名無しさん
2015/07/15(水) 23:00:10.36ID:5tz0PrDkinitializer-listは別のものを指すようだ
0589デフォルトの名無しさん
2015/07/15(水) 23:03:06.07ID:plmndce9試しに簡単なのを作ってみたのですがまともに動作しません…ミスを教えてください…
#include <stdio.h>
int main(){
float i;
i=0.0;
printf("円周率は?");
while(i!=3.14){
scanf("%d",&i);
printf("円周率は?");
}
return 0;
}
0590デフォルトの名無しさん
2015/07/15(水) 23:09:52.18ID:VsrdjrWK浮動小数点で==や!=を使ってはいけない
while (!(3.14 <= i && i < 3.15)) みたいにしましょう
0591デフォルトの名無しさん
2015/07/15(水) 23:11:53.10ID:gZn+GrQT完成したとして誰が使うんだよw
0593デフォルトの名無しさん
2015/07/15(水) 23:16:40.34ID:kjSyKbofアスペ1「全角文字が」
アスペ2「ampが宣言されていない」
アスペ3「どうなる結果を期待してどうなったから正しくないと考えたのか」
アスペ4「printfの位置が」
0594デフォルトの名無しさん
2015/07/15(水) 23:17:17.25ID:mJ5IXGTa「試しに」って文字が見えないのかw
そこは本題ではない
0595デフォルトの名無しさん
2015/07/15(水) 23:23:31.42ID:lbQgBKvw0596デフォルトの名無しさん
2015/07/15(水) 23:28:00.58ID:kjSyKbofむしろこの判定の方がドキドキする。間違っても
while (i < 3.14 || 3.15 <= i)
と書いちゃいけない
0597デフォルトの名無しさん
2015/07/15(水) 23:36:33.04ID:m06uAW0nそんなことだからお前は駄目なんだよ。
0598デフォルトの名無しさん
2015/07/15(水) 23:40:01.43ID:gZn+GrQT回しか使った事がない
0599デフォルトの名無しさん
2015/07/15(水) 23:47:11.82ID:jZhm9jEn浮動小数点を表わす変数名にiを使うという
のは、Fortranの暗黙の型を知っているものには
奇異というか、危なっかしく思います。
0600デフォルトの名無しさん
2015/07/15(水) 23:52:36.47ID:IOMA9RWgお前がカレーのアロマ漂わせてるだけじゃね?
0601デフォルトの名無しさん
2015/07/15(水) 23:53:57.44ID:mJ5IXGTa0602デフォルトの名無しさん
2015/07/15(水) 23:54:47.32ID:sh5I1Ay1その部分は書き込みミスです、申し訳ない。本当は、
c1 c = c1(なんか);
または、
c1 c = c1{};
と書くべきだった。
0603デフォルトの名無しさん
2015/07/15(水) 23:57:40.48ID:7aytSmTE定番に逆らうのはリーダビリティーの観点から避けるべき。
0604デフォルトの名無しさん
2015/07/16(木) 00:03:22.60ID:QLbygVn7>c1 c = c1{};
いくらなんでもこれはない
ホントならハゲは耄碌し過ぎじゃね
0605デフォルトの名無しさん
2015/07/16(木) 00:04:58.16ID:ebNFYd4N規格的にそこは関係ないから、規格書読む能力のないバカは参加するなという意味。
バカは「8.5のどこにあるんだ?」と言っている。確かに書いてないが、
initializer:
brace-or-equal-initializer
( expression-list )
とは書いてある。バカの主張によると
class c2{
public:
c1 c1(0);
}
が文法的に正しい事になるぞ。
0606デフォルトの名無しさん
2015/07/16(木) 00:08:17.10ID:ebNFYd4Nなんだ、結果的に援護しちまったが、お前もアホか。10年ROMってろ。
0607デフォルトの名無しさん
2015/07/16(木) 00:29:50.00ID:b9jYQG/+初期化リストの定義が書かれたのが8.5で
そこに書いてある定義が>>582と異なるのだよ。
何が関係ないだアホかお前は
0608デフォルトの名無しさん
2015/07/16(木) 00:39:17.89ID:ebNFYd4Nますます墓穴を掘ってる事に気付かないのか?
アホが書き損じたのはメンバー初期化リストってゆーんだよ。
それは12.6で定義されてるんだよ。8.5なんか必死に見ても書いてあるわけないんだよ。
死ねよ。バーカ。
0609デフォルトの名無しさん
2015/07/16(木) 05:21:26.30ID:DH20V41K0610デフォルトの名無しさん
2015/07/16(木) 07:10:09.41ID:eDioBQECますます墓穴を掘ってみじめwもうこなくていいぞww
0611デフォルトの名無しさん
2015/07/16(木) 08:30:19.01ID:M+IIab5iC関係のスレには、二人程触っちゃダメな人がいる。
一人は何も知らないくせに連発レスで暴れまくる人。
もう一人は割と知識があるんだけど自分が唯一絶対正義な人。
どちらも自分が正しいと思い込んでいる人なので、手に負えない。
§8.5の人は後者。
0612デフォルトの名無しさん
2015/07/16(木) 10:51:14.07ID:VCbbNaFFinputのiだろ(震え声)
0613デフォルトの名無しさん
2015/07/16(木) 12:18:02.04ID:ebNFYd4Nお前バカだろ。規格に拘って「8.5のどこに〜〜」と煽ったバカを煽り返しているんだから8.5に拘るのは当たり前だ。
>>602がアホなのは
文法的に間違いな例を提示し、さんざん考えた挙句、文法的には間違ってないが
わざわざ、効率の悪い例をひねくりだしたところ。
c1 c1{}; ← なぜこれを示せないのか? 理解してないからだ。
> もう一人は割と知識があるんだけど自分が唯一絶対正義な人。
お前、こないだhttp://peace.2ch.net/test/read.cgi/tech/1435970316/253で、敗北を認めた後もしばらく粘着してたバカか?
やっぱりバカはバカだな、絶対正義は魔道書(規格書ともいう)に決まっている。
バカが魔道書を誤読するのは勝手だが、それを伝道するな。
魔道書によらずに「これが正しいとか、これは間違っている」と発言するな。「xxというコンパイラでこうやれば出来る」は許してやる。
0614デフォルトの名無しさん
2015/07/16(木) 12:29:47.89ID:TjbeLhY10615デフォルトの名無しさん
2015/07/16(木) 12:56:52.70ID:ebNFYd4N0616デフォルトの名無しさん
2015/07/16(木) 13:45:20.38ID:sPiG5j/Gc1 c1{};
を使わなかったのは確かに、c1{}と、c = c1{};の違いが分かってないからです。
配列やC構造体スタイルの初期化、initialzer_listは別として、それ以外だとどっちも同じ意味と思ってます。
ちなみに>>602のときに、別にさんざん考えてはいません。
質問なんですが、visual c++でnew[]すると、最後のほうに「・・・[なんか半角文字]」がテキストビジュアライザーに乗ってるんですが、これはnewで確保したサイズを記憶してる部分でしょうか?
配列で記述すると現れないです。
0617デフォルトの名無しさん
2015/07/16(木) 13:55:28.33ID:sPiG5j/Gあとnew[]じゃなくてキーワードnew全般でした。
0618デフォルトの名無しさん
2015/07/16(木) 14:13:35.97ID:ebNFYd4N魔道書に通じていない者はC++を語ってはいけない。お前が使うだけなら被害は波及しない。
The initialization that occurs in the = form of a brace-or-equal-initializer or condition (6.4), as well as
in argument passing, function return, throwing an exception (15.1), handling an exception (15.3), and
aggregate member initialization (8.5.1), is called copy-initialization. [ Note: Copy-initialization may invoke
a move (12.8). —end note ]
The initialization that occurs in the forms
T x(a);
T x{a};
as well as in new expressions (5.3.4), static_cast expressions (5.2.9), functional notation type conversions
(5.2.3), mem-initializers (12.6.2), and the braced-init-list form of a condition is called direct-initialization.
0619デフォルトの名無しさん
2015/07/16(木) 14:22:09.41ID:ebNFYd4N> 質問なんですが、visual c++でnew[]すると、最後のほうに「・・・[なんか半角文字]」がテキストビジュアライザーに乗ってるんですが、これはnewで確保したサイズを記憶してる部分でしょうか?
・・・ ← 何をさしてるか分からないが、大抵のメモリアロケータではメモリブロックの「前」にサイズを記録している。
0620デフォルトの名無しさん
2015/07/16(木) 14:29:16.65ID:TjbeLhY1char* str = new char[N};
とやってstrの後ろに見えるのはゴミ
単に\0終端の文字列として表示してるだけだから
0621デフォルトの名無しさん
2015/07/16(木) 14:31:21.90ID:TjbeLhY1char* str = new char[N]ね
0622デフォルトの名無しさん
2015/07/16(木) 15:01:07.32ID:xXjliQ6Zありがとうございます.
終端なのにマルチバイトつかうんですね.「・・・」はテキストビジュアライザー
そのままの表記です.new[4]だったら「����・・H」こんな感じ.
っていうかcharのnewって自動で終端文字付加するのか.
0623デフォルトの名無しさん
2015/07/16(木) 15:11:11.49ID:TjbeLhY1new char[N]が初期化も終端文字付加もしないからそう見えるんだよ
0が現れるまでを文字列として表示してるだけ
0624デフォルトの名無しさん
2015/07/16(木) 16:03:01.76ID:xXjliQ6Zありがとうございました.
0625デフォルトの名無しさん
2015/07/16(木) 18:27:05.75ID:jTV5GdNwA a{};
A a = A();
後者は一時オブジェクトが構築されてコピーコンストラクターが呼ばれる
0626デフォルトの名無しさん
2015/07/16(木) 18:44:08.23ID:H1YViLnxnew char[n]
が前にサイズを記録する処理系なんて存在するの?
0627デフォルトの名無しさん
2015/07/16(木) 19:01:50.26ID:6frLwIp8一体なんの話をしているんだ
0628デフォルトの名無しさん
2015/07/16(木) 19:05:22.47ID:TjbeLhY1釣りはやめましょう
0629デフォルトの名無しさん
2015/07/16(木) 19:48:35.65ID:QGYl8+4Bコピコンを実装して、走らせればわかりますね。
0630デフォルトの名無しさん
2015/07/16(木) 20:18:49.04ID:0HInDZYoおい嘘つくな
http://ideone.com/vQfC6b
0631625
2015/07/16(木) 20:20:14.26ID:1BGxPTmV関数をprivateなり=deleteにしないと
規格8.5節 段落17によりコピーコンストラクターが2回呼ばれうる
0632デフォルトの名無しさん
2015/07/16(木) 20:23:05.68ID:QLbygVn70633デフォルトの名無しさん
2015/07/16(木) 20:34:41.63ID:QLbygVn7privateでもエラーにならないことがあるし
よくわからん
0634デフォルトの名無しさん
2015/07/16(木) 20:49:24.58ID:DH20V41Kいろいろ突っ込みたいけど
とりあえず2回呼ばれると言う2回はどの部分でどっから来たのか説明してみて
0635デフォルトの名無しさん
2015/07/16(木) 20:51:32.80ID:DH20V41K拘ってると言ったのはあんたじゃなくてそのレス先の事だよ
元の人がやんわりメンバイニシャライザのことと弁解しているのに
まだ拘ってるアスペの事
0636デフォルトの名無しさん
2015/07/16(木) 21:29:33.77ID:HxmqPCNRエサが投下されたら規格厨に粘着されるに決まってる。
元の質問そっちのけで用語の定義しか頭にない。
0637デフォルトの名無しさん
2015/07/16(木) 21:35:32.39ID:DH20V41K本人にその自覚を持ってもらわないと
自覚した上で荒らしてるなら、どうしようもないが
0638デフォルトの名無しさん
2015/07/16(木) 21:43:27.80ID:TjbeLhY1そうしないでへんてこりんな方向に持っていくのが荒らしだろ
0639デフォルトの名無しさん
2015/07/16(木) 21:52:03.56ID:QLbygVn7会話ができないからアスペなんだろ
0640625
2015/07/16(木) 23:04:35.77ID:zXNXIZXs目が節穴だったわ。2回も呼ばれない
>or if it is copy-initialization where the cv-unqualified version of the source type is the same class
を読み飛ばした
0641デフォルトの名無しさん
2015/07/17(金) 00:47:02.82ID:RTw9+8lcいえ、規格の話はいいんだけど
なぜ2回も呼ばれると思ったのか知りたかったんだ
その文がないとして呼ばれそうな部分ある?
0642デフォルトの名無しさん
2015/07/17(金) 06:42:14.37ID:CUSHLAJl>>583はQzって変態だよ。
公開オナニースレでのオナネタ供給がストップして発狂中
QzはCすらマスターしてないので、メンバーイニシャライザーの存在を知らない可能性大
0643625
2015/07/17(金) 07:18:09.46ID:kM6i16Cc「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回目が呼び出されると考えた
0644デフォルトの名無しさん
2015/07/17(金) 12:08:27.64ID:RTw9+8lcその文は、同系統の型はdirect-initializationとして処理するって意味っしょ?
無しとしてもcopy-initialization(=の記法)で起こるのは、
別の型だった場合にuser-defined conversionがあるぐらい
コピコン2回目は、それらの中で明示的に呼ばない限り走らないよね?
explicitやprivateとしたらill-formedとかの扱いでコンパイルできないだけだし
やっぱり何か別に勘違いしとると思うよ
0645デフォルトの名無しさん
2015/07/17(金) 12:38:51.74ID:RTw9+8lc連投&勘違いすまない、こっちがよくわかってなかった
user-defined conversionの後に連続2回という意味だね
自分の知らない処理が走りうるのかと思ってたんだ
わざわざレスありがとうございました
0646デフォルトの名無しさん
2015/07/17(金) 14:10:06.77ID:3GeB3ImXstd::move(t)は左辺値から右辺値へ変換するための関数だから、当然 t は左辺値であるべきですよね?
tを右辺値にしてる例をよく見るんですが、間違いなんでしょうか?
0647デフォルトの名無しさん
2015/07/17(金) 14:34:33.09ID:q0tTJLJ/tって名前がついてるんだから左辺値でしょ
ソースで説明してくれ
0648デフォルトの名無しさん
2015/07/17(金) 14:43:39.20ID:q0tTJLJ/0649デフォルトの名無しさん
2015/07/17(金) 15:07:13.81ID:7IoQrMPq0650646
2015/07/17(金) 16:14:19.93ID:3GeB3ImXたとえば↑のサイトでは、テンプレート関数の引数が左辺値か右辺値かで分ける例があったんですが
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する必要がないように思います
0651デフォルトの名無しさん
2015/07/17(金) 16:44:35.99ID:qgsB8yVYそうだねそのケースでは必要ないね
ただstd::moveには右辺値も渡せるようになってるんだから、そうしても「間違い」とは言えないよ
0652646
2015/07/17(金) 17:28:34.28ID:3GeB3ImX右辺値のままで問題ないわけですね
江添氏という大御所のサイトなので深読みしてしまいました
0653デフォルトの名無しさん
2015/07/17(金) 18:03:40.50ID:97JZ5equいい加減なうそを言うな。
0654デフォルトの名無しさん
2015/07/17(金) 18:20:37.67ID:shZ/TyQ7ID式tは右辺値参照型の左辺値です
type(右辺値参照/左辺値参照)とvalue category(lvalue/xvalue/prvalue)を混同しないで下さい
0655デフォルトの名無しさん
2015/07/17(金) 18:24:40.18ID:shZ/TyQ70656デフォルトの名無しさん
2015/07/17(金) 18:51:48.18ID:eaJ36lyY擬人化してないかな
0657デフォルトの名無しさん
2015/07/17(金) 19:41:57.37ID:qgsB8yVYどの辺が嘘なのかなあ?
「必要ない」なのか「間違いとは言えない」なのか?
人を嘘つき呼ばわりしたなら答えてね
0658デフォルトの名無しさん
2015/07/17(金) 19:49:51.19ID:qgsB8yVY0659デフォルトの名無しさん
2015/07/17(金) 20:04:11.60ID:7IoQrMPq0660デフォルトの名無しさん
2015/07/17(金) 20:11:45.80ID:qgsB8yVYクイズです
struct X {};
f(X());
でfへ渡されるtの型はなんでしょうか?
0661デフォルトの名無しさん
2015/07/17(金) 20:26:14.52ID:7V4RYMzcオツムに障害のあるバカには難しかったかな。
「そうだね」と言ってるわけだから
tが右辺値というのを肯定していることになる。
tは右辺値じゃなくて左辺値なんだぜ。
型は関係ない
0662デフォルトの名無しさん
2015/07/17(金) 20:31:19.69ID:qgsB8yVYなんだ毎度のバカ連呼のアスペ規格厨か
確かに江添の例はこの件においては不適切だけどね
質問者が問題にしてるのはmove(X())のmoveが必要かどうかってことだろ
0663デフォルトの名無しさん
2015/07/17(金) 20:42:05.43ID:97JZ5equそれともただのアスペなだけなのか立場をハッキリさせてほしいな。
0664デフォルトの名無しさん
2015/07/17(金) 20:42:43.35ID:7V4RYMzc0665デフォルトの名無しさん
2015/07/17(金) 20:47:52.42ID:qgsB8yVY質問者の意図が理解できなくて非本質的なところに難癖つけることしか出来ないアスペ規格厨の群れ
0666デフォルトの名無しさん
2015/07/17(金) 20:49:19.50ID:7IoQrMPq0667デフォルトの名無しさん
2015/07/17(金) 20:50:04.49ID:7V4RYMzc>質問者が問題にしてるのはmove(X())のmoveが必要か
初めてみました
どこから湧いて出てきたのそれ?
0668デフォルトの名無しさん
2015/07/17(金) 20:51:42.47ID:RTw9+8lcまあこういうのは実際やって見せるのが一番だよね
https://ideone.com/UsNiGW
0669デフォルトの名無しさん
2015/07/17(金) 20:54:13.07ID:qgsB8yVY何を得意になってるのか知らんけど
f1、f2のTは参照ですらないから当たり前だな
これ江添が荒らしてるようなもんだろ
0670デフォルトの名無しさん
2015/07/17(金) 20:56:35.13ID:qgsB8yVY>>664が読めないんだなアスペは
0671デフォルトの名無しさん
2015/07/17(金) 20:57:29.51ID:qgsB8yVY◯ >>644
0672デフォルトの名無しさん
2015/07/17(金) 20:58:47.28ID:qgsB8yVY>>646だった
0673646
2015/07/17(金) 20:58:58.51ID:3GeB3ImXというか質問スレがあったんですね・・・そちらで聞くべきでしたか
つまり、右辺値は関数の呼び出し側も受け手側も 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
}
0674646
2015/07/17(金) 21:01:32.94ID:3GeB3ImXありがとうございます、よく見てみます
0675デフォルトの名無しさん
2015/07/17(金) 21:15:13.07ID:7V4RYMzc>>646を読んで普通は>>647,>>649で示されたような勘違いこそが
問題の本質と気づくんだが
アスペは右辺値をmoveすることの是非が気になっちゃったんだな
0676デフォルトの名無しさん
2015/07/17(金) 21:25:08.25ID:qgsB8yVY>646は明らかに是非を問うてるんだが(「間違いなんでしょうか? 」)
俺はmove(X())のmoveは不必要だが間違いとはいえないと言ってるんだよアスペ君
0677デフォルトの名無しさん
2015/07/17(金) 21:27:49.31ID:qgsB8yVY�Aのfに渡されるtは単なるTで参照型ですらないよ
テンプレートの型のdeductionルールは確かに分かりづらいね
それと江添を引っ張ると大概荒れるから避けたほうが良い
0678デフォルトの名無しさん
2015/07/17(金) 21:28:41.85ID:7V4RYMzcまず↓を理解してくれ
void f(int && v) {
v;// 元は右辺値だけどここでは左辺値
move(v);//右辺値に戻す
}
int main() {
int v;//vは式じゃないので右辺値でも左辺値でもない
f( v );//vは左辺値(コンパイルエラー)
f( move(v) );// move(v)は右辺値
}
0679デフォルトの名無しさん
2015/07/17(金) 21:43:11.51ID:R2Je5ZhD> f( v );//vは左辺値(コンパイルエラー)
は?
もう無茶苦茶だなw
0680デフォルトの名無しさん
2015/07/17(金) 21:53:18.52ID:RTw9+8lc0681デフォルトの名無しさん
2015/07/17(金) 22:00:32.44ID:97JZ5equ0682デフォルトの名無しさん
2015/07/17(金) 22:09:56.79ID:R2Je5ZhD0683デフォルトの名無しさん
2015/07/17(金) 22:13:28.37ID:RTw9+8lc>>678から借りた
https://ideone.com/9zFOQP
>>682
lvalue-refとrvalue-refでの話なんだから全然変な例じゃないわけで
何ここ
初心者が上級者を罵倒するスレ?
0684デフォルトの名無しさん
2015/07/17(金) 22:19:47.21ID:7V4RYMzc�Aだってmove(t)」
↓
普通の人:�@について、tが左辺値であることを説明しようと例を出したり必死
バカ:�Aについて、右辺値のmoveが間違いでないことを説明しようと例を出したり必死
この会話が噛み合っていない
0685デフォルトの名無しさん
2015/07/17(金) 22:20:03.25ID:86J878Ki装置の前で、規格がどうたらなんてどうでもいい。
さっさと運転しろよ。
0686デフォルトの名無しさん
2015/07/17(金) 22:20:22.42ID:7V4RYMzc0687デフォルトの名無しさん
2015/07/17(金) 22:21:42.57ID:RTw9+8lcそもそも江添氏の例でmove省いたらlvalue vs rvalue-refでmove無いわけ
rvalueの意味がわかるというなら、それが何で理解できないの?
0688デフォルトの名無しさん
2015/07/17(金) 22:25:53.67ID:RTw9+8lcならせめて書いて確認しようよ
書けないならそれこぞ仕事出来ないにも程がある
0689デフォルトの名無しさん
2015/07/17(金) 22:27:54.54ID:R2Je5ZhD>>>678から借りた
>https://ideone.com/9zFOQP
これって何でエラーになるの?
手持ちのgcc 4.9.2 --std=c++14じゃエラーになんてならないんだけど
罵り合いを離れて純粋に分からない
0690デフォルトの名無しさん
2015/07/17(金) 22:30:34.28ID:7V4RYMzcVC「Error: an rvalue reference cannot be bound to an lvalue」
0691デフォルトの名無しさん
2015/07/17(金) 22:39:38.29ID:RTw9+8lcただのlvalueでrvalue-refじゃないから
わざわざg++4.9.2入れて確かめたけど
思いっきしcannot bind 'int' lvalue to 'int&&'って怒られたよ
コード変更してない?
0692689
2015/07/17(金) 22:42:08.16ID:R2Je5ZhDhttps://ideone.com/9zFOQP
のままだと手持ちのgcc 4.9.2 --std=c++14でもエラーになったわ
でも少しいじるとエラーにならなくなる
もう訳わからんけどもう少し条件を狭めて確かめようと思う
規格的にはどうなるのが正しいのよ
もう訳わからんわ
0693デフォルトの名無しさん
2015/07/17(金) 22:43:39.25ID:RTw9+8lcID:R2Je5ZhDは完全に荒らし目的だな
さっきからわざわざ間違った事を言って罵倒してるし
でなきゃ頭おかしい
0694デフォルトの名無しさん
2015/07/17(金) 22:47:34.08ID:7V4RYMzcまるで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のエラーと同じ文言だった
0695デフォルトの名無しさん
2015/07/17(金) 22:54:05.50ID:R2Je5ZhD俺様R2Je5ZhDの>>682の発言は正しかった
>>693
お前ごときに荒らし呼ばわりされる筋合いないから
0696デフォルトの名無しさん
2015/07/17(金) 22:55:17.38ID:RTw9+8lc>まるでrvalue-refならOKみたいなレスですね
語弊は認めるが、そんなつもりでは言ってないって
渡すのにmoveが必要とずっと言ってるだろ
0697デフォルトの名無しさん
2015/07/17(金) 22:57:42.59ID:JLRiqZ4DQZが頭がおかしくないはずがない
0698デフォルトの名無しさん
2015/07/17(金) 22:57:49.28ID:RTw9+8lcいや、お前は最初から間違ってるよw
確認もせずに否定したんだから
0699デフォルトの名無しさん
2015/07/17(金) 22:58:44.54ID:R2Je5ZhD事あるごとにQZとやらを持ちだして逃避するクズ
0700デフォルトの名無しさん
2015/07/17(金) 23:02:06.68ID:R2Je5ZhDお得意の難癖ですな
俺は>>668は質問者の意図からして不適切だと言っている
0701デフォルトの名無しさん
2015/07/17(金) 23:09:06.96ID:RTw9+8lcそれで難癖つけてるという難癖をつけるんです?
元はarguments deductionも含まれる話だから別に不適切じゃないよね?
何が不適切?
0702デフォルトの名無しさん
2015/07/17(金) 23:11:18.67ID:7V4RYMzc元「�@ 右辺値をmoveするのは間違い?
�A だってmove(t)」
↓
普通の人:�Aについて「tは左辺値」
バカ:�@について「右辺値のmoveは間違いでない。どうして理解できないの?」
普通の人:�Aについて「tは左辺値。どうして理解できないの?」
バカ:�@について「右辺値のmoveは間違いでない。どうして理解できないの?」
:
0703デフォルトの名無しさん
2015/07/17(金) 23:19:12.83ID:R2Je5ZhD元々の質問は「moveに右辺値を渡してる例があるがそれは間違いじゃないのか」というものだろ
この場合moveは必要じゃないけど間違っているとは言えないというのが俺の言い分だ
江添のアレを引気合に出した質問者もアレだが
まあ質問者の問いと斜めな方向にズラして議論を混乱させるいつもの展開だわね
0704デフォルトの名無しさん
2015/07/17(金) 23:28:20.65ID:RTw9+8lcもしあんたがID:qgsB8yVYなら自分のレスよく読めと言いたい
特に>>651
0705デフォルトの名無しさん
2015/07/17(金) 23:31:07.50ID:97JZ5equ>>677
>�Aのfに渡されるtは単なるTで参照型ですらないよ
とか言ってる時点で全然理解できてないのがまるわかりなんだよな
もう少し謙虚さがほしいところ
0706デフォルトの名無しさん
2015/07/17(金) 23:36:00.06ID:RTw9+8lcそれが質問者のベース知識の前提であって意図なんだから
ID:7V4RYMzcが言うように元の考えを正すことに意味があるのであって
ID:qgsB8yVYのように文を切り離して説明する事に意味はない
そんなの回答者が自己満足でしかない
0707デフォルトの名無しさん
2015/07/17(金) 23:37:43.54ID:RTw9+8lcまあ難癖とか言ってるから本人で間違いないと思うけど
0708デフォルトの名無しさん
2015/07/17(金) 23:37:53.66ID:R2Je5ZhD別にIDを隠そうとしたわけじゃなく、なんかしらんけど書き込めなくなったので
ルータを操作してIPアドレス変えただけ
それを宣言しなかったのは謝る
0709デフォルトの名無しさん
2015/07/18(土) 00:37:44.63ID:GBkyMXza0710デフォルトの名無しさん
2015/07/18(土) 00:48:06.74ID:OGvYy5uiしかしメンタルつえー
0711646
2015/07/18(土) 01:48:45.91ID:+Rsx7s6rどうやら左辺値・右辺値および左辺値参照・右辺値参照というものを正しく理解していないのが
自分の混乱の原因みたいです。
そこで確認させていただきたいのですが、以下の 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++の面白さでもあるんですかね
0712デフォルトの名無しさん
2015/07/18(土) 01:54:58.09ID:n8k6dcHe0713646
2015/07/18(土) 02:05:32.81ID:+Rsx7s6rありがとうございます。やはりそうですか
ということは、>>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 は右辺値に変換はされるが・・・
}
つまり、関数の仮引数は、右辺値参照だろうがなんだろうが、必然的に常に左辺値になってしまうということでしょうか
0714デフォルトの名無しさん
2015/07/18(土) 02:19:14.82ID:n8k6dcHe0715デフォルトの名無しさん
2015/07/18(土) 02:35:55.71ID:o/QnrV3k右辺値参照の左辺値なんて戯言は忘れたほうがいいよ
fのtの型は
f(x) → X&(左辺値参照)
f(std::move(y)) → X(単なる左辺値)
となる
この辺のルールは非常に分かりづらいね
0716デフォルトの名無しさん
2015/07/18(土) 02:37:57.07ID:ZEPmmqWJstd::move(y)を受け取るんだから
X&&でしょ
0717デフォルトの名無しさん
2015/07/18(土) 02:38:00.55ID:YtyUigYQ0718デフォルトの名無しさん
2015/07/18(土) 02:56:53.52ID:o/QnrV3kそう思うでしょ?
でもis_reference、is_rvalue_reference、is_lvalue_referenceを組み合わせて試した結果
参照でも何でもない単なるXになってるよ
テンプレートの引数型のdeductionルールは摩訶不思議
>>717
そうだよ
0719デフォルトの名無しさん
2015/07/18(土) 03:11:56.92ID:ZEPmmqWJreference collapsionで消える&&は引数についてる&&だと思ってたけど
Tについてる&&が消えるんだな
t自体の型は右辺値参照になってたわ
0720デフォルトの名無しさん
2015/07/18(土) 03:52:48.75ID:C7KIqrbe0721デフォルトの名無しさん
2015/07/18(土) 03:54:30.80ID:TrlsMEs4>参照でも何でもない単なるXになってるよ
ならないよ
消えるのはTの&&で、tは右辺値参照だろ
0722デフォルトの名無しさん
2015/07/18(土) 03:55:36.18ID:oxhll+kB「tの型はただのX」なんてのは当然
「TはただのX、(tはX&&)」の書き間違いだと思ってスルーしてたけど
まさか本気でf(X t)だと思ってたのか?
0723デフォルトの名無しさん
2015/07/18(土) 04:13:05.91ID:o/QnrV3k恥ずかしいけどその通りだわ無闇に混乱してた
弁解すれば、江添のコードがTの型をチェックしてるのでそれに引きずられたw
でも最初の質問「moveに右辺値を渡すのは間違いか?」についての答えは変わらないけどね
moveは不要だが間違いではない
0724デフォルトの名無しさん
2015/07/18(土) 04:15:36.03ID:n8k6dcHestd::move(t)しなきゃtはコピーされちゃうぞ
0725デフォルトの名無しさん
2015/07/18(土) 04:21:54.38ID:TrlsMEs4最初の文は間違いではないとか言われてもね…
ヤケクソかな
0726デフォルトの名無しさん
2015/07/18(土) 04:23:50.36ID:oxhll+kB誰も言わないのがかわいそうだから俺が言ってやろう
「moveに右辺値を渡すのは間違いか?」は
「別に間違いではない」で正しい
誰 も 否 定 し て な い ぞ(※>>725を除く)
そして↓のメッセージを読んで糞して寝ろ
http://ideone.com/MbV03B
0727デフォルトの名無しさん
2015/07/18(土) 04:25:41.81ID:dgWh7n0F正しいも間違いもないぞ
0728デフォルトの名無しさん
2015/07/18(土) 04:26:56.93ID:n8k6dcHeないって言ってるんだから間違いであることを否定してるじゃん
0729デフォルトの名無しさん
2015/07/18(土) 04:29:32.77ID:TrlsMEs4言っても理解しないよ
自分が勝った気になればそれで良いんだと思うよこのタイプは
0730デフォルトの名無しさん
2015/07/18(土) 04:31:09.70ID:oxhll+kB前提も何も、単発質問の「moveに右辺値を渡すのはC++の文法的に間違いか否か?」についての回答ですが何か?
>>728
間違いであることを否定してますが何か?
0731デフォルトの名無しさん
2015/07/18(土) 04:32:18.67ID:TrlsMEs4別に否定してないよ
自演かな?
0732デフォルトの名無しさん
2015/07/18(土) 04:35:01.33ID:TrlsMEs4こいつ本当何でもやるなあ
0733デフォルトの名無しさん
2015/07/18(土) 04:35:22.58ID:n8k6dcHemoveに渡してたのは右辺値じゃなかったでしょ?
>>650見てなかったのか?
0734デフォルトの名無しさん
2015/07/18(土) 04:35:29.70ID:4GeWeiMQ0735デフォルトの名無しさん
2015/07/18(土) 04:37:24.23ID:dgWh7n0Fだろ
なんか自演失敗して擁護が悲しいことになってるけど…
0736デフォルトの名無しさん
2015/07/18(土) 04:39:21.37ID:o/QnrV3kありがとう。糞して寝ます(明るくなってきちゃったハア)
>>729
勝った気になんてなってませんから!
0737デフォルトの名無しさん
2015/07/18(土) 04:41:13.10ID:TrlsMEs4流石に時間と場所考えろって…
0738デフォルトの名無しさん
2015/07/18(土) 04:42:23.86ID:o/QnrV3kR2Je5ZhD == ID:o/QnrV3k != ID:oxhll+kB
だよ
負けは認めますけど自演認定はやめて下さい
0739デフォルトの名無しさん
2015/07/18(土) 04:43:57.31ID:o/QnrV3k0740デフォルトの名無しさん
2015/07/18(土) 04:51:05.98ID:TrlsMEs40741702
2015/07/18(土) 05:15:13.00ID:oxhll+kB日本語が弱いようだから説明してやろう
『「(例とは無関係な一般的なC++の文法として)moveに右辺値を渡すのは間違いか?」は
「別に間違いではない」で正しい
(「別に間違いではない」というお前が固執し続けてきた意見は)誰 も 否 定 し て な い 』
という意味だ
0742デフォルトの名無しさん
2015/07/18(土) 11:02:20.46ID:4iDO3/6jX x( t ) ;
else
X x( std::move(t) ) ;
江添氏は実行されない方のコードもコンパイルは
されることを認識してたんだろうか
ありがちな記述ミスの形をしているので気になった
0743デフォルトの名無しさん
2015/07/18(土) 13:28:55.34ID:o/QnrV3kその記事の江添は俺と同程度以上に誤解してるよ
まあそれは5年以上前の記事だけどね
でも「実行されない方のコード」というあなたもまだ誤解してる
C++のテンプレートの型ルールは本当に難しいね
0744デフォルトの名無しさん
2015/07/18(土) 13:35:03.61ID:o/QnrV3kなにはともあれ俺にとってはテンプレート関数の理解が前進した一日でした まる
0745デフォルトの名無しさん
2015/07/18(土) 14:02:05.58ID:4iDO3/6jまじかよ おどろきだ
0746デフォルトの名無しさん
2015/07/18(土) 14:41:46.95ID:bOEkw/VG>void f( T && t ) // この t は「右辺値参照の左辺値」
わかってるとは思うけどそれは右辺値で呼ばれる時の話で
左辺値xで呼ばれるfのtは左辺値参照だぞ
f( x ) = f<X &>(x)
T && = X & && = X &
void f( T && t ) = void f(X &t)
0747デフォルトの名無しさん
2015/07/18(土) 15:56:20.31ID:C7KIqrbeお前まだ理解できてないのかよ。Javaでもやってろ
0748デフォルトの名無しさん
2015/07/18(土) 15:58:50.31ID:ihNXNCvt0749デフォルトの名無しさん
2015/07/18(土) 16:29:10.29ID:TrlsMEs4岡部健のご同類
0750デフォルトの名無しさん
2015/07/18(土) 17:01:18.70ID:Kjz+WqVJ0751デフォルトの名無しさん
2015/07/18(土) 17:03:29.52ID:TrlsMEs40752デフォルトの名無しさん
2015/07/18(土) 17:10:23.40ID:C7KIqrbe0753デフォルトの名無しさん
2015/07/18(土) 17:14:24.89ID:TrlsMEs40754デフォルトの名無しさん
2015/07/18(土) 19:00:14.93ID:Kjz+WqVJ0755デフォルトの名無しさん
2015/07/19(日) 01:50:34.76ID:uuV0Uo080756デフォルトの名無しさん
2015/07/19(日) 02:13:06.80ID:rizf9cO8アスペ ID:oxhll+kB
キチガイ ID:o/QnrV3k
この三人を押さえておけばOK
あとはゲスト
0757デフォルトの名無しさん
2015/07/19(日) 02:23:02.44ID:CK6DPL2Aパン作り板にでも行ってこい
0758デフォルトの名無しさん
2015/07/19(日) 02:27:30.09ID:rizf9cO8>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね
0759デフォルトの名無しさん
2015/07/19(日) 02:49:40.63ID:iK86efF8http://ideone.com/dU9dtb
これの"2"がcopyになってしまうんですが、どうしてですか?
規格のどの部分の規定によりこうなるのか知りたいです
0760デフォルトの名無しさん
2015/07/19(日) 02:56:51.32ID:36W6lgqU0761デフォルトの名無しさん
2015/07/19(日) 03:11:02.31ID:binYh77Kstatic_cast<T&&>(t)
が
static_cast<X& &&>(t)
に展開されて
さらに
static_cast<X&>(t)
と&&減るからです
ttp://d.hatena.ne.jp/gintenlabo/20100916/1284657258
規格はここに書いてる
0762デフォルトの名無しさん
2015/07/19(日) 03:24:53.89ID:iK86efF8ありがとうございます。規格の該当部分を精読します。
直感的には全部moveになって欲しいんですが、どういう理由でこうなってるんですかね?
0763デフォルトの名無しさん
2015/07/19(日) 03:30:36.07ID:binYh77Kf(x);で渡してるのは参照だから
プログラマが明示しないかぎり勝手にmoveされるのは困るでしょ
テンプレート内ではmoveではなくforward<T>(t)を使うべき
そうすれば右辺値が渡されればmove、左辺値が渡されればcopyされる
0764デフォルトの名無しさん
2015/07/19(日) 03:39:14.61ID:iK86efF8f()では左辺値だろうが右辺値だろうがmoveしたいんです
static_cast<T&&>(t)で十分に明示になってると思うんですがねえ
どうしてこういう規格にならざるを得なかったのかもう少し調べてみます
0765デフォルトの名無しさん
2015/07/19(日) 07:20:27.46ID:rizf9cO8>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね
0766デフォルトの名無しさん
2015/07/19(日) 08:35:41.71ID:iu/AL9yjhttp://melpon.org/wandbox/permlink/cjb6akMJJVY25X3Q
0767デフォルトの名無しさん
2015/07/19(日) 08:56:58.98ID:rizf9cO8>アスペ ID:oxhll+kB
0768デフォルトの名無しさん
2015/07/19(日) 14:01:27.47ID:I4MCl2HA誤魔化す以外にそんなレスする奴がいると思ってるのか
0769デフォルトの名無しさん
2015/07/19(日) 14:33:02.83ID:QpRpKQBg>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね
0770デフォルトの名無しさん
2015/07/19(日) 17:27:14.04ID:iU13bViu数学I、数学�U、数学�Vみたいに似通ったところはあるのでしょうか
0771デフォルトの名無しさん
2015/07/19(日) 17:41:37.09ID:F7g9AAKVC⇒C++はほぼ上位互換性で、C#はC++++から名付けられた説があるし、
構文なんかはC++から取ってきてる。
0772デフォルトの名無しさん
2015/07/19(日) 17:44:56.51ID:9N4IERvrC‡
C♯
C#
C‡‡
C##
これ全部違うんだよ
0773デフォルトの名無しさん
2015/07/19(日) 17:45:02.22ID:F7g9AAKVC#に関して何か興味深い秘話はあるか?
「C#」という言語名を決めたときの話だが、もともとC#プロジェクトのコード名は、「COOL」(C like Object Oriented Language)だった。
だが、すでにほかの製品で使われているなどの理由で、この名前は採用されなかった。
ほかの案として、「EC」(イーシー)、「C2」(シー・スクウェア)、「C3」、また音楽の要素を取り入れて「C#」、元素の名前から「Cs」(シー・セシウム)などが出てきた。
「C#」を近くでよーく見ると、「C++++」に見える。そのような理由で最終的に「C#」という名前に落ち着いた。
http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html
0774デフォルトの名無しさん
2015/07/19(日) 18:22:29.91ID:MTXI4NoMMyObject* 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]); になる?
0775デフォルトの名無しさん
2015/07/19(日) 18:36:25.78ID:ckceIrW4こっち
0776デフォルトの名無しさん
2015/07/19(日) 18:56:36.67ID:iU13bViuありがとうございます
AndroidやiPhoneのアプリを作ってみたいんですが
C言語だとどれを勉強するといいでしょうか?
0777デフォルトの名無しさん
2015/07/19(日) 20:11:22.73ID:iu/AL9yj間違いではないからと言って不適切なコードを正してあげないとは酷い人ですね
0778デフォルトの名無しさん
2015/07/19(日) 20:25:25.80ID:ckceIrW4vectorやstringを勧めるということでしょうか?それともmake_uniqueですか?
私の頭では他にどう答えたらよいか思い浮かびませんでした。
どうか完璧な回答をご教示いただけませんか?
0779デフォルトの名無しさん
2015/07/19(日) 21:31:15.63ID:ckceIrW40780デフォルトの名無しさん
2015/07/19(日) 22:09:14.54ID:MTXI4NoMありがとうございます。
vc10なので、std::make_unique使えないのです。
std::stringは使わないけど、std::basic_string<TCHAR>なら、たまに使います。
元JAVA使いなので、C++の基本を知らずに使ってるかも知れませんww
0781デフォルトの名無しさん
2015/07/19(日) 23:16:16.53ID:ckceIrW4unique_ptrに拘る理由がないならvectorがお勧めだよ。
0782デフォルトの名無しさん
2015/07/19(日) 23:29:29.46ID:J4Ltq9z4#include <random>
int main(){
std::random_device rd;
std::cout << rd() << std::endl;
return 0;
}
で出力される値が何度実行しても同じになってしまうのですが何故でしょう
0783デフォルトの名無しさん
2015/07/19(日) 23:40:35.83ID:uuV0Uo080784デフォルトの名無しさん
2015/07/19(日) 23:51:24.10ID:iK86efF8そのコードには全く問題ないよ
ライブラリ以下が正しく機能してない
もしかして組込み?環境を書いてもらわないと
0785デフォルトの名無しさん
2015/07/19(日) 23:52:11.35ID:iu/AL9yjんなこたーない
ただの処理系のバグだろう
0786デフォルトの名無しさん
2015/07/20(月) 00:34:00.09ID:d2x9KMbz環境についての情報を書いて
0787デフォルトの名無しさん
2015/07/20(月) 00:59:06.25ID:eqB+tjvJ嫌どす
コードに全く問題ないなら
なんで環境を書かんといかんの
0788デフォルトの名無しさん
2015/07/20(月) 01:14:46.08ID:d2x9KMbzそれなら誰にも原因について確たる答えを用意できないことが最初から決まってしまうんだから
そもそも質問するな馬鹿
0789デフォルトの名無しさん
2015/07/20(月) 01:20:14.66ID:UX3o5Q0t0790デフォルトの名無しさん
2015/07/20(月) 01:25:44.00ID:theP84i7規格にこだわる人間はコードの問題かどうかを気にして実装の不具合には興味がない
これは後者のパターン
0791デフォルトの名無しさん
2015/07/20(月) 01:27:43.11ID:0igkruKl原因究明を重視するのは、いずれにも属さないんだな
0792デフォルトの名無しさん
2015/07/20(月) 01:28:56.83ID:/EsSmyHW0793デフォルトの名無しさん
2015/07/20(月) 01:41:29.65ID:eKxXjUv7というかおよそ原因には心当たりあるけど
環境が分からないと全然違ってる恐れがあるから今のところここでは書けないよな。
0794デフォルトの名無しさん
2015/07/20(月) 01:48:38.60ID:Zw2a1PSh質問文の不備を減らせばもっと有益な情報得られるかもしれないのに
お前の損得に直結する岐路で、どうして情報得られない方を選ぶのだろう?
情報欲しがってない奴がどうして質問なんかしてるのだろう?
ひょっとして頭の障害か何か?
0795デフォルトの名無しさん
2015/07/20(月) 01:52:24.48ID:theP84i7オツムに障害を持った人の特長
0796デフォルトの名無しさん
2015/07/20(月) 02:22:46.21ID:8grmR+UY> コードに全く問題ないなら
それまだ確定してないでしょ?
「処理系のバグだろう」という「だろう」レベルの意見をひとつ貰っただけで
早くも決めつけちゃってるわけですか?
とりあえずプログラマに向いてなさそう
ばいばい別世界の住民さん
0797デフォルトの名無しさん
2015/07/20(月) 02:43:27.95ID:gdO7FQR/0798デフォルトの名無しさん
2015/07/20(月) 02:47:08.95ID:theP84i7その情報が何か有益なの?
0799デフォルトの名無しさん
2015/07/20(月) 02:48:20.37ID:UX3o5Q0t>質問者は必ず環境を書きましょう。
って書いてるのに書かないアホに付き合わなくてもいいでしょ
0800デフォルトの名無しさん
2015/07/20(月) 02:56:00.65ID:theP84i70801デフォルトの名無しさん
2015/07/20(月) 03:02:23.28ID:/EsSmyHW規格の§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可能に思えるんですが、何か見落としてますか?
0802デフォルトの名無しさん
2015/07/20(月) 03:16:00.47ID:theP84i7〜761より抜粋〜
『static_cast<X&>(t)と&&減るから』
0803デフォルトの名無しさん
2015/07/20(月) 03:25:11.29ID:/EsSmyHW>>782のコード自体には問題がないのは確定してるよ
これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる
考えられるのは>>782の環境ではハードウエアエントロピーを反映する機構が組み込まれていないのではないかと
0804801
2015/07/20(月) 04:06:41.03ID:/EsSmyHWstd::moveの実装はみんな参照をremoveしてから&&付けてるから
§8.3.2-6を字句どうりに読めばtypedef 、type template-parameter、decltype-specifier
以外ではT& &&はエラーにならなきゃいけないと思うんだが
俺が何か見落としてるんだろうけど何なのか分からない
0805デフォルトの名無しさん
2015/07/20(月) 04:23:53.19ID:/EsSmyHWTがtemplate-parameterなら
T& &&は全てT&に変換されると
ホント難しいわ
0806デフォルトの名無しさん
2015/07/20(月) 04:39:27.70ID:theP84i7まあ結論は変わらないけど
0807デフォルトの名無しさん
2015/07/20(月) 04:42:29.86ID:/EsSmyHWやっと分かった
>>801、>>804は寝言ですので忘れて下さいごめんなさい
0808デフォルトの名無しさん
2015/07/20(月) 04:48:36.62ID:/EsSmyHWあっそうなんだ
買う気しないから最終ドラフト読んでたw
0809デフォルトの名無しさん
2015/07/20(月) 09:14:19.77ID:qaRX0VWC>これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる
とりあえずプログラマに向いてなさそう
0810デフォルトの名無しさん
2015/07/20(月) 09:49:53.29ID:j3bVGMZRstd::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));
を使うのと似ているね
0811デフォルトの名無しさん
2015/07/20(月) 10:11:47.48ID:theP84i7ほうほう、疑似乱数を返すとどうして「次善策」に飛躍してしまうのですか?
0812デフォルトの名無しさん
2015/07/20(月) 10:12:41.50ID:F9PK3kSV0813デフォルトの名無しさん
2015/07/20(月) 10:18:59.83ID:Ebj0wxFBいつも同じ乱数吐くけどそれかね
0814デフォルトの名無しさん
2015/07/20(月) 10:26:27.58ID:/EsSmyHW0815デフォルトの名無しさん
2015/07/20(月) 10:28:20.95ID:/EsSmyHWstd::random_deviceには種は与えられないから
0816デフォルトの名無しさん
2015/07/20(月) 10:30:11.56ID:theP84i7>0 が表示されたらその処理系では真の乱数がサポートされてい
とりあえす嘘を教えるな
0817デフォルトの名無しさん
2015/07/20(月) 10:32:56.85ID:/EsSmyHWお前は
とりあえず人間として生きるのに向いてなさそう
0818デフォルトの名無しさん
2015/07/20(月) 10:35:34.58ID:UX3o5Q0tttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/src/c%2B%2B11/random.cc
cygwinに入ってるのはちゃんとしてるのかね
やっぱりmt19937を呼んでるな
0819デフォルトの名無しさん
2015/07/20(月) 10:36:39.90ID:JaqU9d1iハードウェアエントロピーを取得できるか確認せず
取得できると決め込んで処理して
その結果意図した挙動をしないのだから
明らかにコードの問題だろう
これでコードに問題ないと決めつけてるのはどうかしてる
0820デフォルトの名無しさん
2015/07/20(月) 10:39:02.21ID:theP84i7GCCだとentropy()が0を返すな
こいつは信用ならない
>>819
何故ですか?
規格上はハードウェア機能の有無に関わらず固定値を返してはなりませんよ
0821デフォルトの名無しさん
2015/07/20(月) 10:41:32.31ID:1Qy7XHWg0822デフォルトの名無しさん
2015/07/20(月) 10:42:42.77ID:j3bVGMZR>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は手抜きだな
0823デフォルトの名無しさん
2015/07/20(月) 10:43:44.83ID:Ebj0wxFB0824デフォルトの名無しさん
2015/07/20(月) 10:45:36.38ID:/EsSmyHW規格の§26.5.6-5には
If the implementation employs a random number engine, returns 0.0.
とあるから>>810は嘘ではない
0825デフォルトの名無しさん
2015/07/20(月) 10:45:37.50ID:theP84i7>instead of a real-random number generator
なるほどそれか、勘違いしたすまぬ
0826デフォルトの名無しさん
2015/07/20(月) 10:50:55.65ID:/EsSmyHW0827デフォルトの名無しさん
2015/07/20(月) 10:58:15.70ID:ZwKNfUvhエントロピーってなに?
0828デフォルトの名無しさん
2015/07/20(月) 10:59:24.66ID:/EsSmyHWReturns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive.
It is implementation-defined how these values are generated.
0829デフォルトの名無しさん
2015/07/20(月) 11:02:57.44ID:/EsSmyHW>>819
ライブラリにバグが有り迂回措置をしなきゃならないことはままあることだけど
それと>>782のコード自体には問題がないことは別の話
0830デフォルトの名無しさん
2015/07/20(月) 11:10:17.00ID:MKIWYuprentropy()が0.0を返すのなら毎回同じ乱数系列になっても文句は言えないという事なだけで
0831デフォルトの名無しさん
2015/07/20(月) 11:22:06.61ID:/EsSmyHWtime()すらサポートできない環境もあるだろうけどな
でも規格ではoperator()はnon-deterministic random valueを返さなきゃならないことになってる
同じ種による擬似乱数ならnon-deterministicにはならない
0832デフォルトの名無しさん
2015/07/20(月) 11:24:22.43ID:Ebj0wxFB0833デフォルトの名無しさん
2015/07/20(月) 11:25:45.09ID:MKIWYuprいやいやoperator()は単に乱数エンジンを呼び出して次の新しい乱数を返すだけでしょ
0834デフォルトの名無しさん
2015/07/20(月) 11:26:23.38ID:theP84i7または例外をスローしなければならない
0835デフォルトの名無しさん
2015/07/20(月) 11:33:27.11ID:JaqU9d1i環境が毎度同じ値をハードウェアエントロピーとして返してたら例外にしようにも判断できないだろう
0836デフォルトの名無しさん
2015/07/20(月) 11:33:39.96ID:/EsSmyHWentoropy()==0な環境ならそうだけど
問題はその場合の擬似乱数の種だよ
エントロピーを持った種を生成する手段が全くない環境ではstd::random_deviceは規格通りに実装できないと思う
0837デフォルトの名無しさん
2015/07/20(月) 11:38:55.35ID:uNOqpDKk本当の原因については何もかも憶測だわな
0838デフォルトの名無しさん
2015/07/20(月) 11:40:06.20ID:/EsSmyHW§26.5.6-7に例外規定があるね
例外に該当するにも関わらず例外上げないならやっぱりバグだね
0839デフォルトの名無しさん
2015/07/20(月) 11:41:48.34ID:theP84i7同じ値が返りうるものを使ってrandam_deviceを作ったら
それは処理系のバグです
0840デフォルトの名無しさん
2015/07/20(月) 11:56:27.72ID:skw8xdREじゃあ、/dev/randomは使えないんだな
0841デフォルトの名無しさん
2015/07/20(月) 12:07:53.20ID:2F+fvzmsそのような仕様は無い
0842デフォルトの名無しさん
2015/07/20(月) 12:16:22.99ID:theP84i7仕様にあるかどうかじゃなくて
仕様を満たす物を作るかどうかという話なんだが
馬鹿には難しかったかな
0843デフォルトの名無しさん
2015/07/20(月) 12:18:07.44ID:RGuMbU6Uお前が言ってるような要求の仕様があるかないかだろ
馬鹿か
0844デフォルトの名無しさん
2015/07/20(月) 12:19:24.81ID:19+QQn1h> それは処理系のバグです
どうしてこういうデマを思いつけるの?
親の教育?
0845デフォルトの名無しさん
2015/07/20(月) 12:21:14.86ID:theP84i7知らなかったのなら教えてやろう
>>828で規定されているのだよ
0846デフォルトの名無しさん
2015/07/20(月) 12:28:17.77ID:CPoN3U++0847デフォルトの名無しさん
2015/07/20(月) 12:28:53.22ID:/EsSmyHW・ライブラリが擬似乱数を使うならentropy()はゼロを返さなければならない
・しかし、その場合でもoperator()は何らかの手段でnon-deterministicな値を返さなければならない
・それすら出来ないなら例外を上げなければいけない
>>810の
>これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて
>常に擬似乱数を返すようになっている
までは正しいが、それ以降はバグってるライブラリに対する迂回処置
規格を順守するならtry〜catchで確認しなければならないけどライブラリがバグってて例外上げないなら
意味がなく>>810みたいなことをやらなきゃならない
でもそんな環境ではstd::chrono::system_clock::now()やtime()が使い物になるかどうかすら試してみなきゃわからない
0848デフォルトの名無しさん
2015/07/20(月) 12:39:30.02ID:kZPq/fe7そこにはそんなこと書いてない
書いているのは取得できなかった場合にthrowしろということだけだ
ハードウェアないしそれをエミュレートするソフトウェアが同じ値を返したときに
その不自然さの判定をライブラリーに要求する仕様は存在していない
そもそも非決定性乱数だと名乗る数列に対してそれが非決定性乱数でないと外部から証明することは不可能
0849デフォルトの名無しさん
2015/07/20(月) 12:41:33.14ID:ewQgCmywentropy()が0なら例外を吐くようにするとかの手段はある
0850デフォルトの名無しさん
2015/07/20(月) 12:42:27.08ID:VhxPp0/8>自演 ID:n8k6dcHe=ID:TrlsMEs4
>アスペ ID:oxhll+kB
>キチガイ ID:o/QnrV3k
の不毛な規格論争が血気盛んですね
0851デフォルトの名無しさん
2015/07/20(月) 12:50:52.26ID:CPoN3U++0852デフォルトの名無しさん
2015/07/20(月) 12:53:14.65ID:5h6P6Rwy> 同じ値が返りうるものを使ってrandam_deviceを作ったら
> それは処理系のバグです
つまり、/dev/urandomや/dev/randomのようなユーザーが書き換えられる擬似デバイス
すなわち「同じ値が返りうるもの」を使ってはならない仕様だと言いたいのですね?
0853デフォルトの名無しさん
2015/07/20(月) 12:54:33.43ID:miZegYar0854デフォルトの名無しさん
2015/07/20(月) 12:56:56.05ID:CPoN3U++本当に同値しか返さないなら証明可能だぞ
むしろ反証ができないわけで
0855デフォルトの名無しさん
2015/07/20(月) 13:05:03.81ID:ewQgCmyw#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()が非決定性の乱数を返すとはどこにも書かれてない
擬似乱数でもいいから得られれば例外を吐かないと読めるんだが
0856デフォルトの名無しさん
2015/07/20(月) 13:06:57.42ID:theP84i70857デフォルトの名無しさん
2015/07/20(月) 13:09:28.33ID:CPoN3U++>operator()が非決定性の乱数を返すとはどこにも書かれてない
少なくとも、前提はどうあれ明らかに書いてあるものを出して
どこにも書かれてないは嘘だろ
0858デフォルトの名無しさん
2015/07/20(月) 13:11:49.80ID:ewQgCmywじゃあこの処理系のバグだな
rd()を呼び出した時点でstd::exceptionを継承した例外を吐かなければ規格に一致してないわけか
0859デフォルトの名無しさん
2015/07/20(月) 13:14:36.84ID:HS03ITz90860デフォルトの名無しさん
2015/07/20(月) 13:16:01.20ID:CPoN3U++0861デフォルトの名無しさん
2015/07/20(月) 13:20:50.77ID:theP84i7規格に違反はしてないぞ
0862デフォルトの名無しさん
2015/07/20(月) 13:24:27.46ID:CPoN3U++gccが微妙な対応とは思わなんだ
(正確にはlibstdc++だけど)
0863デフォルトの名無しさん
2015/07/20(月) 13:30:25.55ID:qtHFk0LE0864デフォルトの名無しさん
2015/07/20(月) 13:45:33.88ID:yFbTkFIhlinuxでもurandom書き換えられたらwindowsと変わらない
linuxで要件満たすのは不可能
0865デフォルトの名無しさん
2015/07/20(月) 13:59:56.44ID:ewQgCmywこんなのでも差すしかないんじゃね
0866デフォルトの名無しさん
2015/07/20(月) 14:16:13.79ID:/EsSmyHWつきつめると結局ラプラスの悪魔の話にまでいっちゃう
0867デフォルトの名無しさん
2015/07/20(月) 14:19:54.76ID:kIIIo7Lt>>810 さんの
>std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());
を使うことで解決しました
ちなみに環境はwindowsのgcc4.9.2です
0868デフォルトの名無しさん
2015/07/21(火) 00:56:27.52ID:tw33l9e0しかしメンバーが静的なクラスばかりになってしまい、
Class::Func()のような処理ばかりで、Cで関数使っていた頃との違いが実感できません
オブジェクト指向を身に付ける為に、こういう処理を作ってみると良いってモノがあれば教えて欲しいです
0869デフォルトの名無しさん
2015/07/21(火) 01:04:02.59ID:iAnJqoKIそんなので作ってたら悪い癖が固まる
本でも読んでろ
0870デフォルトの名無しさん
2015/07/21(火) 01:13:35.48ID:Ekp6Lmit0871デフォルトの名無しさん
2015/07/21(火) 01:31:58.55ID:tw33l9e0ありがとうございます
早速本屋で探してみます
0872デフォルトの名無しさん
2015/07/21(火) 01:54:30.04ID:BsRxe1GP何のためにstaticにしてんの?
0873デフォルトの名無しさん
2015/07/21(火) 03:03:44.28ID:l6C/lcEiそりゃなんと言ってもデザインパターンだろ
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)
0874デフォルトの名無しさん
2015/07/21(火) 03:04:14.07ID:l6C/lcEi×>>872
○>>868
0875デフォルトの名無しさん
2015/07/21(火) 03:05:29.24ID:tw33l9e0オブジェクト毎に持つ必要性が無い値だと思ったからです
DirectXやDirectInputの利用で、
初期化したデバイスのポインタをクラス変数として保持し、派生先のクラスで利用できるようにしてました
その結果、
DirectX::Initialize() とか、DirectInput::GetKeyState() のような処理を使わざるを得なくなりました
これではグローバル変数でデバイス保持してた、クラス未使用の頃とやってる事が同じだから何か違うなーと
0876デフォルトの名無しさん
2015/07/21(火) 21:29:05.54ID:MZjkxTxwもうちょっとオシャレな人たちは、シングルトンを使う。
0877デフォルトの名無しさん
2015/07/22(水) 00:12:51.45ID:N6B7rSAC0878デフォルトの名無しさん
2015/07/22(水) 00:35:33.34ID:V3PTIB1wこれ使えば全部やってくれるよってクラスにするのが
最終的な目標って感じかなぁ
0879デフォルトの名無しさん
2015/07/22(水) 16:33:13.94ID:vU2lJ4S0宣伝条項とか有るんでないの。
GNU製品を使う場合、商用製品を貶さなければならないとかさ。
よう知らんけど。
0880デフォルトの名無しさん
2015/07/22(水) 18:52:41.66ID:QLvVRyDz0881デフォルトの名無しさん
2015/07/22(水) 18:57:26.61ID:KhraFoTS0882デフォルトの名無しさん
2015/07/22(水) 19:55:00.74ID:Uuj8BVVu0883デフォルトの名無しさん
2015/07/22(水) 19:56:09.51ID:KhraFoTS0884デフォルトの名無しさん
2015/07/22(水) 20:00:47.95ID:RSJsUGeJ0885デフォルトの名無しさん
2015/07/22(水) 20:59:56.40ID:6tF8DM8Vプログラミングを忘れ、まともな人生を歩む事を考える
0886デフォルトの名無しさん
2015/07/22(水) 21:51:13.30ID:Md5kWR9m0887デフォルトの名無しさん
2015/07/22(水) 23:02:09.87ID:vClKc3rH「○○作ってみたい」から考え始めてそれを実現するための関数1つでも作ってみる
0888デフォルトの名無しさん
2015/07/23(木) 00:30:25.25ID:5whcWqvP0889デフォルトの名無しさん
2015/07/23(木) 11:22:52.88ID:Yxc4xF6uAndroid機器で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]で検索してもそれらしいものが引っ掛かりません。
解法を教えてください。あるいは、どんなキーワードで検索したら解決しますか?
0890デフォルトの名無しさん
2015/07/23(木) 15:24:00.49ID:1xg3cb1R0891デフォルトの名無しさん
2015/07/23(木) 16:09:41.76ID:5whcWqvP0892デフォルトの名無しさん
2015/07/23(木) 16:56:05.66ID:P0N6qRSqandroid studioじゃダメなん?
0893デフォルトの名無しさん
2015/07/23(木) 17:19:07.64ID:s5ALrjlX0894デフォルトの名無しさん
2015/07/23(木) 17:21:00.21ID:P0N6qRSqそういう事か。
エミュレータだと糞遅いもんなあ
0895デフォルトの名無しさん
2015/07/24(金) 16:05:42.76ID:nCR9QL2rC4droidでC++11を書いていますが、タブ式のエディタでないことと、分割コンパイルができないことで大変苦労しています。
0896デフォルトの名無しさん
2015/07/24(金) 16:12:19.00ID:pDMzRj5e0897デフォルトの名無しさん
2015/07/24(金) 17:46:40.13ID:/55SuOijAPP_CPPFLAGS := -std=c++11
って書けばいいんじゃないの
0898デフォルトの名無しさん
2015/07/25(土) 10:31:50.76ID:pSI/1ixo0899片山博文MZ ◆T6xkBnTXz7B0
2015/08/01(土) 22:37:45.46ID:/RIOF0J6パスファイル名のリストに展開したいのだが、いい方法はないだろうか?
0900デフォルトの名無しさん
2015/08/01(土) 23:33:42.45ID:CYsajC4SResolve-Path C:\TEMP\*.txt
C:\TEMP\test1.txt
C:\TEMP\test2.txt
C:\TEMP\test3.txt
0901デフォルトの名無しさん
2015/08/01(土) 23:36:31.87ID:UaSYqc/xスレ違いは去れ
0902デフォルトの名無しさん
2015/08/02(日) 00:38:55.04ID:+SVNoiwHいちいち五月蝿いんだよ。阿呆かよ。
0903デフォルトの名無しさん
2015/08/02(日) 00:40:51.05ID:G4TAbL+8(MSCなら)スタートアップのリンクモジュールを変える
実行時引数のワイルドカードを 展開済み引数にするのがあった記憶
0904デフォルトの名無しさん
2015/08/02(日) 01:20:35.53ID:77q907bZ0905デフォルトの名無しさん
2015/08/02(日) 07:46:12.30ID:K1eGJczBこれのプログラム解明お願いします
0906デフォルトの名無しさん
2015/08/02(日) 08:01:46.29ID:+B7/KlLQ氏ね
0907デフォルトの名無しさん
2015/08/02(日) 15:27:28.43ID:2WU/dKTqそれボーランドのコンパイラじゃね?
0908デフォルトの名無しさん
2015/08/02(日) 18:35:41.96ID:zMJ+WguMhttps://msdn.microsoft.com/ja-jp/library/kda16keh(v=vs.120).aspx
0909デフォルトの名無しさん
2015/08/02(日) 18:46:29.65ID:SLv/zRdd0910デフォルトの名無しさん
2015/08/03(月) 11:39:18.72ID:dv1hKBwd#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
みたいな書き方はしたくないんですが。
0911デフォルトの名無しさん
2015/08/03(月) 11:43:07.73ID:t8uosJPh#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);
0912デフォルトの名無しさん
2015/08/03(月) 11:58:03.10ID:PIBA7Cur>C/C++両方で使うヘッダファイルを書いています。
C/C++両方で使う場合ってどう言う場合なの?
0913デフォルトの名無しさん
2015/08/03(月) 12:54:22.61ID:qkkgbGkCextern の{}はスコープとは違うはず。
>>911みたいにしとけば?
#define STD std::
OutputString(STD FILE* fp, );
0914デフォルトの名無しさん
2015/08/03(月) 13:01:02.17ID:dv1hKBwd>C/C++両方で使う場合ってどう言う場合なの?
色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。
なので、Cライブラリのヘッダファイルを修正していたんですが、std::size_t等をどうすべきか悩みまして…
>>911の方法でやってみます。ありがとうございました。
0915デフォルトの名無しさん
2015/08/03(月) 13:26:13.64ID:ZNzZ9/K0> 色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
> C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。
それは、C++コーディング規約を変えた奴が無知で使えない奴だったというだけのような
気がするが…いずれにしろ現場は大変だな…
0916デフォルトの名無しさん
2015/08/03(月) 13:29:15.95ID:ZNzZ9/K0C++からインクルードする場合の対処は必要だが、C++ソースのヘッダー
ファイルではない、従って#include <cstdio>を使う事自体が間違っている
可能性の方が高い
0917片山博文MZ ◆T6xkBnTXz7B0
2015/08/03(月) 17:39:41.05ID:/P0N0OgPhttps://github.com/katahiromz/TypicalConsoleApp
よろしくね!!!
0918デフォルトの名無しさん
2015/08/03(月) 19:13:07.32ID:fubWtLYmなに?
0919デフォルトの名無しさん
2015/08/03(月) 23:03:14.14ID:bvkPQc8bコミュ障は去れ
0920デフォルトの名無しさん
2015/08/04(火) 21:58:56.42ID:r6nVJo7Dバカは去れ
0921デフォルトの名無しさん
2015/08/05(水) 17:14:25.78ID:22Ehcq84相対パスについて(おそらく初歩的な)質問があります.
たとえば,指定したファイルを読み込んで処理をするクラス,
具体的には画像データを読み取るクラス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"
0922デフォルトの名無しさん
2015/08/05(水) 17:23:15.82ID:8Ly/MaH0(プロジェクトの設定で、あえて別のフォルダに変えることも可能)
・実行ファイル作って、そいつをダブルクリックした場合には
explorer が相対パスの基点を実行ファイルのおいてある場所にして CreateProcess してる
・実行ファイル作って、コマンドプロンプト(cmd.exe)からタイプして起動した場合には
そのカレントディレクトリを相対パスの基点として CreateProcess してる
実行ファイルへのショートカットを作った場合
ショートカットのプロパティの作業ディレクトリが相対パスの基点
0923デフォルトの名無しさん
2015/08/05(水) 17:40:58.78ID:22Ehcq84コンパイル処理でパスが埋め込まれるわけではないんですね.
良くできてるなぁ
ありがとうございました.
0924デフォルトの名無しさん
2015/08/05(水) 18:24:28.76ID:n/R/gJe6そそ コンパイル時に、相対パスをフルパス化して埋め込むわけではない ってことだね
あくまで 記述したとおりの文字列を実行ファイルに埋め込んでる
ドライブ名からの絶対パスならば、実行ファイルが何処に居ようが、そのフォルダ決め打ちだし
相対パスならば、呼び出し側(デバッガ/explorer/コマンドプロンプト等)により基点からの相対になる
0925デフォルトの名無しさん
2015/08/05(水) 18:28:04.18ID:IqH75krmショートカットのプロパティで作業フォルダとなってるのがそれだな。
0926デフォルトの名無しさん
2015/08/05(水) 19:28:55.75ID:y9IIWzjN実行時にexeのパスを求めて、そこから画像のパスを生成しないと、
コマンドプロンプトから起動した場合なんかに落ちるんだよね
0927片山博文MZ ◆T6xkBnTXz7B0
2015/08/05(水) 19:32:51.98ID:L7EpLchZ0928デフォルトの名無しさん
2015/08/05(水) 19:34:38.59ID:4lOabosS誰も訊いてないから
コミュ障は去れ
0929デフォルトの名無しさん
2015/08/05(水) 19:57:31.39ID:L7EpLchZ0930デフォルトの名無しさん
2015/08/06(木) 08:09:32.44ID:c8ZxAoVuコミュ障は非歓迎
0931デフォルトの名無しさん
2015/08/06(木) 08:45:54.70ID:BM+A+5/Q0932デフォルトの名無しさん
2015/08/10(月) 00:43:13.34ID:Eohg7Dz00933デフォルトの名無しさん
2015/08/10(月) 05:32:25.11ID:dHRwhHmw0934デフォルトの名無しさん
2015/08/10(月) 21:51:50.18ID:Dbf8XOfdそれはなぜですか?
0935デフォルトの名無しさん
2015/08/10(月) 21:58:35.07ID:EREVH0u4「読んだ後」でないと「終端を過ぎてしまったかどうか」を検出出来ないからじゃね?
0936デフォルトの名無しさん
2015/08/10(月) 22:52:17.49ID:dHRwhHmw大体バイナリは最初にサイズ取得するみたいな。
0937デフォルトの名無しさん
2015/08/10(月) 23:27:36.40ID:zjP+b/ec0938デフォルトの名無しさん
2015/08/10(月) 23:30:32.06ID:zjP+b/ec根拠も述べずに他人に変な思想を広めようとする本なんか
捨ててええぞ
0939デフォルトの名無しさん
2015/08/11(火) 05:51:04.91ID:TpmJtB/Jパイプからバイナリデータ貰うとかやったことないのか?
まあ、あまり一般的じゃないか...
0940デフォルトの名無しさん
2015/08/11(火) 06:11:34.86ID:LfXppaJj0941デフォルトの名無しさん
2015/08/11(火) 06:16:20.23ID:TpmJtB/Jお前意味わかってないだろ...
知らないのになんで首突っ込もうとするんだろう
0942デフォルトの名無しさん
2015/08/11(火) 07:31:08.03ID:LfA/skDI0943デフォルトの名無しさん
2015/08/11(火) 08:36:53.73ID:or9dNLa9その本に理由書いて無いの?
無いから聞いてるんだとは思うけど、どんな筆者なんだろうな…
0944デフォルトの名無しさん
2015/08/11(火) 08:45:45.74ID:hYSXGduH初心者なので私も気になります
0945デフォルトの名無しさん
2015/08/11(火) 09:04:45.10ID:nYbrbIvI青木峰郎って人
根拠は見直してみたけどやっぱりないみたいです
0946デフォルトの名無しさん
2015/08/11(火) 09:19:42.57ID:+IVNtZk/バイナリの読み込みはバッファサイズ未満を読んだら終了、でいいんじゃ・・・
0947デフォルトの名無しさん
2015/08/11(火) 09:59:22.62ID:TpmJtB/Jでググるとこう言うのがヒットするから、この辺りの話だろうね
http://d.hatena.ne.jp/hnw/touch/20130406
0948デフォルトの名無しさん
2015/08/11(火) 10:29:37.17ID:nYbrbIvI>>947
つまり関数自体には問題はない
使い道がない
ということですか
ありがとうございました
0949デフォルトの名無しさん
2015/08/11(火) 10:53:02.34ID:mCEKjMZK下請け関数呼び出して、戻ってきた時
末端到達したのか、別件で途中脱出してきたのか確認するのに使えるかも?ぐらいかなぁ
0950デフォルトの名無しさん
2015/08/11(火) 10:56:43.50ID:TpmJtB/J関数に問題はないし、使い道もある
単に間違って使われることが多いだけ
ストリームの状態じゃなくて、直前の入出力操作エラーの結果を示すって言う関数だからね
0951デフォルトの名無しさん
2015/08/11(火) 10:57:53.76ID:kVT9f1nvまぁね でも結局ステータスを親に返すか って話になると思う。
0952デフォルトの名無しさん
2015/08/11(火) 12:35:43.89ID:nYbrbIvIなるほど
ありがとうございます
0953デフォルトの名無しさん
2015/08/12(水) 14:42:06.64ID:yKwsHF9Eそれとも後者しか使えない、などの制限があったりしますか?
0954デフォルトの名無しさん
2015/08/12(水) 14:47:38.59ID:p+j059KJ0955デフォルトの名無しさん
2015/08/12(水) 18:50:47.34ID:yKwsHF9E本当ですか?
海外のフォーラム見ると、静的ライブラリじゃないと駄目って言ってる人いるんですが、逆だったんですかね
0956デフォルトの名無しさん
2015/08/13(木) 02:50:11.88ID:BCVAnZaZURL
0957デフォルトの名無しさん
2015/08/13(木) 07:42:09.87ID:AeYGcSnH0958デフォルトの名無しさん
2015/08/13(木) 08:43:38.05ID:mPByWcg9/pureは後者だけか
0959デフォルトの名無しさん
2015/08/13(木) 08:43:59.06ID:mPByWcg90960片山博文MZ ◆T6xkBnTXz7B0
2015/08/13(木) 14:28:34.67ID:5WXSkhNuE.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
よろしくね。
0961デフォルトの名無しさん
2015/08/13(木) 18:22:05.08ID:DIZBxb65とりあえず3つほど、、、
https://social.msdn.microsoft.com/Forums/en-US/df1661eb-c01e-408d-a6e0-d64b17f2c6a6/how-to-refer-dll-in-ccli-application?forum=vcgeneral
http://forums.codeguru.com/showthread.php?461115-adding-dll-reference-into-managed-C-visual-studio-2008-project の一番最後のレス
http://stackoverflow.com/questions/8498947/adding-natively-compiled-c-dll-to-clr-c-project のHansさんのレス
0962デフォルトの名無しさん
2015/08/13(木) 18:28:30.60ID:DIZBxb650963デフォルトの名無しさん
2015/08/13(木) 18:55:55.43ID:aB+CmHXzヘッダに書いてる関数名と、名前空間やらオーバーロードを解決してマングリングしたものの関係性がlibに記述されてると理解してる
0964デフォルトの名無しさん
2015/08/13(木) 20:05:39.09ID:DIZBxb65どうも、Windowsには普通のスタティックライブラリ(Unix系での.aファイル)の他に
インポートライブラリというのがあり、両方とも拡張子がlibなんですね・・・
とんでもない勘違いしてました
0965デフォルトの名無しさん
2015/08/13(木) 23:49:09.88ID:HDGJU3CKいえリンクの仕方によります>>963は嘘つきなので無視してください
0966デフォルトの名無しさん
2015/08/14(金) 10:40:11.01ID:030ck1US調べたところ、インポートライブラリにはルックアップテーブル作成のための情報が入ってるらしいですね
>>965
インポートライブラリは暗黙的リンクには必要ですが、明示的リンクには不要ということですね
c++とは直接関係ない話題ですいませんでした。勉強になりました
ちなみに、今更聞くのもあれですがCLRってスレチですか?
0967デフォルトの名無しさん
2015/08/14(金) 10:52:02.66ID:rxGnV8e70968デフォルトの名無しさん
2015/08/14(金) 18:38:31.27ID:N/BdRhBJ0969デフォルトの名無しさん
2015/08/14(金) 21:17:42.52ID:mMb0xxGG0970デフォルトの名無しさん
2015/08/17(月) 01:28:55.02ID:BC6RDWNWwindowフォームで作成した
textBox1〜textBox64のテキスト内容を
まとめて変更したいのですが
少ない行数で簡単に変更する方法を教えてください。
textBox1->Text = L"aa";
textBox2->Text = L"aa";
・
・
・
textBox64->Text = L"aa";
0971デフォルトの名無しさん
2015/08/17(月) 01:49:06.40ID:2TQ1sRCh0972デフォルトの名無しさん
2015/08/17(月) 04:22:48.42ID:mJ5AYOWEc++よりc#の方がform作り易いぞ
0973デフォルトの名無しさん
2015/08/17(月) 04:44:16.66ID:3rmo/1Qf集合としては一つしか呼ばない量があります
.までが元々不要なうえ手間がかかり見づらくなるだけなので付けたくないのですが
省略のようなことはできないものでしょうか(以下は素人考え)
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,・・);
}
0974デフォルトの名無しさん
2015/08/17(月) 08:50:55.30ID:k3v/6O3Bwith 識別子
. メンバー名 = 代入
:
:
end with
こいうのが欲しくなる気持ちはわからないではない
0975デフォルトの名無しさん
2015/08/17(月) 09:00:38.36ID:G0vOLImEできるし、実際にやってる
有名どころでは struct in_addr とか
あと GCC の拡張機能で初期化だけなら
Input input = { .A=・・, .B=・・, ・・};
のように書ける
0976デフォルトの名無しさん
2015/08/17(月) 09:21:01.38ID:EUq24GhA0977デフォルトの名無しさん
2015/08/17(月) 10:32:11.65ID:EwR31uEA0978デフォルトの名無しさん
2015/08/17(月) 14:31:46.84ID:9q62HXi+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にそれぞれポインタでアクセスしようとするとエラーが起きました
0979デフォルトの名無しさん
2015/08/17(月) 15:16:35.55ID:EwR31uEAA, Bを同じクラスにするだけで良いのでは?
別解としてはtemplateを使う手もあるけど、多分そこまでするほどの事じゃないと察する。
0980デフォルトの名無しさん
2015/08/17(月) 15:19:27.93ID:Fj/4E2oI0981デフォルトの名無しさん
2015/08/17(月) 15:36:37.35ID:DK3HdHSwでは駄目?
0982デフォルトの名無しさん
2015/08/17(月) 16:50:40.92ID:joxnevy0func(&hoge.b)
じゃあかんのか
0983デフォルトの名無しさん
2015/08/17(月) 16:55:37.74ID:Fj/4E2oI0984デフォルトの名無しさん
2015/08/17(月) 18:11:32.93ID:9q62HXi+Cにclassなんかないんですが
>>981
処理でいろいろ条件分岐するのでそれでは意味がない
>>982
>funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました
0985デフォルトの名無しさん
2015/08/17(月) 18:25:21.20ID:t3K/aRMS0986デフォルトの名無しさん
2015/08/17(月) 18:45:15.51ID:9q62HXi+ありがとうございました
0987デフォルトの名無しさん
2015/08/17(月) 22:03:51.94ID:WInuKq4U0988デフォルトの名無しさん
2015/08/17(月) 22:31:30.33ID:rfTaTQIO0989デフォルトの名無しさん
2015/08/18(火) 00:59:15.46ID:o7p+NB2Tなんで条件分岐があると >>981 がダメになるの? >>985 にできて >>981 にできないことなんて無いと思うんだけど。
0990デフォルトの名無しさん
2015/08/18(火) 02:32:24.05ID:KDudTXNJ0991デフォルトの名無しさん
2015/08/18(火) 07:10:45.87ID:47QFVOwL【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1439849418/
0992デフォルトの名無しさん
2015/08/18(火) 07:44:08.07ID:lMcZlJPi乙乙乙
0993デフォルトの名無しさん
2015/08/18(火) 08:16:28.25ID:mkEa0Vjuでも使う側で代入しなきゃいけないってめんどくさくない?
>>985のほうはfuncAとかを呼び出すようにすれば関数ポインタがどうこうというのは気にせずに使えるし
0994デフォルトの名無しさん
2015/08/18(火) 08:39:47.45ID:O8W/9LGI0995デフォルトの名無しさん
2015/08/18(火) 08:47:10.39ID:/6UfQ5+D0996デフォルトの名無しさん
2015/08/18(火) 08:47:59.14ID:/6UfQ5+D0997デフォルトの名無しさん
2015/08/18(火) 08:48:27.02ID:/6UfQ5+D0998デフォルトの名無しさん
2015/08/18(火) 08:48:55.03ID:/6UfQ5+D0999デフォルトの名無しさん
2015/08/18(火) 08:49:08.08ID:/6UfQ5+D1000デフォルトの名無しさん
2015/08/18(火) 08:50:26.34ID:O8W/9LGI10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。