[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/20 15:38 / Filesize : 230 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:27:47.92 ID:pbJTQx9M.net]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
ideone.com/ (時間帯によってはcodepadが重い事があるのでここも

2 名前:利用)

前スレ
【初心者歓迎】C/C++室 Ver.95【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1423872914/
mailto:【初心者歓迎】C/C++室 Ver.96【環境依存OK】 []
[ここ壊れてます]

3 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:44:49.19 ID:JJJ2g9Sl.net]
#include <stdio.h>

4 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:52:48.97 ID:cKja1wy1.net]
インクルードスタジオエイチ!

5 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:54:57.46 ID:DXaZxPH6.net]
ノーノー、インクルードスタンダードアイオードットエイチ

6 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 23:56:49.92 ID:tERJk0Uu.net]
スタジオでエッチなのはいけないと思いますぅ

7 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 00:03:12.40 ID:M49TyJvh.net]
QZ渾身の自演スレ拡大

8 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 00:51:44.09 ID:DXSt7rl7.net]
本当バカバッカだな

9 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 04:32:13.69 ID:/6GggC30.net]
>>4 インプット アウトプット

10 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 13:26:17.75 ID:GZ3uiqry.net]
C++に初めて触れてみようと思うのですが
VisualStudioの使用が主流?なんですかね



11 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 13:33:10.22 ID:CnFB2uHW.net]
そうだよ

12 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 13:34:33.72 ID:hr3tQ2QJ.net]
馬鹿には無理

13 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 13:35:35.85 ID:khofDikv.net]
>>9
VSにしとけばいいんじゃないかな
情報多いと思うし

慣れてきたら他も触ってみればいい

14 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 14:36:22.78 ID:yqfGSgYQ.net]
linuxでこつこつやるのも楽しいよ

15 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 15:31:40.74 ID:2KmVxUih.net]
初心者がやるには安心感がある
だがC++の道を極める求道者にはなれない

16 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 16:36:11.02 ID:chj3jLUM.net]
>>14
VS には何が足りないんだ?

17 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 16:58:02.42 ID:mQnOWg31.net]
Visual Studio 2015に入る予定の6/1修正でC++14対応はほぼ完了した。
もうg++は要らない。
でも求道者にはclangが必須かな

18 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 17:09:38.69 ID:NjlaHsdj.net]
ああ…次はC++17だ…

19 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 18:03:28.46 ID:BED/WPPF.net]
確かに初心者はVCにしとくのが間違いないだろな
簡単だし、お手軽におもちゃ作れるしな

20 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 19:22:02.82 ID:JpRiBM0Z.net]
CLionよさそうじゃない



21 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 19:34:37.23 ID:BED/WPPF.net]
洗剤 クラス?

22 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 22:53:04.61 ID:hr3tQ2QJ.net]
QZみたいなゴミは強力な洗剤を使わないと取り除けない
そのうちほかのものまでゴミの臭いがつく

23 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 00:36:34.43 ID:mJY5GxG5.net]
linuxでg++も楽しいぜよ

24 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 00:54:11.45 ID:5ucRRAFX.net]
c++ pocoが楽しいよ

25 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 12:09:31.29 ID:NC5UU/I1.net]
IDE使ってる人は何使ってんの?

26 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 12:57:20.87 ID:BYDNcOl5.net]
QZでも使えよ無職QZ

27 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 14:31:49.05 ID:Njvm7shU.net]
VSか、Clion

28 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 00:18:26.87 ID:xfiXeUeQ.net]
それがQZのオナニー道具か

29 名前:デフォルトの名無しさん [2015/06/10(水) 21:15:38.82 ID:ilTOHdYY.net]
int x=0;
auto f=[&x](){x++;};
f();
printf("%d\n",x);

こんなプログラムを最適化ONでビルドして実行すると
なぜかf()を抜けた時点でxのアドレスがNULLになり
printf内部で落ちてしまいます。
最適化なしだと期待通り1が出力されます。
キャプチャの仕方が間違っているのでしょうか?
環境はVS2012です。

30 名前:デフォルトの名無しさん [2015/06/10(水) 21:35:26.53 ID:/eNROP7R.net]
こんなプログラムみたことない。
fは関数、xは引数だとしてfはグローバル変数にアクセスするのでいいのか?
文法自体わかってない。



31 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 21:52:38.49 ID:96RlC2BQ.net]
無知自慢しなくて良い。lambdaって言うんだよ。

32 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:03:18.30 ID:E3lz5ETf.net]
auto & f=[&x …

に変えても同じ?

33 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:10:02.98 ID:kk2eCJK3.net]
コードに間違いは無いだろう
だが
『xのアドレスがNULLになり
printf内部で落ちてしまいます』
言っていることが意味不明だ

34 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:17:03.15 ID:6b8sBCSU.net]
ラムダ式ってなにが便利なの?
せっかく隠蔽したものをほじくり出す感じ

35 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:39:44.75 ID:73TZN3iI.net]
[&x]()->void{x++;}; // でかわるかね

36 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/10(水) 22:46:09.81 ID:ifXizSNQ.net]
>>33
ファンクターの代わりになる

37 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:49:28.47 ID:Okrjkhyr.net]
ファンクター
と言う言葉の意味もよく知らないけど
使ってみたかったクソコテ野郎

38 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:55:03.82 ID:X+sSFCkO.net]
でも俺もファンクタよくわかんねえんだよな

39 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:57:18.54 ID:7znYU1gJ.net]
プレディケートってのもわからん

40 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/10(水) 22:57:56.64 ID:ifXizSNQ.net]
関数オブジェクトといった方がわかりやすいかな。
関数ポインター使わないからインライン化できる。



41 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 22:59:22.02 ID:6mK0yDvY.net]
functor: 関数オブジェクトと関数ポインターの総称
predicate: 引数に対してtrue/falseの結果を与えるもの

42 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 23:00:59.02 ID:4lZYRE2m.net]
>>28
fに入れずにいきなりラムダを呼んだらどうなる?

43 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/10(水) 23:03:13.11 ID:ifXizSNQ.net]
関数オブジェクトはメンバー変数を使える。つまり、static変数以外の内部状態を持てる。

44 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 11:24:34.71 ID:R2TwyAk2.net]
関数オブジェクトは当然使う場面多いけど、ラムダ式使ったことなんか一度もないw
使われてるライブラリも見たことがない。一体どこで使われているんだw

45 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 11:35:00.64 ID:ESr81XRP.net]
pplとか

46 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:09:12.67 ID:wlQvrmKv.net]
むしろラムダで生成してない関数オブジェクトを最近使ったことがない

47 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:12:33.27 ID:IsG2Qw3q.net]
>>28
再現する最小限のコードよこせ。

48 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:19:22.87 ID:pGHCo9si.net]
>>46
ソースは出せません。

49 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:20:14.20 ID:ezCGPCx0.net]
オープンソースのライブラリーでラムダ式を使ってるのは見たことがないな。
広く使われるまであと何十年かかかるのか。

50 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:34:03.11 ID:nlMbZwOh.net]
>>48
ttps://msdn.microsoft.com/ja-jp/library/jj950081.aspx
ほらよ



51 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 13:54:48.61 ID:FmOUSr/Q.net]
今どきラムダ使わない奴ってなんか宗教上の理由でもあるの?

52 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 13:57:10.36 ID:q/LkR2I6.net]
遅い

53 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 13:58:34.80 ID:4D2y0Pob.net]
IDEのバージョンアップがめんどくさくて・・・

54 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 13:59:14.58 ID:IsG2Qw3q.net]
文法がダサ過ぎる

55 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:01:15.29 ID:AuS2IYQV.net]
コブが邪魔で乗りにくい

56 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:01:49.67 ID:FmOUSr/Q.net]
>>51
「僕ちんが想像するに遅いんじゃないかな」くらいにしておいた方が良いかと

57 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:03:17.51 ID:hDuZrxPZ.net]
ラムダが遅かったら関数すら使えないなwww

58 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:09:58.13 ID:U/N4lXDi.net]
ラムダってわざわざクラス化するまでもないけど、関数オブジェクト欲しいってときに使うものなんじゃないの?
述語ほしいときとか

59 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:25:36.80 ID:5XjSsN44.net]
>>49
それはオープンソースのライブラリーではないな

60 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:42:40.67 ID:ESr81XRP.net]
>>58
ttps://casablanca.codeplex.com/license
Apache License 2.0はオープンソースのライセンスじゃなかった



61 名前:フか… []
[ここ壊れてます]

62 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 15:08:51.32 ID:JmSxoDP9.net]
ライブラリーのほうでつっこんでんじゃないの?

63 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 17:26:18.48 ID:GJ9jcB3i.net]
>>50
そういった言語の機能的なことは詳しいが実際のしごとはやたら遅い奴いない?
多分、小さなサンプルプログラムしか作ったことないんだろうな

細かいことは後でいいから、さっさと作ってデバッグしろよ。

64 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 17:38:07.85 ID:FmOUSr/Q.net]
>>61
そいつに言えよw

65 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 17:51:58.83 ID:q/LkR2I6.net]
>>61
ここの連中も似たり寄ったりだよ
コンパイラがエラーをはかないソースは書けても、実用的なアプリケーションは作ったこと無い奴ばっか

66 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 20:06:41.37 ID:mKFwr7Ag.net]
freecode.comで紹介されてるC++ライブラリは1000個くらいあるけど
ラムダ式使ってるのは1個か2個くらいだよな

67 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 21:09:30.99 ID:j+ThwGWi.net]
関数、メンバ関数にすれば、わざわざラムダにしなくてもいいからな

68 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 21:12:00.42 ID:nlMbZwOh.net]
いちいち関数にしたくないからラムダ使ってるのに

69 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 00:23:34.61 ID:zV6gKt9+.net]
>>64
その1000個のうち、C++11が承認された2011年9月以降に作成されたライブラリの数を示したらどうだ?低能

70 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 01:27:00.88 ID:ai38sP/N.net]
>>67
その情報の有益性って何?



71 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 08:21:42.11 ID:K1SJqQ2p.net]
>>68
ラムダ使えない時代の奴混ぜてもしょうがないでしょってことだろ

72 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 08:22:37.76 ID:yngeaFwE.net]
俺たちはどの時代のライブラリでも使えるのに?w

73 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 08:41:31.87 ID:Qvm3BcbJ.net]
ラムダが使えるようになってから登場したライブラリを分母にしないと無意味

74 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 09:47:57.36 ID:kSQ7fCIM.net]
>>69
2011年9月まで使えない時代で
2011年9月から使える時代になった
というわけじゃないだろ

75 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 11:30:31.65 ID:EWXbILw8.net]
>>67
ラムダ使えない時代に生まれたライブラリでも
ラムダ使えるようになって以後にバージョンアップされてりゃ排除しなくていいのでは?

76 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 12:36:55.37 ID:K1SJqQ2p.net]
>>72
ならいつがいいの?
よりいい範囲があるなら教えてくれよ。

>>73
最終更新日がわかるならその方がいいかもしれない。
ただ、ラムダ無しで作ってるものをラムダが使えるようになったからと言って書き直さないと思うので作成日で区切るのもありだと思う。

77 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 18:24:45.89 ID:ZnWobP75.net]
>>74
なんで範囲を絞る必要があるの?
現在アクティブなオープンソースのライブラリプロジェクトを1000個かき集めて
そのうちラムダ式使ってるのは何個あるのか数えてみるだけの話でしょ?

78 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 18:28:19.92 ID:ZnWobP75.net]
>>74
> ラムダ無しで作ってるものをラムダが使えるようになったからと言って書き直さない

え?どうして?

79 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 18:30:32.32 ID:gaMby9Ja.net]
更新日で考えるのはおかしい
たとえば2012年以降はメッセージの修正しかしてないものが
>>43の根拠として「ラムダが使えるのに使っていない」にカウントされたらそれは不適切

80 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 18:36:55.42 ID:1Z1vAYw+.net]
>>77
全然違う話題の43なんか持ち出して話を混ぜんなよWW



81 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 18:42:25.76 ID:R5Ka64Bk.net]
>>77
まず事実を測定してみないか?
まず測定を終えてからどうこう思考してみようよ
「どうあってほしい」から始まって
「カウントしてほしくないものをカウントしないためにはどういう条件で排除すればいいか」
の議論を延々続けて測定の着手をさせない努力をするのは
技術の分野ではなく宗教の分野のようだよ

82 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:01:09.87 ID:j1SWbXbS.net]
A「Nの数が少ないからXである
B「Nの数を根拠にすることはおかしくね?
C「まず数えてから考えてみよう
 実際に数えずに語るのは宗教

Cは話を逸らすだけの詭弁野郎wwww

83 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:12:36.50 ID:IV7PJrm5.net]
そもそも>>43は「俺は一つも見たことない」だから
「千個中何個か発見した」という結果が出ても何の根拠にも使えない

つうか、全然違う話でしょ

84 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:13:47.98 ID:3MbxbYsx.net]
>>80
Aに該当するレスはこの場に存在してない

85 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:15:30.46 ID:ipNXiW4b.net]
>>80
> A「Nの数が少ないからXである

この「Xである」の話はひとつも出てなくね?

86 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:17:48.06 ID:ipNXiW4b.net]
>>80
> B「Nの数を根拠にすることはおかしくね?

誰も根拠にするなんて言ってないのに、妄想の人が根拠にするなと騒いでるだけだよ

87 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:20:25.51 ID:zGKuJ7ry.net]
>>80
数えずに語るのが宗教だなんて話は出てませんぜ

88 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:33:46.57 ID:7kWsK557.net]
>>75
>>69 とか >>71 を読んで理解できないなら、話に無理に加わらない方がいいと思う。

>>76
大抵のプログラマは動いているものをいちいち書き直すほど暇じゃない。

>>77
正確でないのは承知してるので、いちいち反例をあげる必要はないよ。
そもそもその件は >>74 の後半に書いてある。

>>79
よろしくお願いします。

89 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 19:50:48.65 ID:YprfgWl4.net]
くっだらねえ
そんな統計とって何の足しになるんだか
ラムダ使ったほうが効果的なところでは迷わず使えよ
汎用性がなく一箇所でしか使われないコードとか

90 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 20:20:51.03 ID:mNJlRwVf.net]
>>86
ラムダ使わずに作ったものは後からラムダ使うように改造しないという信念があるの?
その考え方は驚きの初耳なんだけど



91 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 20:24:02.64 ID:yngeaFwE.net]
>>80
このXである、がない
あるいは個々人の考えで補完されてるまま話が続こうとするから
Bの主張が正しいかどうか判別できない

1000個あるライブラリからラムダ式を使っているのは2つくらい
ここから言えることは何か?

92 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 20:53:20.65 ID:KoeeUimc.net]
新しそうなライブラリを10個ほど見てみたが、ラムダ式は使われてなかった。
予想以上に存在しないのかもな。

93 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 21:02:34.04 ID:1Z1vAYw+.net]
apache2なんか2002年以降に改めて作り直されてるのに
C99じゃなくC89前提で書かれてるもんな

94 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 21:23:54.99 ID:K0LPTxas.net]
利用者側が化石のパターンも少なくないからなぁ
全員が全員最新の環境ならもっとガンガン使えるかな

95 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 22:50:44.08 ID:7kWsK557.net]
>>88
特段改造の必要もないけど、ラムダ使える〜って、ラムダ使うように手直しするって?
ほとんど病気だぞ、それ w

96 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 23:04:03.99 ID:Kc7Sj0Rn.net]
むしろ使えるようになったら全部修正する無駄な作業が楽しい

97 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:23:42.99 ID:05Jv17Sn.net]
>>93
脅迫性障害って奴な

楽しい人は別

98 名前:デフォルトの名無しさん [2015/06/13(土) 01:28:33.38 ID:ZgdEQxJ3.net]
>>93
2000年以前に作ったライブラリを最近片っ端に改造して
ラムダ式を与えるためのメソッド足して遊んでますけど
みんなそうやって楽しくやってるんじゃないんですか?

99 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:35:16.38 ID:xzoa8IB+.net]
手間かけないためのプログラムなのに、手間増やしてどうする

100 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:37:21.89 ID:oLptQlzp.net]
>>76
ラムダ無しで作ってるものをラムダが使えるようになったからと言って
わざわざ書き直してラムダ対応する馬鹿は病気じゃないの?
そんなことして何の役にも立たないのに何を無意味なことをしてるの?



101 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:39:55.45 ID:05Jv17Sn.net]
自己満足な人のHPはゼロよ!

102 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:44:56.34 ID:ydZkeZWj.net]
そもそもC++11出てくる前に書かれたライブラリってC++03対応するのも必要だろうからラムダに書き換えるなんてことしないやろ

103 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:47:07.38 ID:QoUgxLhC.net]
ラムダ入れないで済むならわざわざ入れない方がいいぞ

104 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:50:03.96 ID:vAcEoMEz.net]
>>100
C++11正式化以降に作られたライブラリもC++03対応を重視してるぞ

105 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 01:55:35.98 ID:rgUmKvjC.net]
オープンソースソフトウェアでラムダ式入れようとしたら「使わないでくれ。さもなくばフォークする」の議論が始まりますね

106 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 02:09:39.03 ID:N7uXhOC6.net]
オープンソースの場合はラムダに対応してないコンパイラでも使えるコードの方が良い場合が多いからじゃね
業務で作るソフトとは状況が違う
古いコンパイラに対応する必要がない状況でラムダを避けるのはバカ

107 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 04:22:59.36 ID:Ito4e+Ww.net]
今から>>104に本開発プロジェクトのコーディング規約を説明する
・自作テンプレートの禁止
・例外禁止
・環境はgcc 3.3
・変数は使い終わったらcloseを呼び出してヌルを入れること

108 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 09:19:55.15 ID:VPkV4eHU.net]
>>105
おじいちゃん
それはヌルではなくてナルというんですよ

109 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 09:26:05.97 ID:FQeTzdta.net]
すでにあるコードをラムダ使うように手直しすることと、新規開発の区別もつかないバカ ⇒ >>104

110 名前:デフォルトの名無しさん [2015/06/13(土) 09:38:57.75 ID:jEfwhpow.net]
怒るなよ



111 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 09:43:02.98 ID:XtyRFZm/.net]
>>105
jap char は使っても良いのですか?

112 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 09:55:10.15 ID:lYkKpzwR.net]
>>86
> 大抵のプログラマは動いているものをいちいち書き直すほど暇じゃない。

2chに張り付きっぱなしの暇人のくせに

113 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 10:03:20.15 ID:y/hrQw57.net]
まとめると

「ラムダ無しで作ってるものをラムダが使えるようになったからと言って書き直さない

「大抵のプログラマは動いているものをいちいち書き直すほど暇じゃない

「わざわざ書き直してラムダ対応する馬鹿は病気

114 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 10:03:34.93 ID:M8zBZxSF.net]
>>110
自己紹介乙

115 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 12:33:25.81 ID:Sm9/2l6c.net]
>>112
「自己紹介乙」とは言い返すボキャブラリーに貧した者が使う常套句
つまり「自己紹介乙」と言った時点で負けを認めた事を意味する

116 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 13:17:15.82 ID:oZyolcMH.net]
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r

117 名前:_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>
[]
[ここ壊れてます]

118 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 13:54:04.80 ID:jEfwhpow.net]
なんでお前ら喧嘩腰なの?
仲良くしろよ

119 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 13:57:08.64 ID:+HguQo6y.net]
こんなところでしか自己顕示欲を満たせないからね
本気になっちゃうのも仕方ないね

120 名前:デフォルトの名無しさん [2015/06/13(土) 14:00:37.39 ID:l7rw4EeF.net]
底辺同士仲良くやればいいのにね



121 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 14:48:45.77 ID:HgxUgyeK.net]
三度の飯よりプログラミングが好きなら
メリットなくても出来上がってるプログラムにラムダ付け足してみたりするだろ

122 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 14:56:37.53 ID:QxSJZHwk.net]
公開するコードなのか趣味コードなのかで話は違ってくるかな
というか言い争ってるのはここらへんの認識の違いじゃないか?

123 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:24:55.37 ID:kjnaZNV9.net]
>>28
gcc 5.1.0 では-O3でもちゃんと 1 と表示されるな
というか-O3にすると

mov $0x1,%edx
lea 0x184b(%rip),%rcx
callq 0x4077a0 <printf(char const*, ...)>

になってしまってラムダ式そのものが無くなってしまった

124 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:28:28.18 ID:RP8pqgiN.net]
三度の飯よりプログラミングが好きというのが一般人から見たら病気じゃないの?

125 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:41:52.80 ID:19wKs4Az.net]
そんな奴いるか?

126 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:44:54.66 ID:xzoa8IB+.net]
Cの勉強始めたばかりの頃って、そうだった

127 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:51:01.56 ID:kjnaZNV9.net]
ちなみにintの最適化を妨げるためにvolatile intにしたら

movl $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*, ...)>

となるんでインライン展開してるだけだね

128 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 15:52:31.01 ID:tR5e1Ncp.net]
三度の飯よりプログラミングが好きな人間ならば、ラムダ式を試すのにそんな不精はしない

129 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 16:58:17.52 ID:N7uXhOC6.net]
何のためにC++規格委員会様がラムダを入れて下さったと思ってるんだ?
使ったほうが良い場面ではつべこべ言わずに使え

130 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 17:39:58.10 ID:19wKs4Az.net]
関数、メンバ関数使ったほうが早くね?



131 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 17:51:15.73 ID:MHptqojw.net]
int param = 100;
std::thread t1
{
 [&]
 {
  // 関数なんか使ってられるか
 }
};

132 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 18:23:54.45 ID:xv1nvRDb.net]
>>128
よくもそんな危険なコードを書けるな

133 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 19:48:03.77 ID:XbA3H8fd.net]
join()かつ、本体側が変数いじったり参照したりしないなら問題ないが、そうでないなら、大変なことが起こる可能性がある

134 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 19:52:53.05 ID:hEJgokp/.net]
同時にいじるなら当然atomic_intとかmutexとか使うだろう
話を反らしてまでラムダが面倒ということにしたいの?

135 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:09:13.86 ID:jKGoCo7L.net]
せっかくラムダの話がでているのだから
C++ のラムダってYコンビネータとか記述できますか?

136 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:20:15.07 ID:qOZIdXyk.net]
できます

137 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:21:20.65 ID:jKGoCo7L.net]
無理だとおもってたんですが
どんな感じになるのでしょう?

138 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 15:59:32.13 ID:HbVleRJY.net]
>>118
三度の飯よりプログラミングが好きだから、過去のコード書き直すなんてつまらんことするより新しいコードを書くわ
もちろん新しいコードはラムダ使いまくるが w

139 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 16:53:17.20 ID:W5WL6w7T.net]
>>135
>新しいコードはラムダ使いまくる
不動点コンビネータの記述もできないラムダ式を「ラムダ式」と呼んでいるのか?
本当に三度の飯より好きなのか?

140 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 18:18:38.82 ID:BSAkVjAb.net]
そりゃC++の規格でそういう名前になってるからね



141 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 18:31:07.63 ID:W5WL6w7T.net]
そんな半端ものをコードに混ぜるとか正気じゃない

142 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 18:57:37.81 ID:SSUUjgo5.net]
そりゃ、まっとうな判断能力を持つ者は
「機能Aを使うことで改善が期待できるか」に基づいて考えるからね。
「この言語の機能Aが他の言語と比べて同等か」
なんて他言語信者の思考はどうでもいい

143 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:04:59.17 ID:HbVleRJY.net]
>>137
「不動点コンビネータ知ってる俺スゲー」君だろ w
スルーでいいと思う

144 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:11:34.44 ID:W5WL6w7T.net]
>>139
Lisp のラムダ式がついに来たかと期待したんだが羊頭狗肉なんだね‥
いいよ普通に関数オブジェクトで書いとくし

145 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:21:31.05 ID:VXo/YF5W.net]
ラムダ関係なくて、ただ他人をコケにしたいだけだろうし

146 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:44:45.38 ID:W5WL6w7T.net]
新しい仕様を評価せずに飛びつくことを批判しているだけだが‥たぶんラムダ式は消える

147 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:47:48.73 ID:iglu1H/1.net]
ラムダ式使ったほうが明らかに楽に書ける場面が多々あるから消えるわけねえよ

148 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 19:50:52.89 ID:TW+i3CDs.net]
ジェネリックラムダ入るのに何言ってんだ

149 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 20:01:27.64 ID:W5WL6w7T.net]
>>145
普通にメンバテンプレートを書けばすむ話
ラムダ式なんて,一行がずんだらに長くなるだけで大して可読性がよくなるわけじゃないんだよね…

150 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 20:13:10.23 ID:TW+i3CDs.net]
メンバテンプレートを書きたくないからラムダにしてるのに…
ラムダ式で1行が長くなる?
一体何を言ってるんだこいつは…



151 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 21:30:40.12 ID:HAKGVyNP.net]
>>143
たぶんラムダ式は消える(キリッ

うわぁ……

152 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:09:03.21 ID:iOV4RdOh.net]
ラムダとメンバーテンプレートに何の関係が?

153 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:14:22.91 ID:W5WL6w7T.net]
>>149
それはさすがに調査不足‥>>143 としてもそこまでは面倒はみきれない

154 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:24:49.25 ID:O54UAv06.net]
ID:W5WL6w7Tがどんなオレオレ理論を展開しようと、C++からラムダ式が消えることはないんだよなぁ

使いたくない人は使わなきゃいいだけ
C++はそれを許してくれるよ
やったね!

155 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:33:03.56 ID:lodH31Tw.net]
C++でなにか消えたことってあるの?
auto_ptrはそれか

156 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:38:08.23 ID:ocyd5wvL.net]
autoの元の使用法が無くなったな。

157 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:38:13.43 ID:W5WL6w7T.net]
ここはやっぱり auto だろう

158 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:38:43.86 ID:RXXsbARc.net]
Comeauさん「…」

159 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 23:41:46.35 ID:+tOeM05v.net]
タグディスパッチとswitchで分岐を書くのってどっちがいいんですか

160 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 01:51:36.58 ID:SEa1N02v.net]
すっごい初歩的質問かもしれなくて申し訳ないが、int x,yに入ってるデータを入れ替える関数swap(int *a,int *b)を作成するとして
その関数の中身が*a=*a+*b;*b=*a-*b;*a=*a-*b;
である場合、起きうる問題って何がある?*a+*bのアドレスに既に別のが割当られてるかもしれない?と思ったけどよくわからない



161 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 01:54:13.67 ID:DRt4UXNj.net]
a,bにヌルが入ってくると例外
a = bの場合*a = 0が必ず返ってくる(a = bの場合変化しないことを期待されるかもしれない)

162 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 01:55:09.83 ID:DRt4UXNj.net]
あと足し算でオーバーフローの可能性があるな

163 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 02:13:48.45 ID:SEa1N02v.net]
>>158
おお、こんなに早く……ありがとう
ちなみにtmpとか別の変数使わずにそれらを回避する方法ってある?

164 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 02:23:36.32 ID:Wlj6ZCex.net]
なんでtmp使いたくないの?速度的にもtmpの方が157より速いだろ

165 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 02:25:47.57 ID:Wlj6ZCex.net]
どうしてもスタック使いたくない理由があるならインラインアセンブラしかないんじゃない

166 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 11:34:57.01 ID:/ZXirDuW.net]
int main(){
 string 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


なぜ・・

167 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 12:32:08.80 ID:a384H5JL.net]
文字を連結してるんじゃなくて、charを足してるわけだが

168 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 12:54:45.60 ID:1FZGsYFn.net]
charは整数だから、整数同士の四則演算ですね

169 名前:デフォルトの名無しさん [2015/06/15(月) 12:59:43.32 ID:/ZXirDuW.net]
>>164-165
そういうことか!騙された!

170 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 17:27:49.20 ID:T7wqdyuw.net]
横からですが、>>163でtmp2に"DM`R"という値を入れる時はどうすればよいのでしょう?



171 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 17:34:24.36 ID:HDA/Cn6G.net]
適当に済ますなら、最初に string("") + tmp1.at〜
ってやれば string の + が呼ばれるんでないかい。

172 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 17:34:30.41 ID:T7wqdyuw.net]
アホなので
tmp2 = tmp2 + tmp[1] + tmp1[3]+ ・・・

というやり方しか思いつかないです。もっとスマートな方法が・・・

173 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 17:35:19.62 ID:T7wqdyuw.net]
>>168
やっぱそうするしかないですかね・・・

174 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 19:10:29.52 ID:vjf9P8uP.net]
C++11なら
string tmp2{tmp1.at(1),tmp1.at(3),tmp1.at(5),tmp1.at(7)};

175 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 21:39:29.41 ID:INXnVK+j.net]
一文字ずつ処理するならcharのほうがええな

176 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 04:07:26.81 ID:yD3ZQl9W.net]
先生……visual C++2013のstd::allocatorに使われている、
_CRTIMP2 _declspec(noreturn) void _Xbad_alloc()
がどこで実装されてるか教えてください……
STL写経が捗りません……

177 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 04:27:33.26 ID:/0ZadraV.net]
つ dumpbin

178 名前:デフォルトの名無しさん [2015/06/16(火) 06:54:16.03 ID:a66PPdJo.net]
Xbad_allocを自分で定義してぶつければリンカーが教えてくれるだろ。

179 名前:デフォルトの名無しさん [2015/06/16(火) 07:10:54.68 ID:WwZ8EXS4.net]
STL写経なんてしてるの?

180 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 07:41:18.94 ID:fgRQky17.net]
21世紀の時代にSTLとか無いわ



181 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 07:43:16.73 ID:N++hQ/DI.net]
vectorのresizeって大きい方への変更のとき
元の値って保持されるんだっけ?

182 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 08:24:27.46 ID:fgRQky17.net]
>>178
厳密にはされない
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.

この回りくどい珍妙な言い回しは
・ムーブコンストラクタの有無を見て(安全になるよう)うまいことやれ
・ただしムーブコンストラクタが例外を出すアホは相手にしなくていい
ということを言っている

183 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 09:53:24.51 ID:N++hQ/DI.net]
>>179
あざっす
単なる値の羅列の構造体は気にしなくていいみたいですね

184 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 10:31:23.08 ID:flrqwRAg.net]
>>180
> 単なる値の羅列の構造体

とは、こういうこと?

template<typename T,size_t N>
struct SimpleArrayStructure {
T values[N];
};

185 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 10:35:02.85 ID:N++hQ/DI.net]
(定義は厳密に覚えてないけど)POD型

186 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 11:57:14.78 ID:X0o7CvN3.net]
>>182
なるほどな

187 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 18:39:24.72 ID:yD3ZQl9W.net]
>>174-175
両方ためしてみます、ありがとう!
STL写経は単純に勉強のためですよ。STLの中身も知らずしてC++使いと言えるのかと思いまして。

188 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 18:49:47.13 ID:w7JH+znB.net]
むしろ、いまどきSTLなんかを追ってる奴はC++使いとしておhル
そんなものより標準ライブラリを学んだ方がいい

189 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 19:26:15.14 ID:lGDFdcrw.net]
Bjarneすら使ってるSTLって言葉を規格に書かれてないからという理由で現在のC++には存在しないと思い込んでるコミュ障はこちらです。

190 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 20:18:35.26 ID:lyjS/Lrb.net]
>>186
Bjarne何それ凄い本なの?
規格に書いてなかったら存在しないに決まってんだろ
STLは固有名詞だぞ
むしろ存在するという根拠がその何とかだけ哀れプ



191 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 21:18:31.53 ID:GK8aqbnd.net]
まあ仲良くやれよ
俺からしたら目くそ鼻くそなんだからさ

192 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 21:37:58.87 ID:lLEFDpN4.net]
お前鼻くそだもんな

193 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 21:48:16.00 ID:XBYuHCiX.net]
耳クソが差別されてる

194 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 21:50:47.25 ID:tGx4Deuf.net]
お前なんかウンコじゃねーか

ウンコを食するのはチョンだけだからうぬぼれるな

195 名前:デフォルトの名無しさん [2015/06/16(火) 22:13:24.54 ID:a66PPdJo.net]
STL学んどけばC++ template libraryの大部分はカバー出来るので問題無し。

196 名前:デフォルトの名無しさん [2015/06/16(火) 22:22:13.05 ID:Wlz7LxtV.net]
間違ってるのがだろいる? STLの使い道でなく実装の方なんだろ?
ちなみにC++より先にSTLの(計画)が存在していてada言語なんかで実装されていたが、
C++がSTLを実装できるように言語整備してくれることになってC++に乗り換えたようだが。
最近の新機能は別として、STLの実装はC++の根幹と強く関わっている。

197 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 23:00:38.11 ID:RvppK8J/.net]
>>156
switchでシコシコ書いとけ

198 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 01:02:46.42 ID:Rr/faFkh.net]
msvcp120.dllみたいな、C:\Windows\sys以下略的な場所にあるDLLって、逆アセンブルしたらお縄につくと思いますか?
dumpbinで定義場所がわかったのですが、リバースエンジニアリングの文献あさってたら不安になってきました。

199 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 01:13:12.91 ID:fwpnML0y.net]
visualstudioで見れるのにそんなことあるかよ

200 名前:デフォルトの名無しさん [2015/06/17(水) 07:47:03.15 ID:XzA4s7ug.net]
リバースエンジニアリングは完全に合法。
ただし、その成果の利用は著作権や特許権の侵害になる可能性がある。



201 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 08:28:40.34 ID:nLVEpHHv.net]
↑犯罪者の思考
利用許諾の内容による

202 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 08:30:02.84 ID:m8tZeVT5.net]
利用許諾は法律ではありません

203 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 09:19:44.98 ID:1fuhRo8q.net]
クラス設計のことで質問なのですが
シミュレーションなどを行う時に
・シミュレーション全体の処理を行うクラスをClassA
・シミュレーション

204 名前:で扱う一つの要素をClassB
としたとき、ClassAがClassBのインスタンスを所有するのが妥当と思ったのですが
ClassBのインスタンスが別のClassBのインスタンスの情報を取得したい場合にはどうしたら良いでしょうか
[]
[ここ壊れてます]

205 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 09:20:50.28 ID:fwpnML0y.net]
weak_ptrを渡す

206 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 09:32:58.65 ID:z8bMCcaA.net]
取得して、処理が終わって、すぐに手放すのであれば
weakでなくてもいいけど

207 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 09:41:17.80 ID:TAhSydYN.net]
基本的には自分の情報以外はメッセージで渡さないと意味なくね?
とくにC++は言語仕様的に外部オブジェクトの生存保証されないし

208 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 12:33:37.15 ID:301WTulA.net]
>>198
「お前が盗用してないかを確かめるために俺にはリバ(ryする権利がある」

という主張がある

209 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 13:22:43.92 ID:J4GCOmLO.net]
今の中年プログラマ達は皆市販ゲームソフトをリバースしてプログラム覚えたんちゃうん?w

210 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 13:45:47.07 ID:YyzkFynf.net]
ゲームのリバースはプロテクト外す時くらいで、ほとんどは文献と試行錯誤かと。



211 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 19:36:26.34 ID:2rbkWFjf.net]
卑怯モードのパッチ当てるために逆汗しまくったな

212 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 21:33:49.99 ID:LUerVH9f.net]
リバースもなにも本にソースコード載ってましたから
それを打ち込めば嫌でも覚える

213 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 23:28:20.14 ID:JpEvga0Q.net]
>>199
もちろん利用許諾は法律ではない
ただ利用許諾に合意した上で使用しておきながら利用許諾に違反することは法律的にアウト

214 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 23:50:45.31 ID:Ktj7spuj.net]
func(const std::vector<Type*>& data)
だとvectorが所有しているTypeのポインタが変更されない保証はしますがポインタが指す内容をconstするにはどうしたら良いでしょうか

215 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 00:28:40.47 ID:S7MXVj3e.net]
>>210
func(const std::vector<const Type*>& data)

216 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 00:29:35.45 ID:8E4hSzpF.net]
>>210 func(const std::vector<const Type*>& data)

217 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 00:39:57.75 ID:emWLg+dj.net]
>>211-212
ありがとうございます
そこにもconst指定出来るのを知りませんでした

218 名前:デフォルトの名無しさん [2015/06/18(木) 01:16:09.08 ID:pxg0AGV7.net]
>>209
利用許諾とか法律的にとか言いながら、最後は「アウト」かよ。
「アウト」ってどういう状態なんだよ。

219 名前:デフォルトの名無しさん [2015/06/18(木) 01:18:22.49 ID:pxg0AGV7.net]
>>209
ついでに、なんと言う法律の第何条で「アウト」なんだ?

220 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 05:57:00.60 ID:4nFQxAQO.net]
>>209
利用許諾自体がグレーだって事もある



221 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 06:08:53.36 ID:DCGka9LV.net]
一度どこかが誰かを訴えて白黒つけてほしい

222 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 10:30:49.87 ID:GO7pZsHO.net]
>>197
特許技術は公開技術
リバースエンジニアリングをしないと知ることができない非公開技術は特許の保護を受けられない

223 名前:デフォルトの名無しさん [2015/06/18(木) 11:49:59.30 ID:pxg0AGV7.net]
>>218
利用している特許を公開する義務はない。
特許侵害で訴えられてる奴は「誰それの特許使ってます」と公開してたから訴えられたとでも言いたいのだろうか?
頭悪すぎるぞ。

224 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 11:51:47.50 ID:8GBJ818p.net]
どーでもええわ
次の話題でるまで傍観やな

225 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 12:23:41.86 ID:4nFQxAQO.net]
>>219
利用している特許を公開って言ってるように見えるのか・・・

226 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 12:33:31.12 ID:+t+nHn0J.net]
>>221
その前の二つも頭悪いの丸わかりなコメントだから相手にしなくていい

227 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 12:40:33.52 ID:l5ecBeAY.net]
>>219
特許を申請して認められるためにはその技術を丸ごと公開しなければならないという話なんだけどね。
リバースエンジニアリングしなければ見つけられないような隠している技術は特許として認めてくれないんだけど
そういうことをまだ勉強してない年齢なのかな?

228 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 13:20:22.41 ID:Uqe2tLhj.net]
どーでもいいよ
ガキみたいな喧嘩

229 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 13:22:23.54 ID:4nFQxAQO.net]
どうでもいいのにレスするの流行ってんの?

230 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 13:32:48.13 ID:dz4KgSgw.net]
流行ってるみたいだな
当人がどうでもいいと思われてることに気がついて、やめてほしいんだろう



231 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 13:34:24.46 ID:EWYficgP.net]
当人にとっては、そのレスがどうでもいいから、無意味だなw

232 名前:デフォルトの名無しさん [2015/06/18(木) 14:44:25.34 ID:D1v6en8Z.net]
Visual C++やclangにはブレークポイントで停止させる
__debugbreak()という組み込み関数が用意されているのですが
gccにも同じような関数はあるでしょうか?

233 名前:デフォルトの名無しさん [2015/06/18(木) 15:10:36.84 ID:pxg0AGV7.net]
>>223
特許の申請と実施は全く別物だ。
侵害してる事実の立証のためにリバースエンジニアリングする場合もある。
そんなに頭悪いと生きていくの大変だろ。バカだからそれすら自覚できないのか。

234 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 15:53:54.07 ID:dz4KgSgw.net]
>>228
あると思うけど、、とりあえず
asm ("int3");
でどうなる?

235 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 18:16:01.53 ID:Y3/N3mbv.net]
>>225
お前がせこせこ書いてる話題がどうでもいいってことだろ。アスペかよw

236 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 18:20:35.66 ID:oM2PY3Rb.net]
stackoverflow.com/questions/173618/is-there-a-portable-equivalent-to-debugbreak-debugbreak

237 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 18:24:32.90 ID:MEqdcl1J.net]
たまにプログラミング配信するけど、うざい奴ダントツトップがコード基地外君で、2番目が異常に権利に拘る君。
そいつと同じ臭いがする。

238 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 18:29:26.63 ID:b0+O/L2f.net]
結局はっきりとは言えないけど大丈夫という感じなんですかね。グレーゾーン的な。

質問なんですが、visual C++2013のcrt中、xmemory0で、::operator new(size * sizeof(type))って文を使ったアロケータ、

239 名前:_Allocate(size_t, _Ty)があります。
これは、new[]でないとdelete[]が動作しないと思うので、配列確保は意図していないアロケータだと予想したのですが、コメントには「カウント分の配列をアロケート」とある処理で呼び出され、_countが渡されています。
::operator newは配列にも問題なしで使えるものだったのでしょうか、それともvisual C++特有で可能なのでしょうか。

※ MSDNの::operator new関数項は参考になりませんでした。
[]
[ここ壊れてます]

240 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 18:58:57.78 ID:8GBJ818p.net]
>>233
2番目はどうでもいいが1番目がどういう奴か気になるw



241 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 21:20:05.51 ID:dSLi8a8R.net]
Effective C++を少しずつ読み進めてるレベルの初心者なんですが、「トレイト」というもののイメージがよく掴めません。
wikipediaを見るとサポートする言語としてPHP、Rubyなどが挙げられ、実際ググるとこれらの言語のページがよく見つかるのですが、
これらの言語特有の機能というわけではなくて、一種の考え方というか方法論と思ったのですが、合ってるでしょうか?
(C++のコードでもよくtraitウンヌンという名のクラスや関数を目にします)

あと、これはスレチかもしれませんが、この辺も含めて学習するのに適した書籍がありましたら教えてください。

242 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 21:58:58.36 ID:pxg0AGV7.net]
英単語そのままの意味だよ。特性。

243 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 22:03:10.28 ID:6XTUSAzX.net]
C++のtraitsと他言語のトレイトを一緒にするな低能

244 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 22:57:07.51 ID:07+WSBTe.net]
>>236
イメージが欲しいだけならstd::stringのソースを読んでください

245 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 23:31:52.10 ID:rU9GRM1c.net]
トレイトってなーに

246 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 23:32:21.15 ID:20ArJ1BM.net]
p2pファイル交換ソフトのこと

247 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 00:01:44.54 ID:i9GZa/61.net]
それトレント

248 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 07:12:21.98 ID:P4SCySD/.net]
>>231
ん?同一人物視してる?糖質?

249 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 08:27:57.72 ID:rAG6nPHK.net]
またそうやって…
絡むの好きだねえ

250 名前:228 mailto:sage [2015/06/19(金) 09:59:33.39 ID:WpsaewOp.net]
>>230
それだとUnrecognized opcode: `int3'という
コンパイルエラーが発生してしまいましたが
ググってたら__builtin_trapという関数が見つかりました。



251 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 10:22:25.16 ID:79sHcd8T.net]
>>236
つ Modern C++ Design

252 名前:236 mailto:sage [2015/06/19(金) 10:51:56.03 ID:W25LiItW.net]
初心者が人にうだうだ聞くより、まずは基本をしっかり勉強するべきですよね・・・
Modern C++ Designとか有名所の書籍をもっと読もうと思います
ありがとうございました

253 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 11:52:23.32 ID:7q0J1L8t.net]
Effective Modern C++以外で、C++11対応のtips本みたいなやつってなんか出る予定ある?

254 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 20:09:34.67 ID:pabjvoWo.net]
C++ポケットリファレンス

255 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 11:05:57.00 ID:PKKtbZWy.net]
STLのカスタムアロケータをランタイムで動的に使い分けたい場合ってどうするのが筋ですか?

256 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 11:10:33.63 ID:x1pBWz9u.net]
>>250
ちょっと考えれば分かりそうなものだが

257 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 11:12:12.24 ID:PKKtbZWy.net]
たとえばvector::reserveなんかを呼び出すときに
メモリ確保が行われると思うんですが
この時特定のポインタを指定するスレッドセーフな方法ってありますか?

258 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 11:24:50.70 ID:PKKtbZWy.net]
allocate関数のhintを使うんですかね?
これ

259 名前:フ具体的な使い方ってわかります? []
[ここ壊れてます]

260 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 11:41:56.88 ID:C7h5NlrH.net]
>>252
先頭要素を指定アドレスに配置したいならコンテナーを自作するしかない



261 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 11:45:41.45 ID:PKKtbZWy.net]
マジですか・・・

262 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 13:09:32.75 ID:aEgncsrl.net]
あの、>>234だれか助けてください。無理なら他所で質問したいので、マルチにならないようケジメつけたいです。

263 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 13:13:02.23 ID:k+RF+9l2.net]
>>256
ちゃんとデストラクタ呼び出してからdeleteしてるから大丈夫

264 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 16:01:12.61 ID:aEgncsrl.net]
>>257
どの処理の話でしょうか?
void allocator::destroy(_Ty*)でしたら、自分は配置newしてるvoid allocator::construct関連用の関数だとおもいます(だから関係ない話だとおもいます)。
::operator deleteの話でしたらごめんなさい。その場合は1つ、質問があるのですが、
「デストラクタを呼び出してるから大丈夫」
とは、_count要素個分のデストラクタを呼び出してるということですよね?すると今度はdelete[]が謎ですね……
見た感じ、new[]はRTCCALLBACKというマクロ(定義が別にあるみたいで詳細不明)でnewのサイズを記憶しているみたいなのですが。

265 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 16:22:36.18 ID:WCJ0snsI.net]
operator new関数とnew演算子は別だと思うんだ

266 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 16:29:42.91 ID:f7mGspD+.net]
::operator new(size * sizeof(type))して個別にコンストラクタ呼び出せばいいように
個別にデストラクタ呼んでdeleteすりゃ大丈夫ってだけ
new[]もdelete[]も上と同じことしてるだけだ

267 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 16:46:12.46 ID:aEgncsrl.net]
それは理解してる(はず)んですが、質問しているのは、
「配列確保と書いてある処理に、::operator new[]()ではなく、::operator new()を使ってメモリ確保してるのは大丈夫なんでしょうか」
ということなんです。そして、疑問に思った理由は、new[]の方は、いま提示してくださった、
「個別にデストラクタ呼んで〜」を実現するために、確保したメモリの近くにこっそり、N * sizeof(type)の N を記憶配置する処理が、newに加わったものと聞いているからです。
delete[]は、この N の書かれたメモリを読んできちんとデストラクタを呼ぶはずです。

そして今newaop.cppを読んでいるのですが、
void operator new[](size_t)
はどうやら、operator new()に処理を丸投げしてるようです。
なので、言語仕様に沿うためにnew[]を作っただけで、実はマイクロソフトのnew()は万能かもしれないという予想ができました。

268 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 16:57:03.03 ID:f7mGspD+.net]
newもnew[]も内部でmalloc呼んでるだけだ

269 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 17:05:37.37 ID:WCJ0snsI.net]
そもそもオブジェクトの大きさなんてクラス定義次第だし

270 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 17:26:22.91 ID:aEgncsrl.net]
もういいです……
newとnew[]の違いが核なのに共通処理であるmallocよんでるとか、ちゃんとsizeof()ってかいてあるのにオブジェクトのサイズが違うとか的外れすぎます……



271 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 17:31:17.43 ID:f7mGspD+.net]
違いは配列のそれぞれの要素のコンストラクタ呼んでるかどうか
マイクロソフトのnewが万能って何を勘違いしたらそんな考えに行きつくんだ

272 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 17:47:35.83 ID:aEgncsrl.net]
>>261 下段に書いてあります。それでダメならご自身でnewaop.cppを読んでください。
もちろん、visual C++があるから回答されたんですよね?

273 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 18:39:23.69 ID:+xZFlOkP.net]
>>264
おまえ頭悪いな。
例えるなら「operator newのソースを覗いたらmallocしてたんですけど
mallocとdeleteは互換性無いんでは?」
みたいな勘違い質問だ

274 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 19:35:08.24 ID:WCJ0snsI.net]
>>264
あなたの理屈だとクラスが複数のメンバ変数持ってしまったらoperator newが使えなくなるんじゃないか?
ってことを>>263で遠回しに言ってみたんですが伝わらなかったようですね

275 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 19:36:45.20 ID:RdU0NHX6.net]
あんた京都の人どすか?

276 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 20:40:03.11 ID:omTqKyyl.net]
>>259が言ってることが全て
operator newもoperator new[]もコンストラクタは呼ばない
引数で受け取ったメモリサイズを確保してるだけで違いは何もない

newはoperator newでメモリ確保してコンストラクタ呼び出し
new[]は配列数を保存するためのメモリも含めてoperator new[]でメモリ確保して配列数だけコンストラクタ呼び出し

277 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 20:51:25.30 ID:aEgncsrl.net]
なるほど、たぶん理解しました。
キーは演算子だったんですね……
ということは最初の質問も大丈夫なのか。

ありがとうございました。

278 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 21:09:01.76 ID:KwPVj5b7.net]
配列のdeleteはそれがクラスならそのクラスのdeleteがさらに呼ばれる
charをmallocしてるだけならデストラクタなんて関係ないから変わらん

279 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 21:21:00.82 ID:IffuO+cK.net]
↑いまだに理解できてない人

280 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 21:42:39.32 ID:u8g5xW9v.net]
よくわからんw



281 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:19:06.72 ID:boB6aoFy.net]
1.new式のやること
 1-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を同じ
にしておかないとおかしなことになる

282 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:19:31.11 ID:e5DrvLw2.net]
std::atomic<int>などの初期化について質問なんですが、
スタックやヒープに置かれる場合、用意されたメモリは最初ゴミで埋まってますよね

コンストラクタで値を与えたり、代入したりして、初期化が完全に終わった後でも
他のスレッドからアクセスすると最初のゴミが見えてしまうことってありませんか

どこか(規約とか)で安全が担保されているんでしょうか

283 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:24:38.01 ID:TpIghoYw.net]
>>276
volatileと違って無いことになっている。
コンパイラーはそれが無いようにしなければならない。
実際になっているかどうかは知らん。

284 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 22:29:08.11 ID:e5DrvLw2.net]
建前上は問題ないということですね
そういう風に考えておきます
ありがとうございました

285 名前:デフォルトの名無しさん mailto:sage [2015/06/20(土) 23:45:56.39 ID:TorvNocD.net]
信用しちゃだめよ。
共有するなら、クリチカルセクションで同期取って、
初期済かどうかも確認出来るようにしないと。

286 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 00:16:56.88 ID:rdO67jBa.net]
VS2015のatomic_intに対するアセンブリコード見たら
メモリバリアもリオーダ抑制もしていなかった
大丈夫なんだろうか…

287 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 00:45:23.95 ID:wi8ruPuE.net]
intなら平気平気

288 名前:280 mailto:sage [2015/06/21(日) 01:41:17.24 ID:YN1udE9r.net]
調べたらx64ってメインメモリ共有構成のSMPでも
intがロックフリーだったのか。失礼した

289 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 06:21:07.89 ID:QGPUzNZz.net]
std::atomicつかうのにクリティカルセクションが必要とか何の冗談
初期化してから他のスレッドから見えるようにすればいいだけ

290 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 09:41:37.24 ID:qbGsUBw5.net]
昨日、マルチスレッドなプログラムのコードを読んでたんです。マルチスレッド。
そしたらなんかロックがめちゃくちゃ競合しててパフォーマンスが出ないんです。
で、変更履歴よく見たらなんか全メソッドを一つの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! とでもつぶやいてなさいってこった。



291 名前:デフォルトの名無しさん [2015/06/21(日) 09:56:28.22 ID:/g9T8vHw.net]
マルチーズかわいいまで読んだ

292 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 10:18:13.21 ID:tbpMdelt.net]
>volatileなんてC++のマルチスレッドプログラムじゃ意味ねーんだよ

std::atomic<T>はコヒーレンスの制御したとして
コンパイラの出力するコードの再オーダリング抑制までしてくれたっけ?
a1 = 1;
a2 = 2;
この順序が入れ替わったらコンシステンシーが保てなくなる

293 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 11:06:51.76 ID:faNvk/Nn.net]
include <stdio.h>

int 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が入力待ちになりません

294 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 11:24:44.25 ID:0VYCqu5Y.net]
1つ目でEnterを押しているだろ?
その時の改行コードを無視しているから、2行目の入力として読み込まれてしまってる

確かこんな指定で読み飛ばせたはず。詳しくは、scanf 改行 でぐぐってみて。
scanf("%d%*c",&a)

295 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:34:48.43 ID:GXl3ve4y.net]
scanf("\n%d", &b);
でてきなかったっけ?
「\n」が任意の空白を読み飛ばしたような記憶がある

296 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:47:09.64 ID:i/7Q1J4R.net]
無名共用体をconstに初期化ってできますか。
例えば↓みたいなコードで、ptrとaddrが直接使えたらいいんですが。
union {
int* ptr;
intptr_t addr;
} const u = {new int(100)};

297 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:53:54.65 ID:6fYaRm3Q.net]
>>287
そうだったのか
scanf2回連続で使った事はなかったなぁ。

298 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 15:20:52.36 ID:1IBkKjPW.net]
>>287
コンパイルできてるか?
if は二文字とも小文字,一行目は #include と # が必要
その修正をほどこしたうえで,
手元の環境(windows7/cygwin/gcc4.8.3) ではうまくいく

>>288
それは %c のときの問題,%d では改行は自力で読み飛ばすはず

299 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 16:18:28.16 ID:6fYaRm3Q.net]
てか仕事でscanfなんて使った事はないなぁ。
getsで取ってからほげほげみたいな。
最近はcinばっかだし。

300 名前:デフォルトの名無しさん [2015/06/21(日) 16:24:30.89 ID:/g9T8vHw.net]
scanfは大学の授業でしぶしぶ使わされたいい思い出
内心cin使いたいねんボケー



301 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 16:41:03.46 ID:rQEeY9TQ.net]
getsなんて使ったことないし使う人は信用ならない
fgetsでとってからstrtol

302 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 16:54:02.91 ID:1IBkKjPW.net]
>>293
gets() はC11やC++14 では廃止された,仕様に致命的な脆弱性をかかえているから

303 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 16:56:17.33 ID:M36Jvwtz.net]
そもそもコンソールアプリなんてここ数年作ってない

304 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 16:57:30.03 ID:GundJla3.net]
scanfの%sも廃止してほしいわ
sscanfならいいが

305 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:03:46.65 ID:0VYCqu5Y.net]
改行の扱いが面倒だから、一旦fgetsでバッファに取って sscanfで解析してるわ

306 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:10:58.20 ID:qbGsUBw5.net]
>>296
廃止できるんなら、セキュアっぽい仕様に変更も可能だと思うんだけど、
なんで廃止なんだろう?(´・ω・`)

307 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:13:51.04 ID:1IBkKjPW.net]
>>300
fgets() 使え馬鹿

308 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:16:08.12 ID:9rSSXz+5.net]
>>300
代わりにgets_sができたからにきまってるだろう。

309 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:44:51.75 ID:qbGsUBw5.net]
>>301,302
いや、あのね?(´・ω・`)
無くしてしまえるなら変えてもいいんじゃないの?(´・ω・`)
という疑問なんだよ?(´・ω・`)
因みにgets_s()は確か実装が必須じゃなかったような気がするよ?(´・ω・`)

310 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:52:59.29 ID:BziqIqe8.net]
仕様だけ変えられたら余計混乱するわい。



311 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 17:56:00.28 ID:qbGsUBw5.net]
>>304
なるほど!納得したよ!情弱を困らせると五月蝿いからって理由だったんだね?(´・ω・`)

312 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:13:27.08 ID:1IBkKjPW.net]
どうせ馬鹿しかつかっていないモンだ,亡くしてもかまわん

313 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 18:18:11.04 ID:/g9T8vHw.net]
/*******************************************
 ここまで情弱のみなさんのトークをお送りしました
 以下、情強の方だけが書き込んで下さい
*******************************************/

314 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:05:02.79 ID:6fYaRm3Q.net]
c++は楽だなぁみたいな

315 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:25:24.07 ID:k0Gw61eH.net]
C++は不要な機能が多すぎ
templateなんてマジで不要だろ

どんな型でも格納できるコンテナやアルゴリズムなんて必要になったことが無い
設計、DR、CRが終ってコーディングに入る段階ではすべてのデータ型とアルゴリズムは決定してるだろ

boostやstlを作っているような人以外のtemplateなんて使えたものじゃないしな

316 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:29:12.61 ID:bqnhQGpv.net]
(σ゚∀゚)σ gets_s()

317 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:36:39.03 ID:8uauNRnw.net]
tenplateは型を決定しなきゃ使えないんだが…

318 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:41:30.92 ID:k0Gw61eH.net]
そんなことはない

319 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:43:28.70 ID:airbCSrp.net]
テンプレートのないC++とかそれこそゴミじゃないか

320 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 19:47:05.20 ID:4GD8qFUn.net]
>>309
>boostやstlを作っているような人以外のtemplateなんて使えたものじゃない

いまどきC++の需要なんて
そういうニッチなとこしか残ってないだろ
もしくはオナニーパーパス言語ともいう



321 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 20:00:27.34 ID:9sgw6ymn.net]
どんな型でも使えるのかとおもいきや、
特定の型だけでしか、インスタンス化できないとか・・・
なんじゃそりゃ天ぷらじゃねーじゃんよw

322 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 20:01:50.89 ID:k0Gw61eH.net]
そりゃそうだろ

普通はイカとかエビだけだろ
どこの世界に象をてんぷらにする奴がいるの

323 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 20:15:07.49 ID:RBHwsW1q.net]
自分が理解できないから不要っていう人って何時の時代でもいるよね…

324 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 20:24:26.06 ID:05QcComm.net]
どうしたいきなり 生理中か?

325 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 00:33:51.35 ID:A9JUVydE.net]
go触ってたらtemplate欲しくなったけどなあ

326 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 04:45:35.18 ID:HGgblcg2.net]
>>319
同じく
でもコンパイル遅くなるから絶対入らないだろうな

327 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 07:57:22.13 ID:zGeYKnW1.net]
同じアルゴリズムによる収束計算を、序盤は高速に終盤は高精度に実行するなんてときはテンプレートは実に助かる。

328 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 13:16:11.96 ID:8JObeX9Y.net]
goってなーに

329 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 13:43:58.19 ID:iW451COy.net]
不要と思うならテンプレートもC++も使わなければいいだけで
そもそもこのスレ見なきゃいいんだよ
C++もテンプレートも必要としてる分野はたくさんある
不要とかいってる奴はそういう分野からお呼びがかからない様な人間ってだけ

330 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 15:23:50.81 ID:c/bcOoEk.net]
レリgo〜〜レリgo〜〜♪



331 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 15:41:26.38 ID:kjcmsc/+.net]
Cを始めようと思います。
こちら、昔コマンドコンパイラを少し使ったことがあるくらいです。

VC++と言うのがマイクロソフトで入手出来ましたが、
これの使いかたがよく分かりません

よくサイトとかで「猿でもわかる初めてのC」みたいなのがあると思いますが、
「猿でも分かるVC++コンパイラ!」みたいなサイトはないでしょうか?

332 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 15:59:06.88 ID:i6Y0mMuW.net]
MSDNとチュートリアル

333 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 16:00:10.61 ID:c/bcOoEk.net]
>>325
あるよ

334 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 16:04:47.15 ID:aqgeqhwI.net]
定番はダイアログボックス型のプロジェクトを選択して
ボタンを押したら こんちわ ってメッセジボックス

335 名前:が出るのを
作ってみる。5分で出来るけどw そこにいろいろ追加してくのがいい。
基礎からコツコツやるとえらく時間かかるぞ。
[]
[ここ壊れてます]

336 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 16:13:35.25 ID:1r/sB/vM.net]
VC++ 2013 とかで具具って

337 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 18:38:43.50 ID:kjcmsc/+.net]
ありがとうございます。
やっぱ意味分からんかったんでコマンドコンパイラ使うことにしました。

338 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 20:19:23.03 ID:3IYPkzd3.net]
ならlinuxでg++ をシコシコやるのも楽しいですよ。
最新版ならc++11対応のはず。

339 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 06:09:07.40 ID:YqL5wpE8.net]
初心者です

#include <stdio.h>

int main(void)
{
printf("何段表示しますか:");
return 0;
}

のソースをコンパイルすると、「unknown escape sequence: '\x8e'」のエラーがでます。「表示」という文字を無くすと問題なく動きます。文字コードか何かが原因でしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 06:34:53.60 ID:5h3tXqcs.net]
表の文字コードに\が入ってるのでエスケープすると解釈されて
コンパイルエラーが出る



341 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 06:40:55.35 ID:YqL5wpE8.net]
解りました
ありがとうごさいます

342 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:13:28.64 ID:dwq1Acys.net]
使っているソースコードの文字コードに対応して
いないコンパイラーを使っていることが問題。
対応していないコンパイラーが内部処理のどこでコケたのかなど
どうでもいいこと

343 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:20:47.06 ID:qkxeTacg.net]
>>332
printf("何段\表示しますか:");

で行けるんじゃないか?

344 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:40:53.63 ID:YqL5wpE8.net]
>>336
やってみたら、

unknown escape sequence: '\x95'
unknown escape sequence: '\x8e'

と二重のエラーが出ました。

ちょっとコンパイラと文字コードについて調べてみます。
ありがとうごさいます。

345 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:54:54.53 ID:PmYcJsrz.net]
>>332
初心者かなんか知らんが >>1 は読んでくれ

> 質問者は必ず環境を書きましょう。

346 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 07:57:55.21 ID:RdIs/jqn.net]
>>337
\の位置が違うな

「表示」のコード並びが、0x95, '\', 0x8e, 0xa6 で、
最初は '\', 0x8eの組み合わせがエラーになっていた。

なので、0x95, '\', '\', 0x8e, 0xa6 にすればいい。
よって、「表\示」

347 名前:デフォルトの名無しさん [2015/06/23(火) 08:07:19.72 ID:a/siRS73.net]
SJIS以外で。

348 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 08:39:20.50 ID:YqL5wpE8.net]
>>338
すみません、
Windows7で苦Cで配ってる、学習用C言語開発環境を使ってます。
コンパイラ: Tiny C Compiler
コードエディター: Azuki
のようです。エディターの文字コードの変更はできないみたいです。

>>339
表示されました。
文字コードの2バイト目が\だったんですね

349 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 08:45:19.50 ID:jsVgNnjE.net]
>>341
UNICODEにすれば面倒な事考えずに済むよ

350 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 09:02:18.24 ID:kcQ8bjDG.net]
まともな環境なら表をエスケープなんてアホな事しなくてすむからそういう環境に移行するまで日本語は使わないようにする事をオススメする



351 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 10:11:37.80 ID:PmYcJsrz.net]
>>341
何かの理由があってその環境使わざるを得ないなら >>343 の言う通り日本語を諦めておくのが吉
特に理由がなくて、個人の趣味なら Visual Studio でも入れておけばいい
今時 表\ なんて知っててもしょうがない知識だしね

352 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 17:12:17.76 ID:m7BL+erR.net]
UTF8が無難かと

353 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 17:23:32.92 ID:l4FzoNFP.net]
BOMで悩んだりするけどなw

354 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 20:43:03.36 ID:VhIo6ThO.net]
utf8にBOMつけたMSしね

355 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:05:30.06 ID:ZGwr55Pk.net]
へーBOMってMSが付けたんだー
ただの>>347の妄想だから
どうせソースは出せないんだろうけど

356 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:17:27.86 ID:TflOpSzz.net]
BOMなんて意識した事ないないなぁ。
それってUTF16の話じゃない? 俺もよーわからんw

357 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:19:18.83 ID:xmziolSE.net]
むしろBOMが付いてないとソワソワするわ
Javaでも無い限り 付いてれば安泰

358 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:14:27.41 ID:2h81dcvH.net]
VSはUTF8でもBOMついてないとどうたらこうたら

359 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:08:07.89 ID:Yra6/pdr.net]
むしろ BOM ないとまともに動かなくなる Linux ソフトに文句言いたいわ

360 名前:デフォルトの名無しさん [2015/06/24(水) 00:44:17.69 ID:pD1CV6fe.net]
BOMついてるとマトモに動かないのもあるぞ。
BOMを普通の文字ASCII(UTF)と認識する。



361 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:48:38.59 ID:jjxytSZJ.net]
>>352
例えば何?
逆しかしらんわ、例えばシェルスクリプト

362 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 01:00:04.41 ID:jjxytSZJ.net]
頼んでもないのにUTF-8のテキストファイルにBOM付けるのもMS製品しか知らん
各ローカルのエンコーディング(CP932とか)と区別するために仕方ないとは思うけどね

363 名前:デフォルトの名無しさん [2015/06/24(水) 04:06:54.28 ID:0YYtkPhP.net]
>>355
いや、俺が頼んだから。

364 名前:352 mailto:sage [2015/06/24(水) 06:34:16.81 ID:JTCZnA99.net]
>>353-354
すまん、逆だったわ

365 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 08:01:23.75 ID:1pOYGOOQ.net]
頼んでもいないのにBOMを削られると困ります。

366 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 08:17:15.29 ID:RCx1dp21.net]
勝手に削るのはありえない(というかそんなソフトウェア見たこと無い)けど勝手に付けるのも同じくらいありえない

367 名前:デフォルトの名無しさん [2015/06/24(水) 12:47:46.27 ID:0YYtkPhP.net]
gccがBOMついてると爆発する問題は修正されたのか?

368 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:17:32.93 ID:RCx1dp21.net]
されないんじゃない?
UTF-8にBOMは規格で推奨されてないし、付けてもいいよ程度のもんだから、わざわざ対応しないと思う

369 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:26:42.21 ID:5Nshi9zi.net]
やってみりゃいんだけど、BOMが付いてると
stdio とか fstream でなんかケアしなきゃいかんのか?
誰かサンプル持ってたらよろです。

370 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 15:49:55.96 ID:NHniIMjV.net]
もともとソースコードの話でないの?
自分のプログラムの対応の話じゃないと思うけど。



371 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:50:57.24 ID:OJjTVAhE.net]
BOMが付いてると動かないプログラムは
Unicode準拠をうたってはなりません。
対応は任意でなく必須です。

372 名前:352 mailto:sage [2015/06/24(水) 22:16:00.95 ID:mSDBMbUW.net]
>>363
GCC に手を入れて BOM 対応にしようとしてる人かも w

373 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:41:25.10 ID:QFYn1SeT.net]
>>365
そんな改造は数分もかからないだろ

374 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:50:25.56 ID:RCx1dp21.net]
そんなのよりMSVCでBOM無くてもUTF-8としてソースコード読み込む方法を提供してほしいわ。

375 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:40:15.34 ID:j7aixYkf.net]
>>362
Visual 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は読み飛ばされる

376 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:14:28.43 ID:VkOPpBHg.net]
>>368
ども 結局 VC?がBOMをつけてないとutf8でることがわからないみたいね。
会社でも自

377 名前:宅でもlinux鯖はutf8でやってるけど、今まで問題が出なかったのは
系が閉じてたって事なんだろね。
以前にUTF16の中国語のファイルをVCで変換する時、BOMを意識した覚えがある。
[]
[ここ壊れてます]

378 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:36:05.41 ID:QrIpaMYv.net]
UTF-16はBOM必須と言えるけどUTF-8は要らん。理由はその名の通りByte Order Markだから
Unicodeマークじゃないんだよ

379 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 07:10:32.26 ID:xvyRgwF3.net]
付ける側は自由ですが
付いててるのを読めなかったらバグですよ?

380 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 07:13:57.60 ID:q/nLF9Gf.net]
つまりgccはバグだらけ



381 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 08:40:14.19 ID:ofXCbpD3.net]
付けないとUTF-8として読んでくれないのはバグですか?

382 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 09:39:23.26 ID:V1vMIA1d.net]
VCの仕様は意味が分からない

383 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 13:46:35.96 ID:KIJ/2YKU.net]
そういや最近のMSはオープン志向だよね
昔のような身勝手なオレオレ仕様は少なくなったんじゃ?
知らんけど

384 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 14:13:47.61 ID:JIDQ8g88.net]
ラッパー関数を作ろうと思うのですが、ラッパー関数はインライン展開できるもの(意図した挙動をする)でしょうか?
また、仮にしたとしてもインラインしない方がよかったりしますか?
ラッパーの内容は、ラッパー対象のある関数の、ある引数を隠すものです。

385 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 14:21:41.49 ID:+mJ3x15y.net]
>>376
もちろんインライン展開できるよ
inlineつけてもインライン展開してくれるとは限らないけど
強制的にインライン展開したいならコンパイラによっては
__forceinline(VC)とか__attribute__((always_inline))(GCC)がある。

386 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 15:04:46.96 ID:JIDQ8g88.net]
今さら逆アセすればわかるやんということに気づきました……
無駄な質問でしたね……ごめんなさい。

>>377
ありがとうございます!
コンパイラ様はインライン化していなかったのでインラインは非推奨なのでしょうか。
forceinline覚えておきます。

387 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 15:14:58.96 ID:VkOPpBHg.net]
inlineにするしないでそんなに変わるかなぁ

388 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 15:20:12.37 ID:OhItl4ef.net]
実際に inline してた/していない で動きが変わるコードってありえるのかな?

スタックが本当にギリな状態?

389 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 19:52:23.26 ID:thAj7A8F.net]
>>373
UTF-8だと認識しないことはバグではありません
でもUTF-8だと認識しているのにBOM有りを読めないのはバグです

390 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:18:16.87 ID:QrIpaMYv.net]
tools.ietf.org/html/rfc3629#section-6

UTF-8しか受け付けない、もしくは使用するエンコーディングを決める方法が別で提供されているのであれば、BOMの添付は禁止すべきと書いてあるんだけど。
gccはエンコーディングを指定出来るし、デフォルトはシステムロケールに設定されているエンコーディングを使用する。
つまり使用するエンコーディングが決まってるからBOMの添付は禁止。



391 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:39:38.32 ID:EqwSAYW9.net]
>>381
MSでもそこまで俺様ルールを語らないのに
誰にそんなデマを吹き込まれたんだよ

392 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:56:34.23 ID:6T6/Nvaf.net]
>>382
禁止すべきと禁止の区別もつかないのかよ

>別で提供されているのであれば
冒頭に書かれた適用範囲ぐらい読んだらどうなの?
プロトコルとアプリケーションの用語を明確に使い分けていて
この文書はプロトコルに言及したもの。
gccのオプションは明らかに関係ない

>>383
Unicode Standard読んでから出直せ

393 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:09:24.95 ID:kAKrjTbC.net]
>>384
gccの入力のプロトコルの話だよな

394 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:31:21.92 ID:QrIpaMYv.net]
>>384
じゃあその前段のストリームの最初のU+FEFFはZWSPとして解釈できる、常にsignatureではないってのは読めるよね?
コンパイルするファイルの先頭とかincludeしたファイルの先頭にユニコード文字が合ったら文法エラーになるのは普通だと思うけど?

あと、Unicode standrd読み直せとかおおざっぱに言うんじゃなくてそれのどこに書いてあるかポイント示した方が建設的な議論になると思うよ。
そういうつもりがないならそれはそれで構わないけどさ。

395 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:50:18.27 ID:Wbuu0KdJ.net]
utf-8にBOM?馬鹿なの?死ぬの?

396 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:29:47.86 ID:n2Du4S5D.net]
>>386
ひょっとして「常にシグネチャーというわけではない」を
「常にシグネチャーでない」と勘違いした?
その前にいいかげん適用前提が違う文書持ち出すの止めれ

397 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:40:12.63 ID:QrIpaMYv.net]
>>388
別に勘違いしてないけど?
そう書いてるし
で、適用前提がどう違うんだ?

398 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 01:03:10.83 ID:e7iRldNZ.net]
utf8テキストの頭にバイト順序を示す印を入れる理由が分からない
それ無意味じゃないか?

399 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 01:13:24.31 ID:eSs+94eD.net]
>>388
> ひょっとして「常にシグネチャーというわけではない」を

そんなこと書いてる規格はどこにもない

400 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 01:26:16.34 ID:TBuS4pq6.net]
BOM付きテキストはgitで弾かれるという現場もありました。



401 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 01:26:32.00 ID:JggZpWgl.net]
僕も無意味だと思うけどなぜかMSは勝手に付けたがる

402 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 02:03:52.61 ID:rrmvAZf/.net]
>>391
テキストファイルのUTF-8の先頭がZWSP(U+FEFF)に値する文字列だった場合必ず読み飛ばせと書いてある規格の文書だしてくれって言ってるんだけど
そんなに自信満々ならすぐ出せるよね?

403 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 02:05:26.16 ID:h13vbdrj.net]
utf8なら不要だけど、付いてないとは言えない というワケワカな状況でどおしますかぁ
って事ですね。
ん? viでテキストでデータファイル作る時、BOMなんか付かんよなぁ。
調べてみるかw あっぶー

404 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 02:08:14.60 ID:ZvSiRQcs.net]
>>388
「常にシグネチャーというわけではない」と書かれてある規格書はどれですか?

405 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 02:10:35.96 ID:JNJ/VPAI.net]
>>394
> … 場合必ず読み飛ばせと書いてある規格の文書だしてくれって言ってるんだけど

何番のレスでそれを言ってるの?

406 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 02:15:51.14 ID:5AuyErdZ.net]
たとえ書いてなくても空気読めば言ってるように見えるだろ
空気読めない病か

407 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 05:29:32.97 ID:kN6yxPsW.net]
>>391
知らないようだから教えてあげるよ
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.』

408 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 06:06:48.17 ID:p2u7R4Bh.net]
peace.2ch.net/test/read.cgi/tech/1401301779/

409 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 08:21:12.45 ID:zVLNx7Uq.net]
>>397
>>386後半じゃね

410 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 08:27:34.48 ID:mHm08jEM.net]
>>393
Windowsの場合はエンコーディングの区別として必要なんだろう。
もともと何もなければシステムロケールのMBCS、UTF-16 BOMがあれば
UnicodeとしていたところにUTF-8を混ぜるなら何らかの目印がないと。



411 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 08:51:15.80 ID:ll0kneqe.net]
すれち

412 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 09:06:15.73 ID:rrmvAZf/.net]
gccにBOMありUTF-8ファイルを食わせるとコンパイルエラーになるのはUnicode規格違反でバグだって根拠も出さずに言う奴がいたからこの流れになったわけで。
根本はgccがUTF-8でBOMを読み飛ばさないのはバグかどうか?だからスレ違いとも言い切れない。
さっさと根拠出してくれたらこんな風に発散する事も無いのにね

413 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 09:40:42.44 ID:vN2cPuzl.net]
>>399
それは「常にシグネチャーではない」の方だろう

414 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 09:42:32.76 ID:wrsw7rn3.net]
>>402
エンコードの指定はコンパイラーの起動オプションでやればいいこと

415 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 11:21:10.57 ID:2DIvwxNa.net]
>>404
ネチネチとしつこいのもどうかと

416 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:27:05.74 ID:bzZHYNja.net]
>>406
オプションで指定したいってのは同意だけど
Unicode Standard 7.0.0の3.10に従ったファイルが読めないのは何とかならんもんかね

417 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 14:11:18.96 ID:ufdBwIlV.net]
>>408
Cの規格にそれが読めるべきだとでも書いてんのか?

418 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 15:06:25.84 ID:nMtdIwui.net]
>>408
MSが付けたがる理由についての議論で
そうすることの必要性があるという話と
オプションでやればいいのだから必要性があることにならないという話が
ぶつかってんだろ?
「読めないのはなんとかならんもんかね」は何の関係があるんだ?
gccの仕様については別のツリーなんだから関係ないところにぶら下げんなよ

419 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:23:28.74 ID:DGi08Nca.net]
因みにここまで誰もかいてないけどgccは数年前からBOM付いてるUTF-8も大丈夫だよ

420 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:23:39.53 ID:RqUqKeIt.net]
でもさ、 俺から言わせてもらえば おまえらは結局日常じゃ使われないような漢字検定一級に出てくるような漢字が読める自慢大会をしてるにすぎないんだよね



421 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:26:07.76 ID:RqUqKeIt.net]
一番大事なのはどう作ったかじゃなくてどう喜ばれるかなんだよね

422 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 17:36:42.45 ID:h13vbdrj.net]
>>411
うそん オプションわ?

423 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:19:11.14 ID:x5rK/oSU.net]
ファイルが1000個あってBOM無しUTF-8とシフトJISが混在してて
コンパイルオプションで文字コード指定しろなんて言われたら悪夢じゃね?
ファイルシステムに文字コードの属性が持たせられないんだから
内容で判断できるようにしておかないと困る

424 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:32:25.16 ID:xjgOsjgG.net]
>>415
そういうときは、文字コード判定プログラムを使って振り分ける

425 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:54:30.36 ID:lJNlJt0q.net]
>>415
guessればいい

426 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:54:49.05 ID:geSptdQS.net]
utf8かshift_jisかの区別のつかない文字ってあったっけ?

427 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:57:02.38 ID:PsuOU61s.net]
いまどきShift_JISなんかpushしようとしたらgitがリジェクトするようにしておくものです

428 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:02:36.81 ID:wrrg34rC.net]
>>418
ASCII文字全部

429 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:10:52.98 ID:QWBhAVlI.net]
Shift-JISはともかくShift_JISなんて使ってる人を見たことがない

430 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:20:57.93 ID:uDnONhSK.net]
>>416>>417
推測が前提ならよけい、BOMがあれば早いし確実だろう。



431 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:28:49.14 ID:Nu5Eq91b.net]
馬鹿には無理
A「BOM付いてなかったら混在したとき大変だろ」
B「判定プログラムを作ればいい」

Bは会話のできないアスペ

432 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:48:20.14 ID:of/AuL+E.net]
>>422
同じバイト列になる文字があるエンコーディングがあるから確実ではないな

433 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 03:03:30.26 ID:sq4XoAGl.net]
>>421
Shift_JISはIANA上に正式名称として存在するが
Shift-JISは存在しない

434 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 03:04:36.37 ID:LNawPNEK.net]
>>424
そういう文字がないんだよ

435 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 03:49:03.12 ID:6cnS2jj5.net]
そんなに問題になってないって事はそれほどの問題じゃないって事ですよ。

436 名前:デフォルトの名無しさん mailto:sage [2015/06/27(土) 09:14:50.57 ID:S/rvYXws.net]
さいれんとまじょりてぃ

437 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 07:55:42.70 ID:D7jxIzCC.net]
bom付きutf-8は同じutf-8とですら
解釈に曖昧性が残るじゃないか。

438 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 05:47:08.93 ID:cdRwV9j9.net]
苦しんで覚えるC言語を一通り勉強したのですが
これから苦しんで〜をもう一周したり、もう少し高度なC言語の本に手を出すか
昔買って挫折してたやさしいC++を始めるか
どちらが良いのでしょうか?

439 名前:デフォルトの名無しさん [2015/06/30(火) 07:11:36.47 ID:mUVzLumV.net]
C++

440 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 08:50:56.53 ID:SA/B9hQl.net]
構造体からクラスとポインタや参照を使えるようになったらいい



441 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 14:29:16.72 ID:vlMYeJfX.net]
いきなりC++って人もいるだろうけど、やっぱCで苦労しないと
だめだと思うなぁ。

442 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 15:04:04.38 ID:i8ZpT3Aq.net]
先日苦Cで基礎を一通り見て、今、明解Cの中級読んでる。自分の場合、基礎は10回通して復習しないと覚えられない感じ。結局入門も買って読んでる

443 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 15:25:39.71 ID:SxVzyymn.net]
実際書いたほうが覚えやすい
読んでるだけじゃ‥ヌググ

444 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:18:49.47 ID:i8ZpT3Aq.net]
書いて分からなくて読み返し、の連続ですよ

445 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 00:05:28.23 ID:LeTT1hT8.net]
C++は勉強したけどCなんて知らん。
C++を学ぶのになんでCが出てくるのか不思議。

446 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:14:33.64 ID:VnHZAaaA.net]
坊やだからさ

447 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:31:59.47 ID:Io0iQPrm.net]
>>437
POSIX環境を使うつもりがないということか?

448 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:34:30.66 ID:zKWcKKso.net]
>>439
どういう意味?

449 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:51:12.45 ID:G/B+NFD1.net]
>>440
どういう意味とは?

450 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:53:11.62 ID:YlcCiWLR.net]
典型的な「質問に質問」の応酬だなw



451 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:54:31.73 ID:HjKCw0JZ.net]
>>442
典型的とは?

452 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:58:10.62 ID:YwEgTEQG.net]
>>443
どういう意味?

453 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 01:59:33.10 ID:uVP7HEVL.net]
>>440
最近の若い人は「POSIX環境」と言われても意味が分からないのかな

454 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 02:15:59.19 ID:zKWcKKso.net]
>>441
>>445
posixのAPIを使うつもりがないという意味で言ってるのであればposixのAPIを直接使う理由は殆ど無いし

posixとその互換のシステム(LinuxやOSX,BSD)を使うつもりがないという意味であればC言語を使わないというのと関係性がわからない

という理由でどういう意味かと

455 名前:キきました []
[ここ壊れてます]

456 名前:437 mailto:sage [2015/07/06(月) 07:12:04.03 ID:LeTT1hT8.net]
>>439
たまに調べて関数呼び出すぐらいはするよ。
extern "C"で宣言されてるんだろうなという程度の認識しかない。

457 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 10:07:42.22 ID:S8xxWpoS.net]
>>447
その関数の中身を学ぶ気はないの?

458 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 10:55:46.10 ID:UtQpsrfy.net]
cの標準関数の多くがc++の仕様にふくまれているわけだが、それらをcの関数と呼ぶかどうかで話が変わりそうだな。

459 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 12:00:28.33 ID:c9Pq6PXh.net]
C++やってるのにCの枠組みがどこにあるのか知らないなんてもったいないわ

460 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 12:42:17.66 ID:Tkz216Bq.net]
C++だけ使って自他ともに何も問題がないという状況であればそれでいいかと。



461 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 12:49:34.44 ID:DNOTyWLE.net]
>>451
本当に問題ないんかという点でいろんな意見が出てるんやないかー
ぼけー

462 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 12:50:58.65 ID:o8rxMXGe.net]
>>451
つまり言い換えると
「問題がなければ、問題がない」
てことだな

463 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 13:10:46.09 ID:57DZj4l7.net]
奥底まで知りたいというモチベーションがそんなにも薄いのなら
他の言語にした方が無難だよ

464 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 13:58:57.01 ID:AfAEiFHK.net]
Cを知らないと困る事は無いって事だね?

465 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 14:39:25.13 ID:QG0oot86.net]
ゆとり世代は打算的に必要最小限だけ摘まみ食いしたがるからヤレヤレだぜ
自己責任で好きにすりゃいいさ

466 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 14:40:31.81 ID:nVA3PHQU.net]
人のことなんてどうでもいいじゃん

467 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 14:42:32.45 ID:SEf5XUfd.net]
煽ったところで答えを教えてくれるわけではない

468 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 14:45:02.72 ID:e+smMlMf.net]
そもそもC++だけって言い回しがおかしい

469 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:05:05.72 ID:LCyZYiqi.net]
オーバーロードについて質問です
テストとして 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のように可能な気がするのですが手法がわかりません

470 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:07:21.62 ID:qCZjlRkB.net]
Cを知らないとC++の奥底を理解したことにならないなんてならんだろ
自分が勉強した言語を知らないと言われて
自分がdisられた妄想に取り付かれたんじゃねーの



471 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:09:07.16 ID:KzNzThii.net]
mod4 operator + (int n1, mod4 m)
をグローバルに置く

472 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:31:22.24 ID:LCyZYiqi.net]
>>462
ありがとうございます

473 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:39:58.49 ID:oV/lkPx7.net]
>>461
Cの読み書き経験がないために
「POSIX環境を使いながらも、POSIXが定める関数の中身を読み解けない」
「gccのソースすらまともに読めない」
「libpng、libjpeg、gmpとかのライブラリーは読んでも意味が分からない」

それを放置しておきながら奥底まで理解したというためには何をすればいいの?

474 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 18:43:29.66 ID:mxlN2zD6.net]
C++はCを内包してるんだから読めないことはないだろ
慣れがない程度
必要になったら慣れればいい

475 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 19:03:04.77 ID:kBO1IjC2.net]
Cはアプリケーションプログラマには不愉快だと思う
かと言ってアセンブラはやりすぎ、くらいの人が使う言語

476 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 19:20:23.15 ID:DvE9zAyD.net]
>>465
慣れるのは時間かかるぞ
慣れ終えた頃には必要でなくなる

477 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 19:23:30.07 ID:U1mw4Ccp.net]
>>464
C++を奥底まで理解するにはC++を学べばいい
Cが必要という根拠が何も出てこないところを見ると
C信者はバカなの?コミュ障なの?

478 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:11:14.79 ID:HTAglc73.net]
>>468
使ってるライブラリもカーネルもC製が多いのに、C++だけ学んだだけでそういったものを作れる人もしくは不具合を見つけだせる人になりますか?

479 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:11:22.64 ID:nVA3PHQU.net]
お前よりはマシ

480 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:13:12.02 ID:+Ezk7dLW.net]
>>468
何もかも全部学べばいいだろ
なんで学ばない言い訳を必死にアピールしてんだよ
お前ちょっとおかしいぞ



481 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:14:48.42 ID:z7iHYWh9.net]
多分言語単体で見た時にはC++から入って学びきってしまえばCに再入門とかする必要はあんまりない
学びやすさの議論は置いておいて, C++もメモリモデルとかは学べるわけだし

一方でC/C++という言語はどうしてもOSとかのシステムに近いレイヤーで使われることが多くて, Linux環境が念頭にある人からするとCの部分も勉強しなきゃならないという主張になる

482 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:16:55.43 ID:VXE13LoC.net]
Cに触らない信念がそんなに強いならJavaやった方が儲かるよ

483 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:16:59.40 ID:l10ibwOJ.net]
奇形マクロばりばりで、頭いたくなることが

484 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:20:53.75 ID:nVA3PHQU.net]
Cに親でも殺されたんだろ

485 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:32:35.18 ID:azr+Jyxu.net]
「C++歴20年です。Cは書いたことも読んだこともありません。」

というのがフリーランスでやってきたら、面接で落とすよね?

486 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:36:04.15 ID:F+Ucpn+F.net]
>>469
ならないと思うけど、それがどうかしたの?
C++を学ぶのにCが必要な理由が
「Cを学ばないとCが理解できないから」なんて
おまえちょっとおかしいぞ。

487 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:36:56.60 ID:GUT2T6A+.net]
爺さん顔真っ赤w

488 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 20:58:41.49 ID:cgBCux2d.net]
C++でもCで書かれてるライブラリ使うこと多くない?

489 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:07:23.43 ID:YlmAa+P1.net]
例えるとこんな感じか
A「Cを奥底まで知るにはHTMLを学ぶ必要がある!」
B「えっ?」
A「世の中のウェブサイトはHTMLで作られている!!」
B「知るか、Cを知りたければCを学べばいいよ。HTMLは不用だし」
A「HTML読んでもわからずに放置。それでCを理解してると言えるの?」
 「Cだけ学んでウェブサイト作れるようになるの?」
B「だから何でウェブサイトなのさ」
A「HTMLを学ばない言い訳を必死でアピールw」
 「HTMLに親を殺されたんだろwww」
 「アビバでエクセル覚えた方が儲かるぞwwww」

 結論:C使いは知的な障害を抱えている

490 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:08:24.41 ID:nVA3PHQU.net]
↑こいつヤバいねw



491 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:40:10.74 ID:AfAEiFHK.net]
>>465
内包してないんだ。これが。

492 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:49:17.62 ID:HjKCw0JZ.net]
ビットフィールド?だっけCだけなのは

493 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:52:03.86 ID:KzNzThii.net]
C++にもあるよ

494 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:56:23.05 ID:8ClaGM8U.net]
Cにしかないのはこういうやつだな
void f(int unko[static const restrict 1]);

495 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:11:29.76 ID:QI5ceWXb.net]
>>476
> 「C++歴20年です。Cは書いたことも読んだこともありません。」

さすがにこうなると生理的に嫌だな

496 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:15:54.72 ID:uTC0EYRa.net]
すいません
ANSI CでNULLは0は等価ですか?

497 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:51:58.03 ID:fhp0P+BJ.net]
>>475
多いかもしれないけどヘッダーファイルとかあるだろうからなんの問題もないでしょ
アセンブラー言語で書かれてるライブラリも(昔は)あったよ

498 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:52:50.78 ID:fhp0P+BJ.net]
ああ、アセンブラー言語じゃねーな
アセンブリ言語に訂正しとくよ

499 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 23:21:48.20 ID:CSbBVr9s.net]
>>487
規格として違うし
0じゃない実装もあるし

500 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 00:03:39.87 ID:t1FyPIkw.net]
>>490
分かりました
ありがとうございました



501 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 00:27:53.62 ID:KY4bh5nL.net]
ガクッ
釣り餌投下だと思ったのに

502 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 04:42:01.00 ID:QhcZ6j1E.net]
QZみたいな屑がいるからだめになる糞スレ

503 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 05:10:31.19 ID:ng9AgpHC.net]
このスレに若干一名、粘着質な基地外おるね
前から?

504 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 05:29:26.95 ID:ZJfWjPxl.net]
むしろ全員レベルに見えますが

505 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 12:42:38.70 ID:wQtirtRg.net]
>>490
規格はどう定義されてるの?

506 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:24:04.97 ID:5WqTHFAp.net]
(void *)0 でなかたけ?

507 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:48:20.07 ID:5q81H0ED.net]
ANSIは知らないけどISOなら
ISO/IEC 9899:2011 7.9p3
『The macros are
NULL
which expands to an implementation-defined null pointer constant』

508 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 16:36:10.37 ID:862QYq/I.net]
6.3.2.3に
An integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant.
とあるのは、プログラム表記上は0で書いていいってことでしょ。内部実装がどうであれ。

509 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 17:39:44.06 ID:EvIDQyY/.net]
整数ゼロをポインタにキャストするときは自動的にNULLだと解釈されるけど
NULLがゼロであるわけではない

510 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 17:50:47.29 ID:qNcl5j7+.net]
>>500
短い文の中に二つも嘘が書かれているようだ

>整数ゼロを
>NULLだと解釈される



511 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:30:13.58 ID:ptgX7kBx.net]
>>501
正しくは何ですか?

512 名前:501 mailto:sage [2015/07/07(火) 19:07:53.08 ID:UcF+UlPL.net]
>>502
整数リテラルのゼロをポインタにキャストするときは自動的にヌルポインタ定数だと解釈される

513 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:11:40.82 ID:I1tb5YMO.net]
>>503
つまり「NULL」は「ヌルポインタ定数」ではないと言いたいんだな?
お前の方が嘘っぽくね?

514 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:15:03.95 ID:NNpZghj8.net]
>>503
> 整数リテラルのゼロをポインタにキャストするときは

これは嘘
(1-1)でもNULLになる

515 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:34:02.13 ID:Bop5Vbl6.net]
値ゼロの定数式(C++ではリテラル0)はポインター型にキャストされるとヌルポインター定数でなくヌルポインター(C++ではヌルポインター値)になる。

516 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:35:08.16 ID:wQtirtRg.net]
>>505
ほとんどの実装はそうなるだろうけど規格上はダメだろ

517 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 19:46:49.33 ID:ZtNPndvw.net]
>>503
コンパイル時に0確定すればいい
リテラルであることは求められない

518 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:07:04.73 ID:oR9xV2kd.net]
Cやって長いが
NULLも0も""も'\0'も気にしたことが無い。
そんなもの適当でもプログラムが動けばいいだろ。

519 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:17:04.83 ID:9KOp+c27.net]
まあNULLの実際の値を知る必要なんてある方がおかしい

520 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:17:23.34 ID:Bop5Vbl6.net]
NULLマクロの実体が処理系定義なのに「NULLになる」なんて表現が変。

>>507
>>499の通りCではリテラルでなくてもヌルポインターになる。



521 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:18:13.35 ID:4Dd6qTUR.net]
CFAQ嫁で終わる話

522 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:26:50.71 ID:+oCo2uon.net]
>>512
日本語版CFAQ『定数0は』
会話がループするやんけ

523 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:27:44.89 ID:4Dd6qTUR.net]
>各ポインターの型ごとにヌルポイ ンターが存在する。ヌルポインターの内部構造はポインターの型によっ て異なるかもしれない。プログラマーは内部構造について知る必要は ない
これで終わり

524 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:43:08.45 ID:wQtirtRg.net]
>>511
理解した。定数式か。サンクス

525 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:39:04.71 ID:zGGr2/jS.net]
>>503
> 整数リテラルのゼロをポインタにキャストするときは自動的にヌルポインタ定数だと解釈される

この説は流行ってる?
今ここだけ?

526 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:44:39.56 ID:Bop5Vbl6.net]
>>516
流行ってない。
「整数リテラルのゼロをポインター型にキャストした結果はヌルポインターになる」
なら正しい。

527 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 21:59:11.07 ID:o2vdK0G6.net]
今のところ「リテラルのゼロ」派と「(リテラルに限らず)定数のゼロ」派に綺麗に分かれてんだな

結局どっちなんだよ

528 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 22:17:24.21 ID:UK9JBwIr.net]
499読んでもわからない低能には難しかったかな
ついでにリテラルが定数式であることも理解できないんだろう

529 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 22:44:45.13 ID:AYkJJtoI.net]
An integer constant expression with the value 0
結果が0になる定数式

(1-1) や 0 は該当

int a = 2;
const int c = 1;
a-2 や c -1 は適合しない

530 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 22:53:24.76 ID:fmLzrjpx.net]
>>519
「定数式はリテラルしかない」派ですか
3派に分かれてるようですね



531 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:14:37.87 ID:hEbqDUGA.net]
(A) 「(1-1)は定数式の0ではない。定数式の0になるのはリテラルの0だけ。仕様上NULL扱いされるのはリテラルの0だけ」 派
(B) 「(1-1)は定数式の0に含まれる」派
(B-0) 「仕様上NULL扱いされるのはリテラルの0だけ。(1-1)のような定数式の0は対象外」派
(B-1) 「仕様上NULL扱いされるのはリテラルの0だけでなく (1-1)のような定数式の0も含む」派

532 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:35:36.57 ID:pt8kirha.net]
いやもうリテラルだけ派は息してない

533 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:38:52.87 ID:oR9xV2kd.net]
>>522
夜中にこんなややこしい文章は理解出来ない

534 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 23:41:12.54 ID:OROm0kU8.net]
>>524
じゃあ、お前は明日の朝に読めよ

535 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:37:34.02 ID:QLXOn1Rg.net]
>>525
朝早くから自演レスしたお前がいうなよ
仕事しろよQZ

536 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:45:43.59 ID:ryUp+g/0.net]
え?リテラルだけ派が多数になってる流れじゃないの?

537 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 02:45:42.06 ID:kjaPeLTy.net]
みんなはNULLの代わりにその定数リテラルの0を使うの??

538 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 02:47:20.98 ID:GG1KyjDS.net]
今はnullptr使ってるな

539 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 03:01:37.68 ID:zv+9uHgH.net]
誰もC++の話はしてない

540 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 03:02:55.48 ID:GG1KyjDS.net]
>>530
お前には話してないから



541 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 04:43:57.43 ID:lHtKocYf.net]
NULLってどこのヘッダで定義されてるんだっけ?

542 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 07:13:11.92 ID:SyhtiKOH.net]
>>522
>仕様上NULL扱いされるのは

ヌルポインタとヌルポインタ定数の違いがまだ理解できないなんてどれだけ頭が悪いの

543 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 14:45:02.24 ID:SCpUiQEI.net]
std::map<char , int> map_ChInt ;
map_ChInt[10] ;

mapに要素がない状態で上みたいにしたらキー10の要素が作られるけど
このときintの値は0って保証されてますか?
自分でやってみたら0だったけど他のPCでもちゃんとそうなるか知りたい

544 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 14:50:04.01 ID:eZCBgyaI.net]
>>534
yes

545 名前:デフォルトの名無しさん [2015/07/08(水) 15:36:53.14 ID:SCpUiQEI.net]
>>535
ありがとうございます

546 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/07/08(水) 21:48:15.07 ID:73Ug3Wex.net]
【質問】
DLLをスタティックライブラリーに変換することは可能か?

547 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/08(水) 21:56:59.57 ID:73Ug3Wex.net]
できるみたいだな
www.binary-soft.com/dll2lib/dll2lib.htm

548 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:26:29.91 ID:K5IYat/K.net]
COMやドトネトがネイティブになるんですか
凄い発明ですね

549 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:08:10.86 ID:lHtKocYf.net]
スタチックにしたいんすかねぇ。DLLの方がメリット大きいと思うんですけど。
窓なら配布の時もインストラがやってくれると思うんですけど。

550 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:40:59.41 ID:TRwqxnZN.net]
>>532
*p = NULL
*p = 0

NULLと書いた方が、意味がわかりやすいから、
NULLを使うだけで、これらは同じ意味。
0は数値の0でもないし、すべてのビットが0でもない!

ポインタに0を代入すると、
どのアドレスも指していないという、単なる取り決めであり、
本当のアドレスは0ではなく、何かわからない

virtual f() = 0
純粋仮想関数の0と同じで、数値じゃなく、単なる取り決め!

コンパイルしやすく、ミスも発見しやすく、
予約語の数を増やすこともないから、0が使われた



551 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:46:25.43 ID:QyEnNIQg.net]
nullptr「」

552 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 00:02:08.17 ID:Fl65kOzE.net]
*pだと参照先に代入してるんですが…

553 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 00:07:23.19 ID:No2Q5Qqx.net]
>>541
今ちらっと見たら
#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

554 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 01:30:36.12 ID:CyKpelBr.net]
>>544
↓こういうコードに警告を出すためのコンパイラ独自キーワード。

#include <stddef.h>
#include <string.h>
int main()
{
&nbsp;&nbsp;int i;
&nbsp;&nbsp;memset(&i, NULL, sizeof(i));
}

:6:29: 警告: passing NULL to non-pointer argument 2 of ‘void* memset(void*, int, size_t)’ [-Wconversion-null]

melpon.org/wandbox/permlink/Vgp6jqytS1T0y9sM

555 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 22:38:08.76 ID:1/aylVmX.net]
無職の戯言なんて誰も聞いてねえ

556 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 06:20:12.89 ID:nE5CRCmh.net]
ここでいいかはわからないんですが・・・
「共通言語ランタイムサポート(/clr)」の設定で作ったツールから
「共通言語ランタイムサポートを使用しない」の設定で作ったDLL(またはlib)を使って
関数を呼び出したいのですが可能でしょうか?

どうもやってみたところ
dllでは#usingで失敗
libでは外部公開している関数を認識しない
といった状況でして・・・
使用しているのはVS2008です

557 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 06:52:08.58 ID:vY1aCUGV.net]
>>547
スレチ
C++/CLIスレへどうぞ

558 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:09:33.84 ID:AhForOF3.net]
dllは、DllImport
libは、C言語の関数?ならlib側のプロトタイプ宣言を extern "C" { }で囲む

559 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 07:11:52.89 ID:CaePx9j0.net]
↑ IDに注目

560 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 08:04:55.96 ID:Divl2bDc.net]
くっだらねぇw



561 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 19:59:52.96 ID:9OV4RYzP.net]
IDにQZが入ってる

562 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 06:21:46.79 ID:FD2YUPpJ.net]
コアダンプとなってしいます...
どこが悪いのでしょうか
ttp://codepad.org/W9HTaZKO
ttp://codepad.org/5xdDgomM
ttp://codepad.org/pTaoaiU1
よろしくお願いします

563 名前:デフォルトの名無しさん [2015/07/12(日) 06:23:27.54 ID:FD2YUPpJ.net]
なんでもありませんでした...
流してください
すれ汚しすみませんでした

564 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 06:31:23.08 ID:DYhAKwb5.net]
朝から汚物を見た

565 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 09:30:27.34 ID:HB04b7Av.net]
つ limit coredumpsize 0

566 名前:デフォルトの名無しさん [2015/07/13(月) 15:17:20.23 ID:MiC8RasG.net]
CLIで標準入力時エンターキーを押すと改行されますが しないようにできますか?

567 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 15:25:30.57 ID:VqtAIesy.net]
C++/CLI 、、、じゃなくてコマンドラインか
エコーバックしないようにすればいいけど、まともにやるとかなり大変

568 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 16:24:16.35 ID:TIwshmli.net]
stty -echo でエコーしなくなる

569 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 18:20:18.47 ID:CxqY55Y8.net]
>>557
まず>>1を読め
話はそれからだ

570 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 18:26:20.53 ID:FYGRXR4u.net]
エンターキーを消しゴム責めで固めてしまうのはどうだ?



571 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 18:46:11.99 ID:3+liPIr5.net]
リダイレクトでファイルから標準入力に流し込めば良いんじゃないでしょうか

572 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 01:24:42.23 ID:A/Y1UzxU.net]
エスケプシーケンスで元の行に戻るとか
出来ないかw

573 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 18:26:11.85 ID:0+Qa01OW.net]
質問失礼いたします。
int 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()は使えないのでしょうか?
その場合他に使える関数などありましたらそれもお願いします。
どなたかご教授ください。

574 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 18:51:11.65 ID:RQ2DWYjg.net]
>while(cin.get(char[i++]) && char[i] != '\n' && i < 10);

なんだこの糞コード

575 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 19:00:03.87 ID:9IOpPA1s.net]
>>565
申し訳ないです

576 名前:
本当に初心者なんです…
[]
[ここ壊れてます]

577 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 20:24:11.58 ID:A/Y1UzxU.net]
stringに入れてから、あだこだやったらどお

578 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 20:57:29.67 ID:3KviU9VD.net]
>>565
批判するだけで何も示さないやつ?

579 名前:デフォルトの名無しさん [2015/07/14(火) 22:38:40.15 ID:rB0J2LcB.net]
それQZじゃん
何重にも自演とかやべえなおい

580 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 22:49:18.41 ID:RCR6Bt7P.net]
>cin.ignore(cin.rdbuf()->in_avail(), '\n');
>としたのですがうまく読み飛ばしてくれません。

ウンコgccだろ?



581 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 23:56:56.70 ID:m+yjPH9A.net]
#include <iostream>
#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

582 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 00:34:57.66 ID:z+4I+fKC.net]
すいません端末にストリームを2つ用意することってできます?

583 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 01:15:06.30 ID:FZiUS4KG.net]
見えはって用語をオレオレ定義で使うんじゃなくて
何を目的に何をしたいかちゃんと書け

584 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 03:29:56.38 ID:myPIEZhq.net]
できるよ

585 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 13:09:59.11 ID:/1JnBGZi.net]
どやって使うのかイメージできん

586 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 14:23:12.87 ID:eSiIKS6l.net]
うう。。。

587 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 17:55:24.68 ID:JvXXYrIq.net]
質問クラスc2内でクラスc1使うとき()内任意で
class c2{
public:
c1 c1A(),c1B();
c2(){

}
}
でいい?c1にコンストラクタ以外の初期化関数init()用意して
c2(){}内でc1A.init()みたいにした方がいい?

588 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 18:22:10.51 ID:Hy0e54Lm.net]
ダメです(文法的に)

589 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 18:27:12.98 ID:Hy0e54Lm.net]
生成が終わってオブジェクトが存在しているのにinitとはクソ過ぎる
class baka {
c1 c1A{}, c1B{};
};

590 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 18:28:56.80 ID:sh5I1Ay1.net]
一応メンバー変数にデフォルト値を与える、
class c2{
public:
 c1 c1();

 c2()
 {
 }
}

は可能。ビャーネ本でも電卓つくる章で使ってる。
イニシャライザーの利用はプログラム内容にもよるが、基本は初期化リストでメンバー単位の初期化。

 ※ただしVS2013はメンバー変数のデフォルト初期化が実装されてないので注意



591 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 19:00:56.85 ID:ED4DjS6K.net]
>>580
>初期化リストでメンバー単位の初期化

初期化リストで初期化できるコンストラクターは限定されるので
式リストでの初期化と使い分けが必要なんだが
どんな基本ですか

592 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 20:01:57.20 ID:sh5I1Ay1.net]
>>581

std::initializer_listと勘違いしてる?

constructor : m_member1{}, m_member2{}
{
}

のことだよ、初期化リストは

593 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 20:35:36.50 ID:4CumgDsM.net]
>のことだよ、初期化リストは

ほうほう、それはISO/IEC 14882:2014 8.5p1のどこに書かれているのですか

594 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 21:15:42.79 ID:sh5I1Ay1.net]
>>583
規格書はもってないっすね。
揚げ足とり楽しい?
質問や文章の核じゃない部分指摘して喜ぶ人の気持ちがわからない。

595 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 22:06:14.39 ID:5tz0PrDk.net]
c1 c1();が可能って嘘をつくのはどんな気持だろうな(>>578で指摘されているのに)

596 名前:デフォルトの名無しさん [2015/07/15(水) 22:36:32.55 ID:AGHZqgYM.net]
>>583
それじゃないから。わからないなら参加しなくて良い。この前も言ったろう。

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になっているので
無名共用体はありかと思っていたが

597 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 22:51:53.49 ID:5tz0PrDk.net]
>>586
わかるわからないじゃなくて
規格的にどうなのかで語ったらどうだ

598 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:00:10.36 ID:5tz0PrDk.net]
調べたが>>582はmem-initializer-list
initializer-listは別のものを指すようだ

599 名前:デフォルトの名無しさん [2015/07/15(水) 23:03:06.07 ID:plmndce9.net]
C言語初心者です。
試しに簡単なのを作ってみたのですがまともに動作しません…ミスを教えてください…

#include <stdio.h>

 int main(){
 float i;
 i=0.0;
 printf("円周率は?");
 while(i!=3.14){
  scanf("%d",&amp;i);
  printf("円周率は?");
 }
return 0;
}

600 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:09:52.18 ID:VsrdjrWK.net]
floatの場合%dではなく%fにする
浮動小数点で==や!=を使ってはいけない
while (!(3.14 <= i && i < 3.15)) みたいにしましょう



601 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:11:53.10 ID:gZn+GrQT.net]
>>589
完成したとして誰が使うんだよw

602 名前:デフォルトの名無しさん [2015/07/15(水) 23:16:01.08 ID:plmndce9.net]
>>590
詳しくありがとう
>>591
使い道については聞かないでくれ、恥ずかしいw

603 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:16:40.34 ID:kjSyKbof.net]
真人間「%d→%f」
アスペ1「全角文字が」
アスペ2「ampが宣言されていない」
アスペ3「どうなる結果を期待してどうなったから正しくないと考えたのか」
アスペ4「printfの位置が」

604 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:17:17.25 ID:mJ5IXGTa.net]
>>591
「試しに」って文字が見えないのかw
そこは本題ではない

605 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:23:31.42 ID:lbQgBKvw.net]
scanf見たらドキドキする

606 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:28:00.58 ID:kjSyKbof.net]
>while (!(3.14 <= i && i < 3.15))
むしろこの判定の方がドキドキする。間違っても
while (i < 3.14 || 3.15 <= i)
と書いちゃいけない

607 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:36:33.04 ID:m06uAW0n.net]
3.14を入力させたいのに、3.14と比較しちゃ駄目だろう。
そんなことだからお前は駄目なんだよ。

608 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:40:01.43 ID:gZn+GrQT.net]
c、c++やり始めてだいぶ経つがscanfなんて2,3
回しか使った事がない

609 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:47:11.82 ID:jZhm9jEn.net]
名は体を表わすといいますが、
浮動小数点を表わす変数名にiを使うという
のは、Fortranの暗黙の型を知っているものには
奇異というか、危なっかしく思います。

610 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:52:36.47 ID:IOMA9RWg.net]
それ名は体を表すんじゃなくて
お前がカレーのアロマ漂わせてるだけじゃね?



611 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:53:57.44 ID:mJ5IXGTa.net]
本題で突っ込めないからって別の所で突っ込む奴多すぎだろうw

612 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:54:47.32 ID:sh5I1Ay1.net]
>>585
その部分は書き込みミスです、申し訳ない。本当は、

c1 c = c1(なんか);
または、
c1 c = c1{};

と書くべきだった。

613 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 23:57:40.48 ID:7aytSmTE.net]
カレーはともかく、iは今でもループインデックスの定番なのは事実だし、
定番に逆らうのはリーダビリティーの観点から避けるべき。

614 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 00:03:22.60 ID:QLbygVn7.net]
>>602
>c1 c = c1{};
いくらなんでもこれはない
ホントならハゲは耄碌し過ぎじゃね

615 名前:デフォルトの名無しさん [2015/07/16(木) 00:04:58.16 ID:ebNFYd4N.net]
>>587
規格的にそこは関係ないから、規格書読む能力のないバカは参加するなという意味。

バカは「8.5のどこにあるんだ?」と言っている。確かに書いてないが、
initializer:
brace-or-equal-initializer
( expression-list )
とは書いてある。バカの主張によると
class c2{
public:
 c1 c1(0);
}
が文法的に正しい事になるぞ。

616 名前:デフォルトの名無しさん [2015/07/16(木) 00:08:17.10 ID:ebNFYd4N.net]
>>602
なんだ、結果的に援護しちまったが、お前もアホか。10年ROMってろ。

617 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 00:29:50.00 ID:b9jYQG/+.net]
>>605
初期化リストの定義が書かれたのが8.5で
そこに書いてある定義が>>582と異なるのだよ。
何が関係ないだアホかお前は

618 名前:デフォルトの名無しさん [2015/07/16(木) 00:39:17.89 ID:ebNFYd4N.net]
>>607
ますます墓穴を掘ってる事に気付かないのか?
アホが書き損じたのはメンバー初期化リストってゆーんだよ。
それは12.6で定義されてるんだよ。8.5なんか必死に見ても書いてあるわけないんだよ。

死ねよ。バーカ。

619 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 05:21:26.30 ID:DH20V41K.net]
この8.5に拘ってるアスペは元レスの人が弁解してるの読めないんだろうか…

620 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 07:10:09.41 ID:eDioBQEC.net]
>>609
ますます墓穴を掘ってみじめwもうこなくていいぞww



621 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 08:30:19.01 ID:M+IIab5i.net]
§8.5の人には触っちゃダメ、絶対。

C関係のスレには、二人程触っちゃダメな人がいる。
一人は何も知らないくせに連発レスで暴れまくる人。
もう一人は割と知識があるんだけど自分が唯一絶対正義な人。

どちらも自分が正しいと思い込んでいる人なので、手に負えない。
§8.5の人は後者。

622 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 10:51:14.07 ID:VCbbNaFF.net]
>>599>>603
inputのiだろ(震え声)

623 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 12:18:02.04 ID:ebNFYd4N.net]
>>609 >>611
お前バカだろ。規格に拘って「8.5のどこに〜〜」と煽ったバカを煽り返しているんだから8.5に拘るのは当たり前だ。

>>602がアホなのは
文法的に間違いな例を提示し、さんざん考えた挙句、文法的には間違ってないが
わざわざ、効率の悪い例をひねくりだしたところ。
c1 c1{}; ← なぜこれを示せないのか? 理解してないからだ。

> もう一人は割と知識があるんだけど自分が唯一絶対正義な人。
お前、こないだpeace.2ch.net/test/read.cgi/tech/1435970316/253で、敗北を認めた後もしばらく粘着してたバカか?
やっぱりバカはバカだな、絶対正義は魔道書(規格書ともいう)に決まっている。

バカが魔道書を誤読するのは勝手だが、それを伝道するな。
魔道書によらずに「これが正しいとか、これは間違っている」と発言するな。「xxというコンパイラでこうやれば出来る」は許してやる。

624 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 12:29:47.89 ID:TjbeLhY1.net]
一番粘着してるのはお前だよ

625 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 12:56:52.70 ID:ebNFYd4N.net]
やっぱりお前か。バカなんだから10年ROMってろと言った炉。

626 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 13:45:20.38 ID:sPiG5j/G.net]
>>602はわたしです。
 c1 c1{};
を使わなかったのは確かに、c1{}と、c = c1{};の違いが分かってないからです。
配列やC構造体スタイルの初期化、initialzer_listは別として、それ以外だとどっちも同じ意味と思ってます。
ちなみに>>602のときに、別にさんざん考えてはいません。

質問なんですが、visual c++でnew[]すると、最後のほうに「・・・[なんか半角文字]」がテキストビジュアライザーに乗ってるんですが、これはnewで確保したサイズを記憶してる部分でしょうか?
配列で記述すると現れないで

627 名前:す。 []
[ここ壊れてます]

628 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 13:55:28.33 ID:sPiG5j/G.net]
おれ何いってんだろ、配列とかC構造体スタイルは = {}やん……
あとnew[]じゃなくてキーワードnew全般でした。

629 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 14:13:35.97 ID:ebNFYd4N.net]
>>616
魔道書に通じていない者は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.

630 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 14:22:09.41 ID:ebNFYd4N.net]
>>616
> 質問なんですが、visual c++でnew[]すると、最後のほうに「・・・[なんか半角文字]」がテキストビジュアライザーに乗ってるんですが、これはnewで確保したサイズを記憶してる部分でしょうか?
・・・ ← 何をさしてるか分からないが、大抵のメモリアロケータではメモリブロックの「前」にサイズを記録している。



631 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 14:29:16.65 ID:TjbeLhY1.net]
>>616
char* str = new char[N};
とやってstrの後ろに見えるのはゴミ
単に\0終端の文字列として表示してるだけだから

632 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 14:31:21.90 ID:TjbeLhY1.net]
打ち間違い
char* str = new char[N]ね

633 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 15:01:07.32 ID:xXjliQ6Z.net]
叱りながらも教えてくれる>>616は,俗にいうツンデレというやつですか.
ありがとうございます.
終端なのにマルチバイトつかうんですね.「・・・」はテキストビジュアライザー
そのままの表記です.new[4]だったら「・・H」こんな感じ.
っていうかcharのnewって自動で終端文字付加するのか.

634 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 15:11:11.49 ID:TjbeLhY1.net]
>>622
new char[N]が初期化も終端文字付加もしないからそう見えるんだよ
0が現れるまでを文字列として表示してるだけ

635 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 16:03:01.76 ID:xXjliQ6Z.net]
なるほど,そういうことだったのか.
ありがとうございました.

636 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 18:27:05.75 ID:jTV5GdNw.net]
>>616
A a{};
A a = A();
後者は一時オブジェクトが構築されてコピーコンストラクターが呼ばれる

637 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 18:44:08.23 ID:H1YViLnx.net]
文字が表示されたってことはchar系の配列だな
new char[n]
が前にサイズを記録する処理系なんて存在するの?

638 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 19:01:50.26 ID:6frLwIp8.net]
>>626
一体なんの話をしているんだ

639 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 19:05:22.47 ID:TjbeLhY1.net]
>>625
釣りはやめましょう

640 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 19:48:35.65 ID:QGYl8+4B.net]
>>625
コピコンを実装して、走らせればわかりますね。



641 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 20:18:49.04 ID:0HInDZYo.net]
>>625
おい嘘つくな

ideone.com/vQfC6b

642 名前:625 mailto:sage [2015/07/16(木) 20:20:14.26 ID:1BGxPTmV.net]
省略が許されているから走らせてもわからないな
関数をprivateなり=deleteにしないと
規格8.5節 段落17によりコピーコンストラクターが2回呼ばれうる

643 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 20:23:05.68 ID:QLbygVn7.net]
>8.5

644 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 20:34:41.63 ID:QLbygVn7.net]
VCは/Zaオプションつけないとコピコンが
privateでもエラーにならないことがあるし
よくわからん

645 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 20:49:24.58 ID:DH20V41K.net]
>>631
いろいろ突っ込みたいけど
とりあえず2回呼ばれると言う2回はどの部分でどっから来たのか説明してみて

646 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 20:51:32.80 ID:DH20V41K.net]
>>613
拘ってると言ったのはあんたじゃなくてそのレス先の事だよ
元の人がやんわりメンバイニシャライザのことと弁解しているのに
まだ拘ってるアスペの事

647 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 21:29:33.77 ID:HxmqPCNR.net]
メンバイニシャライザのことを初期化リストだよなんていう
エサが投下されたら規格厨に粘着されるに決まってる。
元の質問そっちのけで用語の定義しか頭にない。

648 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 21:35:32.39 ID:DH20V41K.net]
粘着されるに決まってるとか言っても、それじゃただの荒らしなので
本人にその自覚を持ってもらわないと
自覚した上で荒らしてるなら、どうしようもないが

649 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 21:43:27.80 ID:TjbeLhY1.net]
「それ初期化リストじゃなくてメンバイニシャライザ」って指摘すればいいだけだろ?
そうしないでへんてこりんな方向に持っていくのが荒らしだろ

650 名前:デフォルトの名無しさん mailto:sage [2015/07/16(木) 21:52:03.56 ID:QLbygVn7.net]
アスペは単語レベルで機械的に照らし合わせることしかできない
会話ができないからアスペなんだろ



651 名前:625 mailto:sage [2015/07/16(木) 23:04:35.77 ID:zXNXIZXs.net]
>>634
目が節穴だったわ。2回も呼ばれない
>or if it is copy-initialization where the cv-unqualified version of the source type is the same class
を読み飛ばした

652 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 00:47:02.82 ID:RTw9+8lc.net]
>>640
いえ、規格の話はいいんだけど
なぜ2回も呼ばれると思ったのか知りたかったんだ
その文がないとして呼ばれそうな部分ある?

653 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 06:42:14.37 ID:CUSHLAJl.net]
>>635-639
>>583はQzって変態だよ。
公開オナニースレでのオナネタ供給がストップして発狂中
QzはCすらマスターしてないので、メンバーイニシャライザーの存在を知らない可能性大

654 名前:625 mailto:sage [2015/07/17(金) 07:18:09.46 ID:kM6i16Cc.net]
>>641
「or if it is copy」を読み飛ばすと次の段落が該当して
「変換される」でなく「関数がよばれる」と書かれている
「The function is called with the initializer」
で12.3.1のコピーコンストラクター呼び出しが発生して
その後「The result of the call(略)is then used to direct-initialization」
で2回目が呼び出されると考えた

655 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 12:08:27.64 ID:RTw9+8lc.net]
>>643
その文は、同系統の型はdirect-initializationとして処理するって意味っしょ?
無しとしてもcopy-initialization(=の記法)で起こるのは、
別の型だった場合にuser-defined conversionがあるぐらい

コピコン2回目は、それらの中で明示的に呼ばない限り走らないよね?
explicitやprivateとしたらill-formedとかの扱いでコンパイルできないだけだし
やっぱり何か別に勘違いしとると思うよ

656 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 12:38:51.74 ID:RTw9+8lc.net]
>>643
連投&勘違いすまない、こっちがよくわかってなかった
user-defined conversionの後に連続2回という意味だね

自分の知らない処理が走りうるのかと思ってたんだ
わざわざレスありがとうございました

657 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 14:10:06.77 ID:3GeB3ImX.net]
ムーブとか右辺値についてググって勉強しているのですが、いまいちよく分かりません
std::move(t)は左辺値から右辺値へ変換するための関数だから、当然 t は左辺値であるべきですよね?
tを右辺値にしてる例をよく見るんですが、間違いなんでしょうか?

658 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 14:34:33.09 ID:q0tTJLJ/.net]
tを右辺値っていうのはどういう意味?
tって名前がついてるんだから左辺値でしょ
ソースで説明してくれ

659 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 14:43:39.20 ID:q0tTJLJ/.net]
そもそもなぜstd::move(t)なんてするのかって話か?

660 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 15:07:13.81 ID:7IoQrMPq.net]
&&t のtが右辺値、っていうありがちな間違い、とエスパー



661 名前:646 mailto:sage [2015/07/17(金) 16:14:19.93 ID:3GeB3ImX.net]
cpplover.blogspot.jp/2009/11/rvalue-reference_23.html?m=1
たとえば↑のサイトでは、テンプレート関数の引数が左辺値か右辺値かで分ける例があったんですが

template < typename T >
void f( T && t )
{
  if ( std::is_lvalue_reference<T>::value )     X x( t ) ;   else     X x( std::move(t) ) ;
}

このelse側のtは既に右辺値だからstd::moveする必要がないように思います

662 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 16:44:35.99 ID:qgsB8yVY.net]
>>650
そうだねそのケースでは必要ないね
ただstd::moveには右辺値も渡せるようになってるんだから、そうしても「間違い」とは言えないよ

663 名前:646 mailto:sage [2015/07/17(金) 17:28:34.28 ID:3GeB3ImX.net]
std::moveは右辺値型にキャストしてるだけだから、右辺値が引数にきても
右辺値のままで問題ないわけですね
江添氏という大御所のサイトなので深読みしてしまいました

664 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:03:40.50 ID:97JZ5equ.net]
>>651
いい加減なうそを言うな。

665 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:20:37.67 ID:shZ/TyQ7.net]
>>650
ID式tは右辺値参照型の左辺値です
type(右辺値参照/左辺値参照)とvalue category(lvalue/xvalue/prvalue)を混同しないで下さい

666 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:24:40.18 ID:shZ/TyQ7.net]
ちな右辺値はxvalueとprvalueの総称

667 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 18:51:48.18 ID:eaJ36lyY.net]
「コピコン」ってかわいいな
擬人化してないかな

668 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 19:41:57.37 ID:qgsB8yVY.net]
>>653
どの辺が嘘なのかなあ?
「必要ない」なのか「間違いとは言えない」なのか?
人を嘘つき呼ばわりしたなら答えてね

669 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 19:49:51.19 ID:qgsB8yVY.net]
右辺値参照型の左辺値は右辺値ではない!とか?(笑)

670 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:04:11.60 ID:7IoQrMPq.net]
moveしないとムブコンじゃなくてコピコンが呼ばれると思うんだが



671 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:11:45.80 ID:qgsB8yVY.net]
>>654
クイズです
struct X {};
f(X());
でfへ渡されるtの型はなんでしょうか?

672 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:26:14.52 ID:7V4RYMzc.net]
>>657
オツムに障害のあるバカには難しかったかな。
「そうだね」と言ってるわけだから
tが右辺値というのを肯

673 名前:定していることになる。
tは右辺値じゃなくて左辺値なんだぜ。
型は関係ない
[]
[ここ壊れてます]

674 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:31:19.69 ID:qgsB8yVY.net]
>>661
なんだ毎度のバカ連呼のアスペ規格厨か
確かに江添の例はこの件においては不適切だけどね
質問者が問題にしてるのはmove(X())のmoveが必要かどうかってことだろ

675 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:42:05.43 ID:97JZ5equ.net]
よくわかっていないまま答えてxvalue = 右辺値 and 左辺値という屁理屈で逃げようとしているだけなのか
それともただのアスペなだけなのか立場をハッキリさせてほしいな。

676 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:42:43.35 ID:7V4RYMzc.net]
へー、必要ないんだー

677 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:47:52.42 ID:qgsB8yVY.net]
はいはい毎度の展開
質問者の意図が理解できなくて非本質的なところに難癖つけることしか出来ないアスペ規格厨の群れ

678 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:49:19.50 ID:7IoQrMPq.net]
melpon.org/wandbox/permlink/PnOQeW8cT2AT7bXL

679 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:50:04.49 ID:7V4RYMzc.net]
>>662
>質問者が問題にしてるのはmove(X())のmoveが必要か

初めてみました
どこから湧いて出てきたのそれ?

680 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:51:42.47 ID:RTw9+8lc.net]
能書きをたらたら垂れようかと思ったけど
まあこういうのは実際やって見せるのが一番だよね
https://ideone.com/UsNiGW



681 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:54:13.07 ID:qgsB8yVY.net]
>>666
何を得意になってるのか知らんけど
f1、f2のTは参照ですらないから当たり前だな
これ江添が荒らしてるようなもんだろ

682 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:56:35.13 ID:qgsB8yVY.net]
>>667
>>664が読めないんだなアスペは

683 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:57:29.51 ID:qgsB8yVY.net]
☓ >>664
◯ >>644

684 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 20:58:47.28 ID:qgsB8yVY.net]
また違った
>>646だった

685 名前:646 mailto:sage [2015/07/17(金) 20:58:58.51 ID:3GeB3ImX.net]
なんか自分が原因で荒れてしまったようですみません
というか質問スレがあったんですね・・・そちらで聞くべきでしたか

つまり、右辺値は関数の呼び出し側も受け手側も std::move を使うということでしょうか?

struct X {} ;

template < typename T >
void f( T && t )
{
  if ( std::is_lvalue_reference<T>::value )
    X x( t ) ; //・・・@はこっちにくる
  else
    X x( std::move(t) ) ; //・・・Aはこっち
}

int main()
{
  X x ;
  X y ;
  f( x ) ; //・・・@
  f( std::move( y ) ) ; //・・・A
}

686 名前:646 mailto:sage [2015/07/17(金) 21:01:32.94 ID:3GeB3ImX.net]
あ、いろいろコード貼っていただいたんですね
ありがとうございます、よく見てみます

687 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:15:13.07 ID:7V4RYMzc.net]
そうかそうか
>>646を読んで普通は>>647,>>649で示されたような勘違いこそが
問題の本質と気づくんだが
アスペは右辺値をmoveすることの是非が気になっちゃったんだな

688 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:25:08.25 ID:qgsB8yVY.net]
>>675
>646は明らかに是非を問うてるんだが(「間違いなんでしょうか? 」)
俺はmove(X())のmoveは不必要だが間違いとはいえないと言ってるんだよアスペ君

689 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:27:49.31 ID:qgsB8yVY.net]
>>673
Aのfに渡されるtは単なるTで参照型ですらないよ
テンプレートの型のdeductionルールは確かに分かりづらいね
それと江添を引っ張ると大概荒れるから避けたほうが良い

690 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:28:41.85 ID:7V4RYMzc.net]
>>673
まず↓を理解してくれ
void f(int && v) {
 v;// 元は右辺値だけどここでは左辺値
 move(v);//右辺値に戻す
}
int main() {
 int v;//vは式じゃないので右辺値でも左辺値でもない
 f( v );//vは左辺値(コンパイルエラー)
 f( move(v) );// move(v)は右辺値
}



691 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:43:11.51 ID:R2Je5ZhD.net]
>>678
> f( v );//vは左辺値(コンパイルエラー)
は?
もう無茶苦茶だなw

692 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 21:53:18.52 ID:RTw9+8lc.net]
いや、だから>>668を見てって…

693 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:00:32.44 ID:97JZ5equ.net]
馬の耳に念仏

694 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:09:56.79 ID:R2Je5ZhD.net]
>>668みたいな当初の質問とも江添の変な例とも異なるものを持ってきて何がしたいんだか

695 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:13:28.37 ID:RTw9+8lc.net]
>>679

>>678から借りた
https://ideone.com/9zFOQP

>>682
lvalue-refとrvalue-refでの話なんだから全然変な例じゃないわけで

何ここ
初心者が上級者を罵倒するスレ?

696 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:19:47.21 ID:7V4RYMzc.net]
元「@右辺値をmoveするのは間違い?
 Aだってmove(t)」
 ↓
普通の人:@について、tが左辺値であることを説明しようと例を出したり必死
バカ:Aについて、右辺値のmoveが間違いでないことを説明しようと例を出したり必死

この会話が噛み合っていない

697 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:20:03.25 ID:86J878Ki.net]
そんなことはやたらと詳しいけど、全く仕事できない奴いる。

装置の前で、規格がどうたらなんてどうでもいい。
さっさと運転しろよ。

698 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:20:22.42 ID:7V4RYMzc.net]
あ@とAが逆だった

699 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:21:42.57 ID:RTw9+8lc.net]
arguments deductionで必死に言い訳してるけど
そもそも江添氏の例でmove省いたらlvalue vs rvalue-refでmove無いわけ
rvalueの意味がわかるというなら、それが何で理解できないの?

700 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:25:53.67 ID:RTw9+8lc.net]
>>685
ならせめて書いて確認しようよ
書けないならそれこぞ仕事出来ないにも程がある



701 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:27:54.54 ID:R2Je5ZhD.net]
>>683
>>678から借りた
>https://ideone.com/9zFOQP
これって何でエラーになるの?
手持ちのgcc 4.9.2 --std=c++14じゃエラーになんてならないんだけど
罵り合いを離れて純粋に分からない

702 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:30:34.28 ID:7V4RYMzc.net]
>>689
VC「Error: an rvalue reference cannot be bound to an lvalue」

703 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:39:38.29 ID:RTw9+8lc.net]
>>689
ただのlvalueでrvalue-refじゃないから

わざわざg++4.9.2入れて確かめたけど
思いっきしcannot bind 'int' lvalue to 'int&&'って怒られたよ
コード変更してない?

704 名前:689 mailto:sage [2015/07/17(金) 22:42:08.16 ID:R2Je5ZhD.net]
すまん
https://ideone.com/9zFOQP
のままだと手持ちのgcc 4.9.2 --std=c++14でもエラーになったわ
でも少しいじるとエラーにならなくなる
もう訳わからんけどもう少し条件を狭めて確かめようと思う
規格的にはどうなるのが正しいのよ
もう訳わからんわ

705 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:43:39.25 ID:RTw9+8lc.net]
g++5.1でも確認

ID:R2Je5ZhDは完全に荒らし目的だな
さっきからわざわざ間違った事を言って罵倒してるし
でなきゃ頭おかしい

706 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:47:34.08 ID:7V4RYMzc.net]
>>691
まるでrvalue-refならOKみたいなレスですね
int && rref = 0;
f( rref ); // error, 右辺値参照型の左辺値

>>692
ISO/IEC 14882:2014 13.3.2 Viable functions 段落3
「an rvalue reference cannot be bound to an lvalue」
って、VCのエラーと同じ文言だった

707 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:54:05.50 ID:R2Je5ZhD.net]
ああ分かった>>668がエラーになるのはfがテンプレートじゃないからだ
俺様R2Je5ZhDの>>682の発言は正しかった
>>693
お前ごときに荒らし呼ばわりされる筋合いないから

708 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:55:17.38 ID:RTw9+8lc.net]
>>694
>まるでrvalue-refならOKみたいなレスですね
語弊は認めるが、そんなつもりでは言ってないって
渡すのにmoveが必要とずっと言ってるだろ

709 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:57:42.59 ID:JLRiqZ4D.net]
>でなきゃ頭おかしい

QZが頭がおかしくないはずがない

710 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:57:49.28 ID:RTw9+8lc.net]
>>695
いや、お前は最初から間違ってるよw
確認もせずに否定したんだから



711 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 22:58:44.54 ID:R2Je5ZhD.net]
>>697
事あるごとにQZとやらを持ちだして

712 名前:ヲ避するクズ []
[ここ壊れてます]

713 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:02:06.68 ID:R2Je5ZhD.net]
>>698
お得意の難癖ですな
俺は>>668は質問者の意図からして不適切だと言っている

714 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:09:06.96 ID:RTw9+8lc.net]
>>700
それで難癖つけてるという難癖をつけるんです?
元はarguments deductionも含まれる話だから別に不適切じゃないよね?
何が不適切?

715 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:11:18.67 ID:7V4RYMzc.net]
はいはい
元「@ 右辺値をmoveするのは間違い?
 A だってmove(t)」
 ↓
普通の人:Aについて「tは左辺値」
バカ:@について「右辺値のmoveは間違いでない。どうして理解できないの?」
普通の人:Aについて「tは左辺値。どうして理解できないの?」
バカ:@について「右辺値のmoveは間違いでない。どうして理解できないの?」
 :

716 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:19:12.83 ID:R2Je5ZhD.net]
>>701
元々の質問は「moveに右辺値を渡してる例があるがそれは間違いじゃないのか」というものだろ
この場合moveは必要じゃないけど間違っているとは言えないというのが俺の言い分だ
江添のアレを引気合に出した質問者もアレだが
まあ質問者の問いと斜めな方向にズラして議論を混乱させるいつもの展開だわね

717 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:28:20.65 ID:RTw9+8lc.net]
>>703
もしあんたがID:qgsB8yVYなら自分のレスよく読めと言いたい
特に>>651

718 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:31:07.50 ID:97JZ5equ.net]
ID:qgsB8yVY = ID:R2Je5ZhD なの?
>>677
>Aのfに渡されるtは単なるTで参照型ですらないよ
とか言ってる時点で全然理解できてないのがまるわかりなんだよな
もう少し謙虚さがほしいところ

719 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:36:00.06 ID:RTw9+8lc.net]
元々の質問は江添氏の例でいいんだよ
それが質問者のベース知識の前提であって意図なんだから

ID:7V4RYMzcが言うように元の考えを正すことに意味があるのであって
ID:qgsB8yVYのように文を切り離して説明する事に意味はない
そんなの回答者が自己満足でしかない

720 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:37:43.54 ID:RTw9+8lc.net]
間違えた ID:qgsB8yVYじゃなくてID:R2Je5ZhDかw
まあ難癖とか言ってるから本人で間違いないと思うけど



721 名前:デフォルトの名無しさん mailto:sage [2015/07/17(金) 23:37:53.66 ID:R2Je5ZhD.net]
ID:qgsB8yVY = ID:R2Je5ZhDだよ
別にIDを隠そうとしたわけじゃなく、なんかしらんけど書き込めなくなったので
ルータを操作してIPアドレス変えただけ
それを宣言しなかったのは謝る

722 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:37:44.63 ID:GBkyMXza.net]
いちいち人を叩くのを目的にしてたら、だんだん客層が悪くなる

723 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 00:48:06.74 ID:OGvYy5ui.net]
Qzフルボコッコだな
しかしメンタルつえー

724 名前:646 mailto:sage [2015/07/18(土) 01:48:45.91 ID:+Rsx7s6r.net]
議論がかなりヒートアップしてて書き込むのが恐れ多いのですが・・・

どうやら左辺値・右辺値および左辺値参照・右辺値参照というものを正しく理解していないのが
自分の混乱の原因みたいです。
そこで確認させていただきたいのですが、以下の lr と rr はどちらもlvalueなんでしょうか?

struct X{ } ;
int f() { return 0 ; }

int main()
{
  int i = 0 ; // 式じゃないので、i はrvalueでもlvalueでもない
  i ;   // lvalue
  0 ;  // rvalue
  X x ; // 式じゃないので、x はrvalueでもlvalueでもない
  x ;   // lvalue
  X() ;  // rvalue
  f() ;  // rvalue
  X & lr = x ;    // lr はlvalueへの参照だが、lr 自体はlvalue?
  X && rr = X() ; // rr はrvalueへの参照だが、rr 自体はlvalue?
}

# そういえば、右辺値やムーブ等を勉強するために相当ググって色々なサイトを見ましたが
皆微妙に言っていることが違ったりして、このスレで激論が生じるのもむべなるかなと感じた次第・・・
まぁそこがC++の面白さでもあるんですかね

725 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 01:54:58.09 ID:n8k6dcHe.net]
どっちも左辺値

726 名前:646 mailto:sage [2015/07/18(土) 02:05:32.81 ID:+Rsx7s6r.net]
>>712
ありがとうございます。やはりそうですか

ということは、>>673の例に戻ると、以下の理屈で正しいということでしょうか?

struct X {} ;

template < typename T >
void f( T && t ) // この t は「右辺値参照の左辺値」なので、std::move(t) で「右辺値参照の右辺値」に変換してやる必要がある
{
  if ( std::is_lvalue_reference<T>::value )
    X x( t ) ;
  else
    X x( std::move(t) ) ;
}

int main()
{
  X x ;
  X y ;
  f( x ) ;
  f( std::move( y ) ) ; // ここで y は右辺値に変換はされるが・・・
}


つまり、関数の仮引数は、右辺値参照だろうがなんだろうが、必然的に常に左辺値になってしまうということでしょうか

727 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:19:14.82 ID:n8k6dcHe.net]
名前がついてるからね

728 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:35:55.71 ID:o/QnrV3k.net]
>>713
右辺値参照の左辺値なんて戯言は忘れたほうがいいよ
fのtの型は
f(x) → X&(左辺値参照)
f(std::move(y)) → X(単なる左辺値)
となる
この辺のルールは非常に分かりづらいね

729 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:37:57.07 ID:ZEPmmqWJ.net]
>>715
std::move(y)を受け取るんだから
X&&でしょ

730 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:38:00.55 ID:YtyUigYQ.net]
>>715 ID:R2Je5ZhD さん?



731 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 02:56:53.52 ID:o/QnrV3k.net]
>>716
そう思うでしょ?
でもis_reference、is_rvalue_reference、is_lvalue_referenceを組み合わせて試した結果
参照でも何でもない単なるXになってるよ
テンプレートの引数型のdeductionルールは摩訶不思議
>>717
そうだよ

732 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:11:56.92 ID:ZEPmmqWJ.net]
>>718
reference collapsionで消える&&は引数についてる&&だと思ってたけど
Tについてる&&が消えるんだな
t自体の型は右辺値参照になってたわ

733 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:52:48.75 ID:C7KIqrbe.net]
結局 ID:R2Je5ZhD はTの型とtの型を混同して暴れてたわけ?

734 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:54:30.80 ID:TrlsMEs4.net]
>>718
>参照でも何でもない単なるXになってるよ
ならないよ
消えるのはTの&&で、tは右辺値参照だろ

735 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 03:55:36.18 ID:oxhll+kB.net]
f(T &&t);
「tの型はただのX」なんてのは当然
「TはただのX、(tはX&&)」の書き間違いだと思ってスルーしてたけど
まさか本気でf(X t)だと思ってたのか?

736 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:13:05.91 ID:o/QnrV3k.net]
>>720>>721、>722
恥ずかしいけどその通りだわ無闇に混乱してた
弁解すれば、江添のコードがTの型をチェックしてるのでそれに引きずられたw

でも最初の質問「moveに右辺値を渡すのは間違いか?」についての答えは変わらないけどね
moveは不要だが間違いではない

737 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:15:36.03 ID:n8k6dcHe.net]
>>650のはtは左辺値じゃないか
std::move(t)しなきゃtはコピーされちゃうぞ

738 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:21:54.38 ID:TrlsMEs4.net]
立て続けに無知を呈し、質問者より理解してないとバレた状況で、
最初の文は間違いではないとか言われてもね…
ヤケクソかな

739 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:23:50.36 ID:oxhll+kB.net]
>>723
誰も言わないのがかわいそうだから俺が言ってやろう
「moveに右辺値を渡すのは間違いか?」は
「別に間違いではない」で正しい
誰 も 否 定 し て な い ぞ(※>>725を除く)

そして↓のメッセージを読んで糞して寝ろ
ideone.com/MbV03B

740 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:25:41.81 ID:dgWh7n0F.net]
そもそも前提が間違えてるんだから
正しいも間違いもないぞ



741 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:26:56.93 ID:n8k6dcHe.net]
>>726
ないって言ってるんだから間違いであることを否定してるじゃん

742 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:29:32.77 ID:TrlsMEs4.net]
>>727
言っても理解しないよ
自分が勝った気になればそれで良いんだと思うよこのタイプは

743 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:31:09.70 ID:oxhll+kB.net]
>>727
前提も何も、単発質問の「moveに右辺値を渡すのはC++の文法的に間違いか否か?」についての回答ですが何か?

>>728
間違いであることを否定してますが何か?

744 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:32:18.67 ID:TrlsMEs4.net]
>>726
別に否定してないよ
自演かな?

745 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:01.33 ID:TrlsMEs4.net]
自演だな…
こいつ本当何でもやるなあ

746 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:22.58 ID:n8k6dcHe.net]
>>730
moveに渡してたのは右辺値じゃなかったでしょ?
>>650見てなかったのか?

747 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:35:29.70 ID:4GeWeiMQ.net]
はいはい都合が悪いのは自演自演

748 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:37:24.23 ID:dgWh7n0F.net]
ID:R2Je5ZhD == ID:o/QnrV3k == ID:oxhll+kB
だろ
なんか自演失敗して擁護が悲しいことになってるけど…

749 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:39:21.37 ID:o/QnrV3k.net]
>>726
ありがとう。糞して寝ます(明るくなってきちゃったハア)
>>729
勝った気になんてなってませんから!

750 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:41:13.10 ID:TrlsMEs4.net]
マジでこういう奴いるんだなあ
流石に時間と場所考えろって…



751 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:42:23.86 ID:o/QnrV3k.net]
>>735
R2Je5ZhD == ID:o/QnrV3k != ID:oxhll+kB
だよ
負けは認めますけど自演認定はやめて下さい

752 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:43:57.31 ID:o/QnrV3k.net]
無闇に自演認定するような精神障害者よりマシということで気持よく寝ます

753 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 04:51:05.98 ID:TrlsMEs4.net]
救えねえな

754 名前:702 mailto:sage [2015/07/18(土) 05:15:13.00 ID:oxhll+kB.net]
>>731
日本語が弱いようだから説明してやろう
『「(例とは無関係な一般的なC++の文法として)moveに右辺値を渡すのは間違いか?」は
「別に間違いではない」で正しい
(「別に間違いではない」というお前が固執し続けてきた意見は)誰 も 否 定 し て な い 』
という意味だ

755 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 11:02:20.46 ID:4iDO3/6j.net]
if ( std::is_lvalue_reference<T>::value )
  X x( t ) ;
else
  X x( std::move(t) ) ;
江添氏は実行されない方のコードもコンパイルは
されることを認識してたんだろうか
ありがちな記述ミスの形をしているので気になった

756 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:28:55.34 ID:o/QnrV3k.net]
>>742
その記事の江添は俺と同程度以上に誤解してるよ
まあそれは5年以上前の記事だけどね

でも「実行されない方のコード」というあなたもまだ誤解してる
C++のテンプレートの型ルールは本当に難しいね

757 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 13:35:03.61 ID:o/QnrV3k.net]
気分を害された人には申し訳ないけど
なにはともあれ俺にとってはテンプレート関数の理解が前進した一日でした まる

758 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:02:05.58 ID:4iDO3/6j.net]
>その記事の江添は俺(QZ)と同程度以上に誤解してる

まじかよ おどろきだ

759 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 14:41:46.95 ID:bOEkw/VG.net]
>>713
>void f( T && t ) // この t は「右辺値参照の左辺値」

わかってるとは思うけどそれは右辺値で呼ばれる時の話で
左辺値xで呼ばれるfのtは左辺値参照だぞ
f( x ) = f<X &>(x)
T && = X & && = X &
void f( T && t ) = void f(X &t)

760 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 15:56:20.31 ID:C7KIqrbe.net]
>>743
お前まだ理解できてないのかよ。Javaでもやってろ



761 名前:デフォルトの名無しさん [2015/07/18(土) 15:58:50.31 ID:ihNXNCvt.net]
なんでそんなに冷たいの?

762 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 16:29:10.29 ID:TrlsMEs4.net]
IDで追っていけばわかる
岡部健のご同類

763 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:01:18.70 ID:Kjz+WqVJ.net]
ID:TrlsMEs4も同類

764 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:03:29.52 ID:TrlsMEs4.net]
ほらな

765 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:10:23.40 ID:C7KIqrbe.net]
精神科医と激論を交わせるぐらいの頭脳の持ち主だとは思ってたけどまさかね

766 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 17:14:24.89 ID:TrlsMEs4.net]
念の為、俺が言及してるのはo/QnrV3kの事だよ

767 名前:デフォルトの名無しさん mailto:sage [2015/07/18(土) 19:00:14.93 ID:Kjz+WqVJ.net]
同類なのは自分なのに気づかないなんて…

768 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 01:50:34.76 ID:uuV0Uo08.net]
もう誰が誰やら

769 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:13:06.80 ID:rizf9cO8.net]
自演 ID:n8k6dcHe=ID:TrlsMEs4
アスペ ID:oxhll+kB
キチガイ ID:o/QnrV3k

この三人を押さえておけばOK
あとはゲスト

770 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:23:02.44 ID:CK6DPL2A.net]
いちいち人を論じてスレ潰すのはやめろ
パン作り板にでも行ってこい



771 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:27:30.09 ID:rizf9cO8.net]
これは
>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね

772 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:49:40.63 ID:iK86efF8.net]
規格に詳しい方に質問します
ideone.com/dU9dtb
これの"2"がcopyになってしまうんですが、どうしてですか?
規格のどの部分の規定によりこうなるのか知りたいです

773 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 02:56:51.32 ID:36W6lgqU.net]
都合が悪いレスは全て自演とか糖質かよw

774 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:11:02.31 ID:binYh77K.net]
>>759
static_cast<T&&>(t)

static_cast<X& &&>(t)
に展開されて
さらに
static_cast<X&>(t)
と&&減るからです
ttp://d.hatena.ne.jp/gintenlabo/20100916/1284657258
規格はここに書いてる

775 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:24:53.89 ID:iK86efF8.net]
>>761
ありがとうございます。規格の該当部分を精読します。
直感的には全部moveになって欲しいんですが、どういう理由でこうなってるんですかね?

776 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:30:36.07 ID:binYh77K.net]
>>762
f(x);で渡してるのは参照だから
プログラマが明示しないかぎり勝手にmoveされるのは困るでしょ
テンプレート内ではmoveではなくforward<T>(t)を使うべき
そうすれば右辺値が渡されればmove、左辺値が渡されればcopyされる

777 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 03:39:14.61 ID:iK86efF8.net]
>>763
f()では左辺値だろうが右辺値だろうがmoveしたいんです
static_cast<T&&>(t)で十分に明示になってると思うんですがねえ
どうしてこういう規格にならざるを得なかったのかもう少し調べてみます

778 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 07:20:27.46 ID:rizf9cO8.net]
これは
>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね

779 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 08:35:41.71 ID:iu/AL9yj.net]
そりゃ左辺値参照へのキャストは左辺値を生み出すからね
melpon.org/wandbox/permlink/cjb6akMJJVY25X3Q

780 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 08:56:58.98 ID:rizf9cO8.net]
これは
>アスペ ID:oxhll+kB



781 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 14:01:27.47 ID:I4MCl2HA.net]
自演指摘されたからって必死すぎだろう
誤魔化す以外にそんなレスする奴がいると思ってるのか

782 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 14:33:02.83 ID:QpRpKQBg.net]
これも
>自演 ID:n8k6dcHe=ID:TrlsMEs4
の人ですね

783 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:27:14.04 ID:iU13bViu.net]
cとc#とc++って全部別物ですか?

数学I、数学U、数学Vみたいに似通ったところはあるのでしょうか

784 名前:デフォルトの名無しさん [2015/07/19(日) 17:41:37.09 ID:F7g9AAKV.net]
別物だが似通ってはいる。
C⇒C++はほぼ上位互換性で、C#はC++++から名付けられた説があるし、
構文なんかはC++から取ってきてる。

785 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 17:44:56.51 ID:9N4IERvr.net]
C++
C‡
C♯
C#
C‡‡
C##

これ全部違うんだよ

786 名前:デフォルトの名無しさん [2015/07/19(日) 17:45:02.22 ID:F7g9AAKV.net]
C#への期待。アンダースからの返答 − @IT


C#に関して何か興味深い秘話はあるか?

「C#」という言語名を決めたときの話だが、もともとC#プロジェクトのコード名は、「COOL」(C like Object Oriented Language)だった。
だが、すでにほかの製

787 名前:品で使われているなどの理由で、この名前は採用されなかった。

ほかの案として、「EC」(イーシー)、「C2」(シー・スクウェア)、「C3」、また音楽の要素を取り入れて「C#」、元素の名前から「Cs」(シー・セシウム)などが出てきた。
「C#」を近くでよーく見ると、「C++++」に見える。そのような理由で最終的に「C#」という名前に落ち着いた。


http://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html
[]
[ここ壊れてます]

788 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:22:29.91 ID:MTXI4NoM.net]
std::unique_ptr<>使ってて疑問なのですが。

MyObject* ary = new MyObject[3]; が
std::unique_ptr<MyObject[]> ary(new MyObject[3]); は理解できるんだけど

char* str = new char[3]; は、
std::unique_ptr<char> str(new char[3]); になる?
std::unique_ptr<char[]> str(new char[3]); になる?

789 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:36:25.78 ID:ckceIrW4.net]
std::unique_ptr<char[]>
こっち

790 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 18:56:36.67 ID:iU13bViu.net]
>>771
ありがとうございます
AndroidやiPhoneのアプリを作ってみたいんですが
C言語だとどれを勉強するといいでしょうか?



791 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:11:22.73 ID:iu/AL9yj.net]
>>775
間違いではないからと言って不適切なコードを正してあげないとは酷い人ですね

792 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 20:25:25.80 ID:ckceIrW4.net]
>>777
vectorやstringを勧めるということでしょうか?それともmake_uniqueですか?
私の頭では他にどう答えたらよいか思い浮かびませんでした。
どうか完璧な回答をご教示いただけませんか?

793 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 21:31:15.63 ID:ckceIrW4.net]
まあ書き方によっては依然としてリークの危険があるからmake_uniqueが使えるならそっちのほうが望ましいわな

794 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 22:09:14.54 ID:MTXI4NoM.net]
>>775,777-779
ありがとうございます。
vc10なので、std::make_unique使えないのです。

std::stringは使わないけど、std::basic_string<TCHAR>なら、たまに使います。
元JAVA使いなので、C++の基本を知らずに使ってるかも知れませんww

795 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:16:16.53 ID:ckceIrW4.net]
>>780
unique_ptrに拘る理由がないならvectorがお勧めだよ。

796 名前:デフォルトの名無しさん [2015/07/19(日) 23:29:29.46 ID:J4Ltq9z4.net]
#include <iostream>
#include <random>

int main(){
std::random_device rd;
std::cout << rd() << std::endl;

return 0;
}
で出力される値が何度実行しても同じになってしまうのですが何故でしょう

797 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:40:35.83 ID:uuV0Uo08.net]
seedを与えないとだめなんじゃないの?

798 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:51:24.10 ID:iK86efF8.net]
>>782
そのコードには全く問題ないよ
ライブラリ以下が正しく機能してない
もしかして組込み?環境を書いてもらわないと

799 名前:デフォルトの名無しさん mailto:sage [2015/07/19(日) 23:52:11.35 ID:iu/AL9yj.net]
>>783
んなこたーない
ただの処理系のバグだろう

800 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:34:00.09 ID:d2x9KMbz.net]
>>782
環境についての情報を書いて



801 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 00:59:06.25 ID:eqB+tjvJ.net]
>>786
嫌どす
コードに全く問題ないなら
なんで環境を書かんといかんの

802 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:14:46.08 ID:d2x9KMbz.net]
>>787
それなら誰にも原因について確たる答えを用意できないことが最初から決まってしまうんだから
そもそも質問するな馬鹿

803 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:20:14.66 ID:UX3o5Q0t.net]
コードに問題なくてもstd::random_deviceの実装に問題がないとは限らない

804 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:25:44.00 ID:theP84i7.net]
普通の人間は目的を達成する(意図した結果が得られる)ための行動を取る
規格にこだわる人間はコードの問題かどうかを気にして実装の不具合には興味がない
これは後者のパターン

805 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:27:43.11 ID:0igkruKl.net]
>>790
原因究明を重視するのは、いずれにも属さないんだな

806 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:28:56.83 ID:/EsSmyHW.net]
質問者もアレすぎるけど、それ以上にわけの分からんのが湧いてきたな

807 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:41:29.65 ID:eKxXjUv7.net]
質問者にミスがあるはず、
というかおよそ原因には心当たりあるけど
環境が分からないと全然違ってる恐れがあるから今のところここでは書けないよな。

808 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:48:38.60 ID:Zw2a1PSh.net]
>>787
質問文の不備を減らせばもっと有益な情報得られるかもしれないのに

お前の損得に直結する岐路で、どうして情報得られない方を選ぶのだろう?
情報欲しがってない奴がどうして質問なんかしてるのだろう?
ひょっとして頭の障害か何か?

809 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 01:52:24.48 ID:theP84i7.net]
質問した後に回答者を煽るのは
オツムに障害を持った人の特長

810 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:22:46.21 ID:8grmR+UY.net]
>>787
> コードに全く問題ないなら

それまだ確定してないでしょ?
「処理系のバグだろう」という「だろう」レベルの意見をひとつ貰っただけで
早くも決めつけちゃってるわけですか?

とりあえずプログラマに向いてなさそう
ばいばい別世界の住民さん



811 名前:デフォルトの名無しさん [2015/07/20(月) 02:43:27.95 ID:gdO7FQR/.net]
初代スレに回答者の掟というのがあって、質問に対して質問で返してはならないとありませんでしたか?

812 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:47:08.95 ID:theP84i7.net]
へー、知らないけど
その情報が何か有益なの?

813 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:48:20.37 ID:UX3o5Q0t.net]
>>1
>質問者は必ず環境を書きましょう。
って書いてるのに書かないアホに付き合わなくてもいいでしょ

814 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 02:56:00.65 ID:theP84i7.net]
『ただしその場合』という大切な文言を意図的に削る人も困りものです

815 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:02:23.28 ID:/EsSmyHW.net]
>>761
規格の§8.3.2-5〜6を読んでみたんですけど
ここではキャストについては何も触れられていないように思えるんですが、どうなんでしょうかね?
§5.2.9(Static cast)には
 if T is an rvalue reference to object type, the result is an xvalue
とあってxvalueになってキャスト結果はmove可能に思えるんですが、何か見落としてますか?

816 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:16:00.47 ID:theP84i7.net]
>>801
〜761より抜粋〜
『static_cast<X&>(t)と&&減るから』

817 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 03:25:11.29 ID:/EsSmyHW.net]
>>796
>>782のコード自体には問題がないのは確定してるよ
これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる
考えられるのは>>782の環境ではハードウエアエントロピーを反映する機構が組み込まれていないのではないかと

818 名前:801 mailto:sage [2015/07/20(月) 04:06:41.03 ID:/EsSmyHW.net]
でもまあキャストの場合でも§8.3.2-6のルールが適用されるんだろうなあ
std::moveの実装はみんな参照をremoveしてから&&付けてるから
§8.3.2-6を字句どうりに読めばtypedef 、type template-parameter、decltype-specifier
以外ではT& &&はエラーにならなきゃいけないと思うんだが
俺が何か見落としてるんだろうけど何なのか分からない

819 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:23:53.19 ID:/EsSmyHW.net]
あっそうかtype template-parameterに当たるということか
Tがtemplate-parameterなら
T& &&は全てT&に変換されると
ホント難しいわ

820 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:39:27.70 ID:theP84i7.net]
ところがISO/IEC 14882:2014で template-parameterが削除されているのであった。
まあ結論は変わらないけど



821 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:42:29.86 ID:/EsSmyHW.net]
an attempt to create the type “rvalue reference to cv TR” creates the type TR.だな
やっと分かった
>>801>>804は寝言ですので忘れて下さいごめんなさい

822 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 04:48:36.62 ID:/EsSmyHW.net]
>>806
あっそうなんだ
買う気しないから最終ドラフト読んでたw

823 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 09:14:19.77 ID:qaRX0VWC.net]
>コード自体には問題がないのは確定してるよ
>これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる

とりあえずプログラマに向いてなさそう

824 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 09:49:53.29 ID:j3bVGMZR.net]
>>782
std::random_device rd;
std::cout << rd.entropy() << std::endl;
やってみ
これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて
常に擬似乱数を返すようになっている

だから次善策として

std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());

を使うのが常套手段

srand((unsigned)time(nullptr));

を使うのと似ているね

825 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:11:47.48 ID:theP84i7.net]
>>810
ほうほう、疑似乱数を返すとどうして「次善策」に飛躍してしまうのですか?

826 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:12:41.50 ID:F9PK3kSV.net]
毎回乱数列が同じだと言うなら種が必要って事でしょね。

827 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:18:59.83 ID:Ebj0wxFB.net]
gccでwindows向けにコンパイルするとstd::random_deviceの中身がstd::mt19937になってるから
いつも同じ乱数吐くけどそれかね

828 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:26:27.58 ID:/EsSmyHW.net]
cygwinのgccではちゃんと毎回違う値になる

829 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:28:20.95 ID:/EsSmyHW.net]
>>812
std::random_deviceには種は与えられないから

830 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:30:11.56 ID:theP84i7.net]
>>810
>0 が表示されたらその処理系では真の乱数がサポートされてい

とりあえす嘘を教えるな



831 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:32:56.85 ID:/EsSmyHW.net]
>>809
お前は
とりあえず人間として生きるのに向いてなさそう

832 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:35:34.58 ID:UX3o5Q0t.net]
ttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/tr1/random.h
ttps://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/src/c%2B%2B11/random.cc
cygwinに入ってるのはちゃんとしてるのかね
やっぱりmt19937を呼んでるな

833 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:36:39.90 ID:JaqU9d1i.net]
>>803
ハードウェアエントロピーを取得できるか確認せず
取得できると決め込んで処理して
その結果意図した挙動をしないのだから
明らかにコードの問題だろう

これでコードに問題ないと決めつけてるのはどうかしてる

834 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:39:02.21 ID:theP84i7.net]
ちなみに自分の環境では、TPMの無いコンピューターに入れたウブンコの
GCCだとentropy()が0を返すな
こいつは信用ならない

>>819
何故ですか?
規格上はハードウェア機能の有無に関わらず固定値を返してはなりませんよ

835 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:41:32.31 ID:1Qy7XHWg.net]
乱数だから実行環境ごとに挙動が変わるのが普通なんじゃない?

836 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:42:42.77 ID:j3bVGMZR.net]
>>816

>If the library implementation employs a random number engine instead of a real-random number generator,
>the value returned by this function is always zero.

>>811
rand()でもプログラム走らせる度に同じ乱数系列になってしまうだろ
アホか

>>813
「真の乱数」を返す方法はいろいろ議論されてるね
PIDを使うとか
Linuxには/dev/random
MinGWのgccは手抜きだな

837 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:43:44.83 ID:Ebj0wxFB.net]
疑似乱数だと変わらなかったりする

838 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:45:36.38 ID:/EsSmyHW.net]
>>816
規格の§26.5.6-5には
If the implementation employs a random number engine, returns 0.0.
とあるから>>810は嘘ではない

839 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:45:37.50 ID:theP84i7.net]
>>822
>instead of a real-random number generator
なるほどそれか、勘違いしたすまぬ

840 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:50:55.65 ID:/EsSmyHW.net]
cygwinのgcc(4.9.2)ではentropy()は0を返す



841 名前:ッどoperator()は毎回違う値になる []
[ここ壊れてます]

842 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:58:15.70 ID:ZwKNfUvh.net]
この流れなら聞ける
エントロピーってなに?

843 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 10:59:24.66 ID:/EsSmyHW.net]
規格の§26.5.6-6を見るとentropy()が0を返すような環境であってもnon-deterministicな値を返さなきゃいけないみたいだけどね

Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive.
It is implementation-defined how these values are generated.

844 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:02:57.44 ID:/EsSmyHW.net]
>>828はoperator()の話しね
>>819
ライブラリにバグが有り迂回措置をしなきゃならないことはままあることだけど
それと>>782のコード自体には問題がないことは別の話

845 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:10:17.00 ID:MKIWYupr.net]
バグじゃないんじゃね?

entropy()が0.0を返すのなら毎回同じ乱数系列になっても文句は言えないという事なだけで

846 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:22:06.61 ID:/EsSmyHW.net]
>>830
time()すらサポートできない環境もあるだろうけどな
でも規格ではoperator()はnon-deterministic random valueを返さなきゃならないことになってる
同じ種による擬似乱数ならnon-deterministicにはならない

847 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:24:22.43 ID:Ebj0wxFB.net]
規格がどうであろうがアホな環境があるのはしょうがない

848 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:25:45.09 ID:MKIWYupr.net]
>>831
いやいやoperator()は単に乱数エンジンを呼び出して次の新しい乱数を返すだけでしょ

849 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:26:23.38 ID:theP84i7.net]
正確にはoperator()はnon-deterministic random valueを返すか
または例外をスローしなければならない

850 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:33:27.11 ID:JaqU9d1i.net]
>>834
環境が毎度同じ値をハードウェアエントロピーとして返してたら例外にしようにも判断できないだろう



851 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:33:39.96 ID:/EsSmyHW.net]
>>833
entoropy()==0な環境ならそうだけど
問題はその場合の擬似乱数の種だよ
エントロピーを持った種を生成する手段が全くない環境ではstd::random_deviceは規格通りに実装できないと思う

852 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:38:55.35 ID:uNOqpDKk.net]
環境を明らかにして再現可能にしないと
本当の原因については何もかも憶測だわな

853 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:40:06.20 ID:/EsSmyHW.net]
>>834
§26.5.6-7に例外規定があるね
例外に該当するにも関わらず例外上げないならやっぱりバグだね

854 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:41:48.34 ID:theP84i7.net]
>>835
同じ値が返りうるものを使ってrandam_deviceを作ったら
それは処理系のバグです

855 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 11:56:27.72 ID:skw8xdRE.net]
>>839
じゃあ、/dev/randomは使えないんだな

856 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:07:53.20 ID:2F+fvzms.net]
>>839
そのような仕様は無い

857 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:16:22.99 ID:theP84i7.net]
>>841
仕様にあるかどうかじゃなくて
仕様を満たす物を作るかどうかという話なんだが
馬鹿には難しかったかな

858 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:18:07.44 ID:RGuMbU6U.net]
>>842
お前が言ってるような要求の仕様があるかないかだろ
馬鹿か

859 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:19:24.81 ID:19+QQn1h.net]
> 同じ値が返りうるものを使ってrandam_deviceを作ったら
> それは処理系のバグです

どうしてこういうデマを思いつけるの?
親の教育?

860 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:21:14.86 ID:theP84i7.net]
>>843
知らなかったのなら教えてやろう
>>828で規定されているのだよ



861 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:28:17.77 ID:CPoN3U++.net]
non-deterministic意味がわからなかったんだろう

862 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:28:53.22 ID:/EsSmyHW.net]
>>824を補足訂正しとくか
・ライブラリが擬似乱数を使うならentropy()はゼロを返さなければならない
・しかし、その場合でもoperator()は何らかの手段でnon-deterministicな値を返さなければならない
・それすら出来ないなら例外を上げなければいけない
>>810
>これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて
>常に擬似乱数を返すようになっている
までは正しいが、それ以降はバグってるライブラリに対する迂回処置
規格を順守するならtry〜catchで確認しなければならないけどライブラリがバグってて例外上げないなら
意味がなく>>810みたいなことをやらなきゃならない
でもそんな環境ではstd::chrono::system_clock::now()やtime()が使い物になるかどうかすら試してみなきゃわからない

863 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:39:30.02 ID:kZPq/fe7.net]
>>845
そこにはそんなこと書いてない
書いているのは取得できなかった場合にthrowしろということだけだ

ハードウェアないしそれをエミュレートするソフトウェアが同じ値を返したときに
その不自然さの判定をライブラリーに要求する仕様は存在していない

そもそも非決定性乱数だと名乗る数列に対してそれが非決定性乱数でないと外部から証明することは不可能

864 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:41:33.14 ID:ewQgCmyw.net]
>>848
entropy()が0なら例外を吐くようにするとかの手段はある

865 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:42:27.08 ID:VhxPp0/8.net]
今日も
>自演 ID:n8k6dcHe=ID:TrlsMEs4
>アスペ ID:oxhll+kB
>キチガイ ID:o/QnrV3k
の不毛な規格論争が血気盛んですね

866 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:50:52.26 ID:CPoN3U++.net]
言葉遊びが好きだなあ

867 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:53:14.65 ID:5h6P6Rwy.net]
>>839
> 同じ値が返りうるものを使ってrandam_deviceを作ったら
> それは処理系のバグです

つまり、/dev/urandomや/dev/randomのようなユーザーが書き換えられる擬似デバイス
すなわち「同じ値が返りうるもの」を使ってはならない仕様だと言いたいのですね?

868 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:54:33.43 ID:miZegYar.net]
int rand() {return 0;}//乱数でないと証明することは不可能(^^)

869 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 12:56:56.05 ID:CPoN3U++.net]
言葉遊びして勝ち誇ってるには悪いけど
本当に同値しか返さないなら証明可能だぞ
むしろ反証ができないわけで

870 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:05:03.81 ID:ewQgCmyw.net]
手持ちの処理系(MinGW 5.1.0)だけど

#include <iostream>
#include <random>

int main()
{
std::random_device rd;
std::cout << rd() << std::endl;
}

何回走らせても 3499211612 が返り、例外を吐かない

result_type operator()();
6 Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive.
It is implementation-defined how these values are generated.
7 Throws: A value of an implementation-defined type derived from exception if a random number could
not be obtained.

と規格票にはあるけど、operator()が非決定性の乱数を返すとはどこにも書かれてない
擬似乱数でもいいから得られれば例外を吐かないと読めるんだが



871 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:06:57.42 ID:theP84i7.net]
(つд⊂)ゴシゴシ

872 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:09:28.33 ID:CPoN3U++.net]
>>855
>operator()が非決定性の乱数を返すとはどこにも書かれてない
少なくとも、前提はどうあれ明らかに書いてあるものを出して
どこにも書かれてないは嘘だろ

873 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:11:49.80 ID:ewQgCmyw.net]
あ、ごめんそうだな
じゃあこの処理系のバグだな

rd()を呼び出した時点でstd::exceptionを継承した例外を吐かなければ規格に一致してないわけか

874 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:14:36.84 ID:HS03ITz9.net]
どちらかというとコンストラクタの時点で非決定性乱数を返せるアテが無いってことで例外にして欲しいところ。

875 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:16:01.20 ID:CPoN3U++.net]
途中でプールが消える可能性もあるね

876 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:20:50.77 ID:theP84i7.net]
ちなみにコンストラクターが例外を出しても
規格に違反はしてないぞ

877 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:24:27.46 ID:CPoN3U++.net]
しかし規格に対してVCがより準拠して高機能で
gccが微妙な対応とは思わなんだ
(正確にはlibstdc++だけど)

878 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:30:25.55 ID:qtHFk0LE.net]
linuxで使う分には問題ないんだよ

879 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:45:33.88 ID:yFbTkFIh.net]
>>863
linuxでもurandom書き換えられたらwindowsと変わらない
linuxで要件満たすのは不可能

880 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 13:59:56.44 ID:ewQgCmyw.net]
www.argocorp.com/compo/IDQ/IDQ_PCI.html

こんなのでも差すしかないんじゃね



881 名前:デフォルトの名無しさん mailto:sage [2015/07/20(月) 14:16:13.79 ID:/EsSmyHW.net]
量子状態が真に不決定的だという量子力学主流派の主張にだって反対意見は多くあるし(有名なのはアインシュタイン)
つきつめると結局ラプラスの悪魔の話にまでいっちゃう

882 名前:デフォルトの名無しさん [2015/07/20(月) 14:19:54.76 ID:kIIIo7Lt.net]
>>782 の者ですが
>>810 さんの
>std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());
を使うことで解決しました

ちなみに環境はwindowsのgcc4.9.2です

883 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 00:56:27.52 ID:tw33l9e0.net]
CからC++へ移ってクラスの活用を学び始めています
しかしメンバーが静的なクラスばかりになってしまい、
Class::Func()のような処理ばかりで、Cで関数使っていた頃との違いが実感できません

オブジェクト指向を身に付ける為に、こういう処理を作ってみると良いってモノがあれば教えて欲しいです

884 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:04:02.59 ID:iAnJqoKI.net]
>>868
そんなので作ってたら悪い癖が固まる
本でも読んでろ

885 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:13:35.48 ID:Ekp6Lmit.net]
C++クラスと継承完全制覇 とかいいのでわ?

886 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:31:58.55 ID:tw33l9e0.net]
>>870
ありがとうございます
早速本屋で探してみます

887 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 01:54:30.04 ID:BsRxe1GP.net]
>>868
何のためにstaticにしてんの?

888 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:03:44.28 ID:l6C/lcEi.net]
>>872
そりゃなんと言ってもデザインパターンだろ

https://ja.m.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

889 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:04:14.07 ID:l6C/lcEi.net]
あ、
×>>872
>>868

890 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 03:05:29.24 ID:tw33l9e0.net]
>>872
オブジェクト毎に持つ必要性が無い値だと思ったからです

DirectXやDirectInputの利用で、
初期化したデバイスのポインタをクラス変数として保持し、派生先のクラスで利用できるようにしてました
その結果、
DirectX::Initialize() とか、DirectInput::GetKeyState() のような処理を使わざるを得なくなりました
これではグローバル変数でデバイス保持してた、クラス未使用の頃とやってる事が同じだから何か違うなーと



891 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 21:29:05.54 ID:MZjkxTxw.net]
そういうもんですよ。
もうちょっとオシャレな人たちは、シングルトンを使う。

892 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 00:12:51.45 ID:N6B7rSAC.net]
クラスで共有するなら当然static使う

893 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 00:35:33.34 ID:V3PTIB1w.net]
それらの処理をやってる箇所まで内包させて
これ使えば全部やってくれるよ

894 名前:ってクラスにするのが
最終的な目標って感じかなぁ
[]
[ここ壊れてます]

895 名前:デフォルトの名無しさん [2015/07/22(水) 16:33:13.94 ID:vU2lJ4S0.net]
>>862
宣伝条項とか有るんでないの。
GNU製品を使う場合、商用製品を貶さなければならないとかさ。
よう知らんけど。

896 名前:デフォルトの名無しさん [2015/07/22(水) 18:52:41.66 ID:QLvVRyDz.net]
苦しんで覚えるc言語のサイトがアクセスできないんですが…

897 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 18:57:26.61 ID:KhraFoTS.net]
アクセスするまでに苦しめという親心だ

898 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 19:55:00.74 ID:Uuj8BVVu.net]
プログラミング初心者ってまず何をすればいいですか?

899 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 19:56:09.51 ID:KhraFoTS.net]
動く保証のあるプログラムの写経

900 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 20:00:47.95 ID:RSJsUGeJ.net]
写経したくなるような作りたいプログラムを見つける



901 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 20:59:56.40 ID:6tF8DM8V.net]
>>882
プログラミングを忘れ、まともな人生を歩む事を考える

902 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 21:51:13.30 ID:Md5kWR9m.net]
ある程度中身のわかるソフトの挙動を観察し仕組みを洞察する

903 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 23:02:09.87 ID:vClKc3rH.net]
>>882
「○○作ってみたい」から考え始めてそれを実現するための関数1つでも作ってみる

904 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 00:30:25.25 ID:5whcWqvP.net]
作りたいアプリのクラスを作ってしまおう (ストラウストラップ)

905 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 11:22:52.88 ID:Yxc4xF6u.net]
Androidスレにて回答が得られそうにないので来ました。

Android機器でC++ができると聞いてAIDEを購入したのですが、C++11を使う設定がわかりません。
LOCAL_CFLAGS := -std=c++11, LOCAL_CPPFLAGS := -std=c++11をApplication.mkに書いてもC++11のコードのコンパイルが通りませんでした。
検索してみたところ、Toolchainでgcc 4.8を入れれば良いと書かれていましたが、Toolchainの入れ方がわかりません。
GooglePlayで[NDK Toolchain]で検索してもそれらしいものが引っ掛かりません。
解法を教えてください。あるいは、どんなキーワードで検索したら解決しますか?

906 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 15:24:00.49 ID:1xg3cb1R.net]
そんなもん買わなくてもC++できるのに。

907 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:09:41.76 ID:5whcWqvP.net]
アンドロイドで遊びたいんですよ

908 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 16:56:05.66 ID:P0N6qRSq.net]
>>891
android studioじゃダメなん?

909 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:19:07.64 ID:s5ALrjlX.net]
実機でポロポロ動いての見て楽しむんですよ

910 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 17:21:00.21 ID:P0N6qRSq.net]
>>893
そういう事か。
エミュレータだと糞遅いもんなあ



911 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:05:42.76 ID:nCR9QL2r.net]
実は今入院中で、しかもはしたお金しかなくてノートPCが買えないので、スマホでC++を書いている状況なんですよね。
C4droidでC++11を書いていますが、タブ式のエディタでないことと、分割コンパイルができないことで大変苦労しています。

912 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 16:12:19.00 ID:pDMzRj5e.net]
そうですか

913 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 17:46:40.13 ID:/55SuOij.net]
Application.mk に
APP_CPPFLAGS := -std=c++11
って書けばいいんじゃないの

914 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 10:31:50.76 ID:pSI/1ixo.net]
どうして入院させられたのか理解してないんですね

915 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/01(土) 22:37:45.46 ID:/RIOF0J6.net]
ファイルやディレクトリーやワイルドカードを含むリストを、
パスファイル名のリストに展開したいのだが、いい方法はないだろうか?

916 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:33:42.45 ID:CYsajC4S.net]
PowerShellには、フルパスを返す、Resolve-Path がある

Resolve-Path C:\TEMP\*.txt

C:\TEMP\test1.txt
C:\TEMP\test2.txt
C:\TEMP\test3.txt

917 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:36:31.87 ID:UaSYqc/x.net]
>>900
スレ違いは去れ

918 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 00:38:55.04 ID:+SVNoiwH.net]
>>901
いちいち五月蝿いんだよ。阿呆かよ。

919 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 00:40:51.05 ID:G4TAbL+8.net]
FindFirstFile(Ex) でワイルドカード使えるからまんま渡してFindNextFile する

(MSCなら)スタートアップのリンクモジュールを変える
実行時引数のワイルドカードを 展開済み引数にするのがあった記憶

920 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:20:35.53 ID:77q907bZ.net]
ちなみに>>900=>>902=>>903=QZ



921 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 07:46:12.30 ID:K1eGJczB.net]
jbbs.shitaraba.net/netgame/14889/
これのプログラム解明お願いします

922 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 08:01:46.29 ID:+B7/KlLQ.net]
>>905
氏ね

923 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 15:27:28.43 ID:2WU/dKTq.net]
>>903
それボーランドのコンパイラじゃね?

924 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:35:41.96 ID:zMJ+WguM.net]
これ系ではだめ?
https://msdn.microsoft.com/ja-jp/library/kda16keh(v=vs.120).aspx

925 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 18:46:29.65 ID:SLv/zRdd.net]
win32api でいいのにラッパを使うの?gcc/ming とかでは使えないのに

926 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:39:18.72 ID:dv1hKBwd.net]
C/C++両方で使うヘッダファイルを書いています。

#ifdef __cplusplus
#include <cstdio>
#else
#include <stdio.h>
#endif

#ifdef __cplusplus
extern "C" {
using namespace std;
#endif

int OutputString(FILE* fp, const char* s, size_t n);

#ifdef __cplusplus
}
#endif

みたいに書いたら、using namespace std;をヘッダに書くな!と怒られました。
私は、usingの有効範囲は{ }の中だけだと思ったんですが違うんでしょうか?
できれば、

#ifdef __cplusplus
int OutputString(std::FILE* fp, const char* s, std::size_t n);
#else
int OutputString(FILE* fp, const char* s, size_t n);
#endif

みたいな書き方はしたくないんですが。

927 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:43:07.73 ID:t8uosJPh.net]
#ifdef __cplusplus
#define NAMESPACE_STD(TYPE) std::TYPE
#else
#define NAMESPACE_STD(TYPE) TYPE
#endif

int OutputString(FILE* fp, const char* s, NAMESPACE_STD(size_t) n);

928 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:58:03.10 ID:PIBA7Cur.net]
>>910
>C/C++両方で使うヘッダファイルを書いています。

C/C++両方で使う場合ってどう言う場合なの?

929 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 12:54:22.61 ID:qkkgbGkC.net]
>>910
extern の{}はスコープとは違うはず。
>>911みたいにしとけば?
#define STD std::
OutputString(STD FILE* fp, );

930 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:01:02.17 ID:dv1hKBwd.net]
>>912
>C/C++両方で使う場合ってどう言う場合なの?

色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。

なので、Cライブラリのヘッダファイルを修正していたんですが、std::size_t等をどうすべきか悩みまして…
>>911の方法でやってみます。ありがとうございました。



931 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:26:13.64 ID:ZNzZ9/K0.net]
>>914
> 色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
> C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。
それは、C++コーディング規約を変えた奴が無知で使えない奴だったというだけのような
気がするが…いずれにしろ現場は大変だな…

932 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 13:29:15.95 ID:ZNzZ9/K0.net]
言い忘れたが、そのヘッダーファイルはCソースのヘッダーファイルなので
C++からインクルードする場合の対処は必要だが、C++ソースのヘッダー
ファイルではない、従って#include <cstdio>を使う事自体が間違っている
可能性の方が高い

933 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/03(月) 17:39:41.05 ID:/P0N0OgP.net]
TypicalConsoleApp --- a template project of console application
https://github.com/katahiromz/TypicalConsoleApp

よろしくね!!!

934 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 19:13:07.32 ID:fubWtLYm.net]
>>917
なに?

935 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 23:03:14.14 ID:bvkPQc8b.net]
>>917
コミュ障は去れ

936 名前:デフォルトの名無しさん mailto:sage [2015/08/04(火) 21:58:56.42 ID:r6nVJo7D.net]
>>916
バカは去れ

937 名前:デフォルトの名無しさん [2015/08/05(水) 17:14:25.78 ID:22Ehcq84.net]
visual studio関係のスレで聞くべき質問なのかもしれませんが,
相対パスについて(おそらく初歩的な)質問があります.

たとえば,指定したファイルを読み込んで処理をするクラス,
具体的には画像データを読み取るクラスImageReaderがあるとします.
処理内容は,ifstreamからファイルデータすべての情報およびサイズを
読み取って,各画像を表現する構造体に合わせた処理を行う単純なものと
します.実際に利用するとき,new式なら
 ImageReader* imager = new ImageReader( "imagefile's path" );
のようにファイルを指定するのが(初心者の間では?)メジャーだと
思います.
 これをvisual C++2013でビルドして実行可能ファイルを作成し,
実際に問題なく動くことをDebugフォルダ内に該当の画像ファイルを
ちゃんと置いてから実行して確認します.ここまでは問題ありません.

疑問なのはここからで,このDebugフォルダをたとえばデスクトップ上や,
外付けのUSBメモリに移した後,実行可能ファイルを開いてもちゃんと
動作してくれるのはなぜか,です.
実行可能ファイルを開くたびに再コンパイルされているなら,
場所が変わっても相対的な位置関係さえ気を付ければ大丈夫なのは
わかるのですが,再コンパイルなんてしているわけないですよね?
つまり,相対パスを次のようにした場合,
 "data/image/file.dds"
下のカッコでくくった部分が変更されても問題ないのかっていう疑問です.
 "(C:Visual Studio 2013\Projects\Game\solution\title)\data\image\file.dds"

938 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:23:15.82 ID:8Ly/MaH0.net]
・デバッガが相対パスの基点を Debug フォルダにして CreateProcess してる
(プロジェクトの設定で、あえて別のフォルダに変えることも可能)

・実行ファイル作って、そいつをダブルクリックした場合には
explorer が相対パスの基点を実行ファイルのおいてある場所にして CreateProcess してる

・実行ファイル作って、コマンドプロンプト(cmd.exe)からタイプして起動した場合には
そのカレントディレクトリを相対パスの基点として CreateProcess してる

実行ファイルへのショートカットを作った場合
ショートカットのプロパティの作業ディレクトリが相対パスの基点

939 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 17:40:58.78 ID:22Ehcq84.net]
なるほど,根本的に間違った認識を・・・
コンパイル処理でパスが埋め込まれるわけではないんですね.
良くできてるなぁ

ありがとうございました.

940 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:24:28.76 ID:n/R/gJe6.net]
>>923
そそ コンパイル時に、相対パスをフルパス化して埋め込むわけではない ってことだね
あくまで 記述したとおりの文字列を実行ファイルに埋め込んでる

ドライブ名からの絶対パスならば、実行ファイルが何処に居ようが、そのフォルダ決め打ちだし
相対パスならば、呼び出し側(デバッガ/explorer/コマンドプロンプト等)により基点からの相対になる



941 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 18:28:04.18 ID:IqH75krm.net]
カレントディレクトリの概念はコンソール使わないとイメージしにくいのかなあ
ショートカットのプロパティで作業フォルダとなってるのがそれだな。

942 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:28:55.75 ID:y9IIWzjN.net]
プログラムで使う画像なんかは、
実行時にexeのパスを求めて、そこから画像のパスを生成しないと、
コマンドプロンプトから起動した場合なんかに落ちるんだよね

943 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/05(水) 19:32:51.98 ID:L7EpLchZ.net]
GetModuleFileName

944 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:34:38.59 ID:4lOabosS.net]
>>927
誰も訊いてないから
コミュ障は去れ

945 名前:デフォルトの名無しさん mailto:sage [2015/08/05(水) 19:57:31.39 ID:L7EpLchZ.net]
【初心者歓迎】

946 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 08:09:32.44 ID:c8ZxAoVu.net]
初心者は歓迎
コミュ障は非歓迎

947 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 08:45:54.70 ID:BM+A+5/Q.net]
コテハンがかたなしだなw

948 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 00:43:13.34 ID:Eohg7Dz0.net]
あああ

949 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 05:32:25.11 ID:dHRwhHmw.net]
西城くーん

950 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 21:51:50.18 ID:Dbf8XOfd.net]
「ふつうのLinuxプログラミング」にfeof関数を使うなと説明がありますが
それはなぜですか?



951 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 21:58:35.07 ID:EREVH0u4.net]
>>834
「読んだ後」でないと「終端を過ぎてしまったかどうか」を検出出来ないからじゃね?

952 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 22:52:17.49 ID:dHRwhHmw.net]
使った事ないなぁ。
大体バイナリは最初にサイズ取得するみたいな。

953 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 23:27:36.40 ID:zjP+b/ec.net]
パイズリが最初にサイズ取得するやて?

954 名前:デフォルトの名無しさん mailto:sage [2015/08/10(月) 23:30:32.06 ID:zjP+b/ec.net]
>>934
根拠も述べずに他人に変な思想を広めようとする本なんか
捨ててええぞ

955 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 05:51:04.91 ID:TpmJtB/J.net]
>>936
パイプからバイナリデータ貰うとかやったことないのか?
まあ、あまり一般的じゃないか...

956 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 06:11:34.86 ID:LfXppaJj.net]
>>939は日本語も読めないバカですね

957 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 06:16:20.23 ID:TpmJtB/J.net]
>>940
お前意味わかってないだろ...
知らないのになんで首突っ込もうとするんだろう

958 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 07:31:08.03 ID:LfA/skDI.net]
やったことないから使った事ないんだろって指摘なんじゃ?

959 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:36:53.73 ID:or9dNLa9.net]
>>934
その本に理由書いて無いの?
無いから聞いてるんだとは思うけど、どんな筆者なんだろうな…

960 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 08:45:45.74 ID:hYSXGduH.net]
あくまでエラーを格納してる大域変数を読みに行くってやつだから目的とそぐわない可能性があるってことですかね?
初心者なので私も気になります



961 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:04:45.10 ID:nYbrbIvI.net]
>>943
青木峰郎って人
根拠は見直してみたけどやっぱりないみたいです

962 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:19:42.57 ID:+IVNtZk/.net]
ループの継続判定に使うな、というのはあるね
バイナリの読み込みはバッファサイズ未満を読んだら終了、でいいんじゃ・・・

963 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 09:59:22.62 ID:TpmJtB/J.net]
feof 使うな
でググるとこう言うのがヒットするから、この辺りの話だろうね
d.hatena.ne.jp/hnw/touch/20130406

964 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:29:37.17 ID:nYbrbIvI.net]
>>946
>>947
つまり関数自体には問題はない
使い道がない
ということですか
ありがとうございました

965 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:53:02.34 ID:mCEKjMZK.net]
ファイルポインタ渡して下請け関数でなんらかの読み込みを伴う処理

下請け関数呼び出して、戻ってきた時
末端到達したのか、別件で途中脱出してきたのか確認するのに使えるかも?ぐらいかなぁ

966 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:56:43.50 ID:TpmJtB/J.net]
>>948
関数に問題はないし、使い道もある
単に間違って使われることが多いだけ
ストリームの状態じゃなくて、直前の入出力操作エラーの結果を示すって言う関数だからね

967 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 10:57:53.76 ID:kVT9f1nv.net]
>>949
まぁね でも結局ステータスを親に返すか って話になると思う。

968 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 12:35:43.89 ID:nYbrbIvI.net]
>>950
なるほど
ありがとうございます

969 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 14:42:06.64 ID:yKwsHF9E.net]
ネイティブc++のライブラリをCLRで使う場合、ライブラリ形式は動的(dll)と静的(lib)どちらも大丈夫ですか?
それとも後者しか使えない、などの制限があったりしますか?

970 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 14:47:38.59 ID:p+j059KJ.net]
前者しか使えません



971 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 18:50:47.34 ID:yKwsHF9E.net]
>>954
本当ですか?
海外のフォーラム見ると、静的ライブラリじゃないと駄目って言ってる人いるんですが、逆だったんですかね

972 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 02:50:11.88 ID:BCVAnZaZ.net]
>>955
URL

973 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 07:42:09.87 ID:AeYGcSnH.net]
CLRってなんだっけ

974 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 08:43:38.05 ID:mPByWcg9.net]
どっちもいける
/pureは後者だけか

975 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 08:43:59.06 ID:mPByWcg9.net]
おっと間違った前者

976 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/13(木) 14:28:34.67 ID:5WXSkhNu.net]
アンパンマン、新しい顔がたくさんできたよ!!!

E.A.T. (Eyeball Allocation Table)
https://github.com/katahiromz/EAT
A specialized memory management system in C++.

pstdbool --- portable stdbool
https://github.com/katahiromz/pstdbool

pstdint --- portable stdint
https://github.com/katahiromz/pstdint

よろしくね。

977 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:22:05.08 ID:DIZBxb65.net]
>>956
とりあえず3つほど、、、

https://social.msdn.microsoft.com/Forums/en-US/df1661eb-c01e-408d-a6e0-d64b17f2c6a6/how-to-refer-dll-in-ccli-application?forum=vcgeneral

forums.codeguru.com/showthread.php?461115-adding-dll-reference-into-managed-C-visual-studio-2008-project の一番最後のレス

stackoverflow.com/questions/8498947/adding-natively-compiled-c-dll-to-clr-c-project のHansさんのレス

978 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:28:30.60 ID:DIZBxb65.net]
つまり、dllをリンクするのにヘッダはもちろん、libも必要になるってことですか?

979 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 18:55:55.43 ID:aB+CmHXz.net]
libないと関数名をリンクできないだろ
ヘッダに書いてる関数名と、名前空間やらオーバーロードを解決してマングリングしたものの関係性がlibに記述されてると理解してる

980 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:05:39.09 ID:DIZBxb65.net]
>>963
どうも、Windowsには普通のスタティックライブラリ(Unix系での.aファイル)の他に
インポートライブラリというのがあり、両方とも拡張子がlibなんですね・・・
とんでもない勘違いしてました



981 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 23:49:09.88 ID:HDGJU3CK.net]
>>962
いえリンクの仕方によります>>963は嘘つきなので無視してください

982 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 10:40:11.01 ID:030ck1US.net]
>>963
調べたところ、インポートライブラリにはルックアップテーブル作成のための情報が入ってるらしいですね

>>965
インポートライブラリは暗黙的リンクには必要ですが、明示的リンクには不要ということですね

c++とは直接関係ない話題ですいませんでした。勉強になりました

ちなみに、今更聞くのもあれですがCLRってスレチですか?

983 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 10:52:02.66 ID:rxGnV8e7.net]
スレチだけど誘導せずに勝手にレスつけてるんだから気にするな

984 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 18:38:31.27 ID:N/BdRhBJ.net]
環境依存文字OKなんだからCLRも問題ない気はする

985 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 21:17:42.52 ID:mMb0xxGG.net]
まあ専用スレあるので素早い回答が欲しかったらそっちで

986 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:28:55.02 ID:BC6RDWNW.net]
visual studio 2013の
windowフォームで作成した
textBox1〜textBox64のテキスト内容を
まとめて変更したいのですが
少ない行数で簡単に変更する方法を教えてください。

textBox1->Text = L"aa";
textBox2->Text = L"aa";



textBox64->Text = L"aa";

987 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 01:49:06.40 ID:2TQ1sRCh.net]
配列にする

988 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:22:48.42 ID:mJ5AYOWE.net]
>>970
c++よりc#の方がform作り易いぞ

989 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 04:44:16.66 ID:3rmo/1Qf.net]
まとめて関数の引数にするため、クラス構造体などの引数化容易な集合として扱いたいが、
集合としては一つしか呼ばない量があります
.までが元々不要なうえ手間がかかり見づらくなるだけなので付けたくないのですが
省略のようなことはできないものでしょうか(以下は素人考え)
class Input{public:int A,B,・・;};
void f(Input in,・・){略};
#define A input.A #define B input.B ・・
int main(){
Input input;
A=・・; B=・・;・・;
f(input,・・);
}

990 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 08:50:55.30 ID:k3v/6O3B.net]
他所言語でおけ かな?

with 識別子
 . メンバー名 = 代入
 :
 :
end with

こいうのが欲しくなる気持ちはわからないではない



991 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 09:00:38.36 ID:G0vOLImE.net]
>>973
できるし、実際にやってる
有名どころでは struct in_addr とか

あと GCC の拡張機能で初期化だけなら
Input input = { .A=・・, .B=・・, ・・}

992 名前:;
のように書ける
[]
[ここ壊れてます]

993 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 09:21:01.38 ID:EUq24GhA.net]
引き数を取るコンストラクタを用意するだけじゃないの?

994 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 10:32:11.65 ID:EwR31uEA.net]
A, B 用のセッタ作れば良いだけじゃないのん?

995 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 14:31:46.84 ID:9q62HXi+.net]
union{
int i;
struct {
unsigned int a : 1;
unsigned int b : 1;
} BIT;
} hoge;//グローバル変数

void funcA(){
//hoge.aに対するいろんな処理(処理の内容はfuncBと同じ)
}
void funcB(){
//hoge.bに対するいろんな処理(処理の内容はfuncAと同じ)
}

Cで上記のような関数があるときに、funcAとfuncBの処理の内容を1つのコードにまとめるということはできないですか?
funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました

996 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:16:35.55 ID:EwR31uEA.net]
>>978
A, Bを同じクラスにするだけで良いのでは?

別解としてはtemplateを使う手もあるけど、多分そこまでするほどの事じゃないと察する。

997 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:19:27.93 ID:Fj/4E2oI.net]
ゴミレスしないでください

998 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:36:37.35 ID:DK3HdHSw.net]
hoge.a=func(hoge.a);
では駄目?

999 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:50:40.92 ID:joxnevy0.net]
func(&hoge.a)
func(&hoge.b)
じゃあかんのか

1000 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:55:37.74 ID:Fj/4E2oI.net]
ビットフィールドも知らないんなら、ゴミレスしないでください



1001 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:11:32.93 ID:9q62HXi+.net]
>>979
Cにclassなんかないんですが

>>981
処理でいろいろ条件分岐するのでそれでは意味がない

>>982
>funcA,funcBをラッパにしてhoge.A,hoge.Bにそれぞれポインタでアクセスしようとするとエラーが起きました

1002 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:25:21.20 ID:t3K/aRMS.net]
ゲッターとセッターの関数ポインタを引数にする

1003 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 18:45:15.51 ID:9q62HXi+.net]
>>985
ありがとうございました

1004 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:03:51.94 ID:WInuKq4U.net]
ビットフィールド止めて &hoge とビットマスク渡せばいいような気もする

1005 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:31:30.33 ID:rfTaTQIO.net]
ちなみに>>975=>>977=>>987=QZ

1006 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 00:59:15.46 ID:o7p+NB2T.net]
>>984
なんで条件分岐があると >>981 がダメになるの? >>985 にできて >>981 にできないことなんて無いと思うんだけど。

1007 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 02:32:24.05 ID:KDudTXNJ.net]
次スレよろよろ

1008 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:10:45.87 ID:47QFVOwL.net]
ほい
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1439849418/

1009 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:44:08.07 ID:lMcZlJPi.net]
>>991
乙乙乙

1010 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:16:28.25 ID:mkEa0Vju.net]
>>989
でも使う側で代入しなきゃいけないってめんどくさくない?
>>985のほうはfuncAとかを呼び出すようにすれば関数ポインタがどうこうというのは気にせずに使えるし



1011 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:39:47.45 ID:O8W/9LGI.net]
うめしばー

1012 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:47:10.39 ID:/6UfQ5+D.net]
うめ

1013 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:47:59.14 ID:/6UfQ5+D.net]
うめ

1014 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:48:27.02 ID:/6UfQ5+D.net]
うめ

1015 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:48:55.03 ID:/6UfQ5+D.net]
うめ

1016 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:49:08.08 ID:/6UfQ5+D.net]
うめ

1017 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:50:26.34 ID:O8W/9LGI.net]


1018 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1019 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef