- 【初心者歓迎】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 - 量子状態が真に不決定的だという量子力学主流派の主張にだって反対意見は多くあるし(有名なのはアインシュタイン)
つきつめると結局ラプラスの悪魔の話にまでいっちゃう
|