トップページ > プログラム > 2015年07月20日 > /EsSmyHW

書き込み順位&時間帯一覧

1 位/225 ID中時間01234567891011121314151617181920212223Total
書き込み数02124000006430300000000025



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
801
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
C++相談室 part118 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
792 :デフォルトの名無しさん[sage]:2015/07/20(月) 01:28:56.83 ID:/EsSmyHW
質問者もアレすぎるけど、それ以上にわけの分からんのが湧いてきたな
C++相談室 part118 [転載禁止]©2ch.net
365 :デフォルトの名無しさん[sage]:2015/07/20(月) 01:41:30.26 ID:/EsSmyHW
普通にTにすればいいのに
C++相談室 part118 [転載禁止]©2ch.net
368 :デフォルトの名無しさん[sage]:2015/07/20(月) 02:22:59.65 ID:/EsSmyHW
一般論じゃない
_大文字で始まるのはアプリ側では一切使ってはいけない
他にも禁止事項があるからチェックした方がいいよ
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
801 :デフォルトの名無しさん[sage]:2015/07/20(月) 03:02:23.28 ID:/EsSmyHW
>>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可能に思えるんですが、何か見落としてますか?
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
803 :デフォルトの名無しさん[sage]:2015/07/20(月) 03:25:11.29 ID:/EsSmyHW
>>796
>>782のコード自体には問題がないのは確定してるよ
これはすぐに確認できて、PC上ではGCCでもVCでも毎回違う値になる
考えられるのは>>782の環境ではハードウエアエントロピーを反映する機構が組み込まれていないのではないかと
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
804 :801[sage]:2015/07/20(月) 04:06:41.03 ID:/EsSmyHW
でもまあキャストの場合でも§8.3.2-6のルールが適用されるんだろうなあ
std::moveの実装はみんな参照をremoveしてから&&付けてるから
§8.3.2-6を字句どうりに読めばtypedef 、type template-parameter、decltype-specifier
以外ではT& &&はエラーにならなきゃいけないと思うんだが
俺が何か見落としてるんだろうけど何なのか分からない
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
805 :デフォルトの名無しさん[sage]:2015/07/20(月) 04:23:53.19 ID:/EsSmyHW
あっそうかtype template-parameterに当たるということか
Tがtemplate-parameterなら
T& &&は全てT&に変換されると
ホント難しいわ
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
807 :デフォルトの名無しさん[sage]:2015/07/20(月) 04:42:29.86 ID:/EsSmyHW
an attempt to create the type “rvalue reference to cv TR” creates the type TR.だな
やっと分かった
>>801、>>804は寝言ですので忘れて下さいごめんなさい
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
808 :デフォルトの名無しさん[sage]:2015/07/20(月) 04:48:36.62 ID:/EsSmyHW
>>806
あっそうなんだ
買う気しないから最終ドラフト読んでたw
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
814 :デフォルトの名無しさん[sage]:2015/07/20(月) 10:26:27.58 ID:/EsSmyHW
cygwinのgccではちゃんと毎回違う値になる
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
815 :デフォルトの名無しさん[sage]:2015/07/20(月) 10:28:20.95 ID:/EsSmyHW
>>812
std::random_deviceには種は与えられないから
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
817 :デフォルトの名無しさん[sage]:2015/07/20(月) 10:32:56.85 ID:/EsSmyHW
>>809
お前は
とりあえず人間として生きるのに向いてなさそう
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
824 :デフォルトの名無しさん[sage]:2015/07/20(月) 10:45:36.38 ID:/EsSmyHW
>>816
規格の§26.5.6-5には
If the implementation employs a random number engine, returns 0.0.
とあるから>>810は嘘ではない
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
826 :デフォルトの名無しさん[sage]:2015/07/20(月) 10:50:55.65 ID:/EsSmyHW
cygwinのgcc(4.9.2)ではentropy()は0を返すけどoperator()は毎回違う値になる
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
828 :デフォルトの名無しさん[sage]:2015/07/20(月) 10:59:24.66 ID:/EsSmyHW
規格の§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.
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
829 :デフォルトの名無しさん[sage]:2015/07/20(月) 11:02:57.44 ID:/EsSmyHW
>>828はoperator()の話しね
>>819
ライブラリにバグが有り迂回措置をしなきゃならないことはままあることだけど
それと>>782のコード自体には問題がないことは別の話
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
831 :デフォルトの名無しさん[sage]:2015/07/20(月) 11:22:06.61 ID:/EsSmyHW
>>830
time()すらサポートできない環境もあるだろうけどな
でも規格ではoperator()はnon-deterministic random valueを返さなきゃならないことになってる
同じ種による擬似乱数ならnon-deterministicにはならない
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
836 :デフォルトの名無しさん[sage]:2015/07/20(月) 11:33:39.96 ID:/EsSmyHW
>>833
entoropy()==0な環境ならそうだけど
問題はその場合の擬似乱数の種だよ
エントロピーを持った種を生成する手段が全くない環境ではstd::random_deviceは規格通りに実装できないと思う
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
838 :デフォルトの名無しさん[sage]:2015/07/20(月) 11:40:06.20 ID:/EsSmyHW
>>834
§26.5.6-7に例外規定があるね
例外に該当するにも関わらず例外上げないならやっぱりバグだね
C++相談室 part118 [転載禁止]©2ch.net
375 :デフォルトの名無しさん[sage]:2015/07/20(月) 12:00:00.21 ID:/EsSmyHW
例えばクラスのメンバ変数名に_小文字で始まるのを使うのは問題ない
_大文字で始まるのはアプリ側ではどんな場合でもダメ絶対
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
847 :デフォルトの名無しさん[sage]:2015/07/20(月) 12:28:53.22 ID:/EsSmyHW
>>824を補足訂正しとくか
・ライブラリが擬似乱数を使うならentropy()はゼロを返さなければならない
・しかし、その場合でもoperator()は何らかの手段でnon-deterministicな値を返さなければならない
・それすら出来ないなら例外を上げなければいけない
>>810の
>これで 0 が表示されたらその処理系では真の乱数がサポートされていなくて
>常に擬似乱数を返すようになっている
までは正しいが、それ以降はバグってるライブラリに対する迂回処置
規格を順守するならtry〜catchで確認しなければならないけどライブラリがバグってて例外上げないなら
意味がなく>>810みたいなことをやらなきゃならない
でもそんな環境ではstd::chrono::system_clock::now()やtime()が使い物になるかどうかすら試してみなきゃわからない
C++相談室 part118 [転載禁止]©2ch.net
381 :デフォルトの名無しさん[sage]:2015/07/20(月) 12:44:07.72 ID:/EsSmyHW
>377
俺はprivateなメンバ変数には_小文字で始まるのを使うようにしてる
これIDEの補完機能上便利なんだよね
C#世界じゃほぼ標準的な流儀になってるし
C++世界ではprivateメンバ変数に_をサフィックスとして付ける流儀があるけど
これは汚いし(個人的意見)便利じゃない
m_は汚すぎて絶対使いたくない
C++相談室 part118 [転載禁止]©2ch.net
393 :デフォルトの名無しさん[sage]:2015/07/20(月) 14:08:32.66 ID:/EsSmyHW
>>388
C++にはnamespaceがあるからCとは状況が違う
C++相談室 part118 [転載禁止]©2ch.net
394 :デフォルトの名無しさん[sage]:2015/07/20(月) 14:11:19.29 ID:/EsSmyHW
処理系用に予約されている命名パターンをアプリ側で使う上で本当やばいのは
そういう名前を処理系側では#defineでも使えるってこと
これにぶつかっちゃったらエライことになる
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
866 :デフォルトの名無しさん[sage]:2015/07/20(月) 14:16:13.79 ID:/EsSmyHW
量子状態が真に不決定的だという量子力学主流派の主張にだって反対意見は多くあるし(有名なのはアインシュタイン)
つきつめると結局ラプラスの悪魔の話にまでいっちゃう


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。