次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
C++相談室 part140
https://mevius.5ch.net/test/read.cgi/tech/1547326582/
C++相談室 part141
https://mevius.5ch.net/test/read.cgi/tech/1550772463/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
C++相談室 part142
レス数が1000を超えています。これ以上書き込みはできません。
2019/04/01(月) 22:17:05.84ID:wmfpIKt/
962デフォルトの名無しさん
2019/06/13(木) 03:21:55.87ID:/TtN03F/ >>961
c++11で導入されたmoveはいわゆる所有権の移動とは違うもなので、その場合はmoveは使えないと思う。
c++11で導入されたmoveはいわゆる所有権の移動とは違うもなので、その場合はmoveは使えないと思う。
963デフォルトの名無しさん
2019/06/13(木) 03:33:01.74ID:fPdkPYzy >>962
unique_ptrのmoveが所有権の移動じゃないと言うなら一体何なら「所有権の移動」だと言うのか。
unique_ptrのmoveが所有権の移動じゃないと言うなら一体何なら「所有権の移動」だと言うのか。
964デフォルトの名無しさん
2019/06/13(木) 03:46:23.77ID:/TtN03F/ もともと右辺値参照とmoveセマンティクスの話じゃなかったっけ?
965デフォルトの名無しさん
2019/06/13(木) 04:35:02.91ID:qBl/BLKs ループの中で int a なる整数を使うとき、ループ内で毎回宣言するのとループの外で宣言して使い回すのどっちが結局速いの?
966デフォルトの名無しさん
2019/06/13(木) 09:17:30.68ID:wJ3u1v7j 自分で計ればいいじゃん
967デフォルトの名無しさん
2019/06/13(木) 11:30:46.72ID:eqzI8P56 ループの外に出せるものは可能な限りすべて出せ
968デフォルトの名無しさん
2019/06/13(木) 12:09:07.93ID:Br82W2pC 範囲for文を使ってそんなどうでもいいことは忘れろ
969デフォルトの名無しさん
2019/06/13(木) 13:18:06.43ID:XHz4etUG970デフォルトの名無しさん
2019/06/13(木) 13:33:35.83ID:eqzI8P56 スコープ気にするならループ関係の部分だけでスコープ区切ればいいじゃん
971デフォルトの名無しさん
2019/06/13(木) 15:27:33.99ID:P5difHG2 >>970
お前は何を言ってるんだよ…
お前は何を言ってるんだよ…
972デフォルトの名無しさん
2019/06/13(木) 15:28:06.57ID:PncfQdvG cppcheckやVisual Studioのような静的コード解析にかけると「スコープを小さくできるよ?」みたいなアドバイスが出るよね。
実際のところ、どうなんだろうね。typoしにくくなったりスタックサイズが小さくなる利点があるとは思うけど。
実際のところ、どうなんだろうね。typoしにくくなったりスタックサイズが小さくなる利点があるとは思うけど。
973デフォルトの名無しさん
2019/06/13(木) 16:20:20.51ID:fzRArnQO さすがにこの流れは草
974デフォルトの名無しさん
2019/06/13(木) 16:22:08.63ID:jHLKLHUC ちょうど今朝cppcheckかけたら
style: The scope of the variable 'c' can be reduced.
「変数 c のスコープを縮小できますよ」って出たわ。
つまり「スコープを狭くできるなら狭くすべき」っていう方針を、
(少なくともcppcheckを作ってる人は)採用してるんだろうな。
どっちが速いかについては、ちょっと最適化オプションつければ
結局同じマシン語になっちゃうんじゃないかしら。
style: The scope of the variable 'c' can be reduced.
「変数 c のスコープを縮小できますよ」って出たわ。
つまり「スコープを狭くできるなら狭くすべき」っていう方針を、
(少なくともcppcheckを作ってる人は)採用してるんだろうな。
どっちが速いかについては、ちょっと最適化オプションつければ
結局同じマシン語になっちゃうんじゃないかしら。
975デフォルトの名無しさん
2019/06/13(木) 16:29:14.63ID:gMp0DWLA976デフォルトの名無しさん
2019/06/13(木) 16:30:01.81ID:57+ky1er スコープ広いほうが良いなら最終的に全部グローバルにしろやになるやんけ
977デフォルトの名無しさん
2019/06/13(木) 17:32:58.81ID:fC2jn4Im オブジェクト指向って実はprivate変数のスコープをかなり広く取ってるセミグローバル指向だと思う
978デフォルトの名無しさん
2019/06/13(木) 17:37:28.56ID:wJ3u1v7j おれは思わないな
979デフォルトの名無しさん
2019/06/13(木) 18:39:42.63ID:XHz4etUG >>977
それってクラスを大きくしすぎているだけじゃないか?
それってクラスを大きくしすぎているだけじゃないか?
980デフォルトの名無しさん
2019/06/13(木) 19:54:06.23ID:fmTPRROb この流れは関数切り出しをまともにやってない連中が多いってことだな。。
981デフォルトの名無しさん
2019/06/13(木) 23:39:11.49ID:ktOVSBzy そろそろ次スレ。わっちょい。
982デフォルトの名無しさん
2019/06/15(土) 13:52:11.56ID:DKQ0QQLH983デフォルトの名無しさん
2019/06/15(土) 18:36:57.85ID:YCpCWY7o 最近馬鹿の一つ覚えが多いな
>>982 乙乙
>>982 乙乙
984デフォルトの名無しさん
2019/06/15(土) 19:13:31.09ID:wEtwZJzN 覚えてるだけまし。
985デフォルトの名無しさん
2019/06/15(土) 19:37:22.36ID:y49ayDRp グローバル変数と言っているのはオブジェクト指向スレを荒らしてるバカだろ
986デフォルトの名無しさん
2019/06/16(日) 15:07:40.82ID:TXhOXCMI 任意の型に対応する整数を返すメタ関数ってC++11の標準であったりします?
intなら1
stringなら2
みたいな
上記の技法をなんと呼ぶかわからないので検索ワードも思い付かず…
intなら1
stringなら2
みたいな
上記の技法をなんと呼ぶかわからないので検索ワードも思い付かず…
987デフォルトの名無しさん
2019/06/16(日) 15:52:45.94ID:eI7bdJXk なんでワッチョイついてんの?
スレ立てミスだろ
スレ立てミスだろ
988デフォルトの名無しさん
2019/06/16(日) 16:00:01.99ID:gyfVRbSU >>986
std::type_info::hash_code()が似た機能を持ってるけどメタ関数かどうかわからない。たぶんランタイム。
https://cpprefjp.github.io/reference/typeinfo/type_info/hash_code.html
std::type_info::hash_code()が似た機能を持ってるけどメタ関数かどうかわからない。たぶんランタイム。
https://cpprefjp.github.io/reference/typeinfo/type_info/hash_code.html
989デフォルトの名無しさん
2019/06/16(日) 19:19:35.33ID:PFinGY+5 質問ですがC++のクラスのメソッドは、大別すると、
コンストラクタとデストラクタとsetterとgetterと何になるの?
コンストラクタとデストラクタとsetterとgetterと何になるの?
990デフォルトの名無しさん
2019/06/16(日) 19:22:19.26ID:NJ2skO19 move? be?
ステートチェンジしていくのだから、動作になるのか?
ステートチェンジしていくのだから、動作になるのか?
991デフォルトの名無しさん
2019/06/16(日) 19:31:47.13ID:Va3vueK+ setterとgetterって何?
Javaじゃあるまいしそんなの言語要素としては用意してないよ
Javaじゃあるまいしそんなの言語要素としては用意してないよ
992デフォルトの名無しさん
2019/06/16(日) 21:57:17.90ID:PFinGY+5 >>991
setterとgetterが何かについてはググった方が良い
Javaは詳しくは知らないが、ググった限りにおいて
Javaでもsetter/getterを定義する専用の言語要素など用意されていない印象
setterとgetterが何かについてはググった方が良い
Javaは詳しくは知らないが、ググった限りにおいて
Javaでもsetter/getterを定義する専用の言語要素など用意されていない印象
993デフォルトの名無しさん
2019/06/16(日) 22:03:52.19ID:PFinGY+5 で、C++/Javaどっちも
{ setter } ∪ { getter } ⊂ { メソッド }
であることは明らかだが、では
Q1. { メソッド } - ( { setter } ∪ { getter } )には何か専用の名前は無いのか?、
というのが>>909の質問の主旨。
ついでに言うと
Q2. { setter } や{ getter }というのは本当に確定した集合なのか?
と、
Q3. 「操作」と言ったときそれは{ メソッド }を指すのか { メソッド } - ( { setter } ∪ { getter } ) を指すのかどっちなんじゃ、
とかも知りたい
{ setter } ∪ { getter } ⊂ { メソッド }
であることは明らかだが、では
Q1. { メソッド } - ( { setter } ∪ { getter } )には何か専用の名前は無いのか?、
というのが>>909の質問の主旨。
ついでに言うと
Q2. { setter } や{ getter }というのは本当に確定した集合なのか?
と、
Q3. 「操作」と言ったときそれは{ メソッド }を指すのか { メソッド } - ( { setter } ∪ { getter } ) を指すのかどっちなんじゃ、
とかも知りたい
994デフォルトの名無しさん
2019/06/16(日) 22:04:40.86ID:fCIbdDP9 >>989
シグナルとスロット(Qt脳)
シグナルとスロット(Qt脳)
995デフォルトの名無しさん
2019/06/16(日) 22:54:20.07ID:PFinGY+5 >>994
シグナルとスロットというのはGUI操作を処理する目的のブツなので、
実行時の時間コストがゼロコストに近いことを気体されているハズ、
よって { メソッド } - ( { setter } ∪ { getter } ) の全て(この中には実行時の時間コストが青天井のブツも含まれる)を
包含しはしないのではないか、
まあここまで書いてオモタが、 { setter } ∪ { getter } こそ実行時時間コスト0を期待されるから、
setterやgetterは次の定義で良いのではないかという気がしてきた…
- 属性を取得する目的の操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがgetter
- 属性を変更する目的の操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがsetter
シグナルとスロットというのはGUI操作を処理する目的のブツなので、
実行時の時間コストがゼロコストに近いことを気体されているハズ、
よって { メソッド } - ( { setter } ∪ { getter } ) の全て(この中には実行時の時間コストが青天井のブツも含まれる)を
包含しはしないのではないか、
まあここまで書いてオモタが、 { setter } ∪ { getter } こそ実行時時間コスト0を期待されるから、
setterやgetterは次の定義で良いのではないかという気がしてきた…
- 属性を取得する目的の操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがgetter
- 属性を変更する目的の操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがsetter
996デフォルトの名無しさん
2019/06/16(日) 22:56:35.57ID:PFinGY+5 後ろ2行訂正orz、
正:
- 属性を取得する目的で設けられた操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがgetter
- 属性を変更する目的で設けられた操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがsetter
正:
- 属性を取得する目的で設けられた操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがgetter
- 属性を変更する目的で設けられた操作であり、かつ実行時時間コスト≒0の実装が今現在も保たれているのがsetter
997デフォルトの名無しさん
2019/06/16(日) 23:24:38.97ID:PFinGY+5 補足すると、「属性を取得する目的」や「属性を変更する目的」というのは、
インターフェースをクラスの主要な機能とは独立に変更できることを暗に言っている
例えばクラスFooのsetBar()が真にsetterならば、
属性をsetterでセットするのをやめて(Foo::setBar()を廃止して)ファイルから
直接読み込むメソッドFoo::readFromFile()に置き換えても、
クラスの主要な機能Foo::mainFunc()は変更せずに済むハズ
getterについても同様
インターフェースをクラスの主要な機能とは独立に変更できることを暗に言っている
例えばクラスFooのsetBar()が真にsetterならば、
属性をsetterでセットするのをやめて(Foo::setBar()を廃止して)ファイルから
直接読み込むメソッドFoo::readFromFile()に置き換えても、
クラスの主要な機能Foo::mainFunc()は変更せずに済むハズ
getterについても同様
998デフォルトの名無しさん
2019/06/16(日) 23:56:38.00ID:WOfC/Ugn operator=がsetterでoperator()がgetterにならない?
999デフォルトの名無しさん
2019/06/17(月) 00:00:50.16ID:x+yzwFNm c++かどうかなんて関係ない、オレオレ分類しているだけだろ
1000デフォルトの名無しさん
2019/06/17(月) 00:01:28.14ID:7HzfXopw ずれてるのを承知で書くけど、直接読み込むメソッドってやつも含め setter なんてない方がいいよ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 76日 1時間 44分 23秒
新しいスレッドを立ててください。
life time: 76日 1時間 44分 23秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 千葉県民だけどなんか地震あったらしいな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- 秋田大学のホームページがつながらなくなって1日以上経つのだが
- 【速報】高市早苗、起床 [779938112]
- 共産党議員「日本は中国を侵略した歴史がある」→ネトウヨ「そんな歴史は無い!捏造するな!!国家侮辱罪で逮捕だ!!!」 [314039747]
