[過去ログ] C++相談室 part164 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
913: (ワッチョイ 1934-egvn) 2023/10/21(土)01:04 ID:m23W7dra0(1) AAS
>>912
が優劣について数字を出して語ってくれるそうです
どうぞw
914: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8da2-+JM7) 2023/10/21(土)02:43 ID:WDz67hDs0(1) AAS
C++ はある程度は汚いものだろう。
隅々まで綺麗にしようと腐心するよりは
少なくとも部品のインターフェイスくらいはまともにして
外側に対しては綺麗なふりをするくらいが手頃な妥協点だと思う。
逆にミクロ的にスマートに書けていても
抽象化が駄目だと使いにくいよ。

内も外も綺麗ならそれに越したことはないけど
そうもいかないのが現実だからね。
915
(1): (ワッチョイ d563-KkNu) 2023/10/21(土)08:17 ID:pQG7G9ym0(1/2) AAS
>>906
天才か!
なんかこの前動かしたら駄目だった気がしたけど
今やったら動いたわサーセン;;;
916: (オイコラミネオ MMbd-JD/u) 2023/10/21(土)12:13 ID:3FTa9ZLeM(1/2) AAS
vectorなのかvecなのかは言語開発者がそうと決めたからそうなってるだけ
昔はコード補間もなくx-windowのアホみたいな長い呪文APIぶち込んでたけど今もそれだったらぶち切れてる

意外なことに開発環境が変わればいろいろ変わる
917: (オイコラミネオ MMbd-JD/u) 2023/10/21(土)12:24 ID:3FTa9ZLeM(2/2) AAS
今windowの更にクソ長い基地外じみたAPI打ってるのもコード補完があるから
918
(1): (アウアウウー Sa09-mHTC) 2023/10/21(土)13:25 ID:oEOsfkqwa(1) AAS
名前の長い短かいについては上述のとおり技術の進歩、開発環境の変化で落しどころがかわってくるが
俺的にはむしろネーミングのセンスのほうが気になる
俺がまだフサフサだったころはイキって一般によく使われる単語とちょっと違う単語をわざわざ探すようなことをしていたが
頭髪が薄くなるに従ってそういうことはくだらない事と思うようになり
今はできるだけベタな誰が見ても即座に意味がつかめる、あえてダッサいネーミングをするよう心がけてる
例:データを吸いあげて収納するメソッド名
フサフサ俺がつけがちな名前 → .BeamMeUp()
ハゲ俺がつける名前 → .LoadData()
919
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8e3e-exru) 2023/10/21(土)13:28 ID:lPxmC+mr0(1) AAS
>>915
std::vector のイテレータの場合に限らず
ランダムアクセスイテレータは difference_type との加算が出来ることになってる。
外部リンク:timsong-cpp.github.io
920: (ワッチョイ 19f2-awtI) 2023/10/21(土)13:55 ID:QfWCszfk0(1) AAS
>>918
仕事でやってたら初日で怒られるレベル
921
(1): (ワッチョイ 7a79-Idv/) 2023/10/21(土)14:25 ID:ifbOBJO10(1) AAS
>データを吸いあげて収納する
ハゲなのに5W1Hすら知らないと見える
922: (ワッチョイ 8eca-ANn9) 2023/10/21(土)19:03 ID:l7vz3TvG0(1) AAS
恥ずかしながら学生の頃はドイツ語で命名してましてねフフフ
923: (ワッチョイ 0105-SFbe) 2023/10/21(土)19:20 ID:5c+gSFSX0(1) AAS
korewahennsuudesu
924: (ワッチョイ d563-KkNu) 2023/10/21(土)20:59 ID:pQG7G9ym0(2/2) AAS
>>919
レス引用が分かりにくくてスマンカッタorz
そこではなくて挿入位置にsize()まで指定してたら末尾に要素が追加にできるところ
std::vector<int> vec = { 1, 2, 3 };
vec.insesrt(vec.begin() + vec.size(), 4);
cout << vec << endl; // ( 1 2 3 4 )
925: (ワッチョイ 6501-6i8i) 2023/10/21(土)21:41 ID:BercqiEL0(1/3) AAS
ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
926: (ワッチョイ 6501-6i8i) 2023/10/21(土)21:41 ID:BercqiEL0(2/3) AAS
ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
927: (ワッチョイ 6501-6i8i) 2023/10/21(土)22:50 ID:BercqiEL0(3/3) AAS
>>921
5W1HはMITが提唱したんじゃなかったっけ
928: (ワッチョイ 1590-wvhw) 2023/10/22(日)12:33 ID:x1FYC/BU0(1) AAS
変数でも関数でも
初見もしくは内容忘れた自分が
読んだとき何をやってるか分かるような名前付けが大事だと思う
よって長さは常識の範囲内なら長い方が良いかな

どうでもいいループ変数にindex2SearchArgumentHaystackとか
書いてたら殺意を覚えるけどさ
929: (オイコラミネオ MMbd-JD/u) 2023/10/22(日)17:33 ID:Ih9eQULqM(1) AAS
GetSelectedPersonDataFromLiveDBIfNotExistsReadDefaultValueFromSettingFileType2022Ex
930: (ワッチョイ 0105-SFbe) 2023/10/22(日)17:36 ID:+fVR99EM0(1) AAS
= 1 ;
931: (ワッチョイ 6501-6i8i) 2023/10/22(日)19:20 ID:/8xzlJDV0(1) AAS
モジュールはまだ使えんのか?
932
(1): (ワッチョイ 8e3b-xUKY) 2023/10/22(日)20:40 ID:XK8cC57k0(1/2) AAS
リテラルで簡潔に書けるのでみんな初期化子リストばんばん使ってると思うけど
initializer_listって必ずコピーが発生するのな
non copyableなクラスが使えなくて不便なんだが、回避策ない?
933
(2): (ワッチョイ 5d01-46Vy) 2023/10/22(日)20:47 ID:tZaS4o4u0(1/2) AAS
>>932
>non copyableなクラスが使えなくて不便なんだが、回避策ない?
moveすれば?
934
(1): (ワッチョイ 8e01-tEca) 2023/10/22(日)23:26 ID:XK8cC57k0(2/2) AAS
>>933
できないんだよ
935
(2): (ワッチョイ 5d01-46Vy) 2023/10/22(日)23:33 ID:tZaS4o4u0(2/2) AAS
>>934
???
どんなコードで問題出てるの?
936
(2): (ワッチョイ 8e3b-xUKY) 2023/10/23(月)01:32 ID:sueaiNV30(1) AAS
>>935
外部リンク:wandbox.org

次のコードがコンパイルできない

struct A {
 A(int) {}
 A(const A&) = delete;
};

int main()
{
 std::vector<A> v = { 1, 2, 3 };
}
937
(1): (ワッチョイ 1998-awtI) 2023/10/23(月)05:17 ID:RG/DfB7W0(1/2) AAS
>933 >>935
外部リンク:www.google.com
クソ回答する前にググれよ
938: (ワッチョイ 5d01-46Vy) 2023/10/23(月)09:29 ID:9KLj8HWs0(1/2) AAS
>>936,937
あれ?
$ cat test.cpp
#include <iostream>
using namespace std;
struct A {
A () {cout << "construct" << endl;}
A (const A &p) = delete;
A (A &&p) {cout << "move" << endl;}
};
void func (initializer_list <A> p) {
cout << "func" << endl;
}
int main () {
A a0;
A a1;
func ({move (a0), move (a1)});
return 0;
}
$ g++ test.cpp
$ ./a.out
construct
construct
move
move
func
939
(2): (ワッチョイ 5d01-46Vy) 2023/10/23(月)10:27 ID:9KLj8HWs0(2/2) AAS
だめかなぁ...
#include <vector>
struct A {
A(int) {}
A(const A&) = delete;
A(A&&) = default;
};
std::vector <A> construct (std::initializer_list <A> p) {
std::vector <A> result;
for (auto itr {p.begin ()}, end {p.end ()}; itr != end; ++ itr)
result.push_back (std::move (const_cast <A &> (*itr)));
return result;
}
int main()
{
std::vector<A> v = construct ({ 1, 2, 3 });
}
940: (ワッチョイ 4eda-CTkJ) 2023/10/23(月)11:36 ID:OKLUF2xV0(1) AAS
>>936
コピコン消したいなら代入オペレータ用意してやらんとダメだろ
941: (ワッチョイ 1a20-ANn9) 2023/10/23(月)13:23 ID:1EMVV/4H0(1) AAS
initializer_list<A&&>が作れないから波括弧初期化できないって話か
なるほどね
942: (ワッチョイ 19f4-awtI) 2023/10/23(月)19:21 ID:RG/DfB7W0(2/2) AAS
initializer_list作るとこまでは出来てもムーブで取り出せないのよ
だからvectorのコンストラクタにinitializer_listで渡すとエラー出るし、>>939のように
const外して一つずつ突っ込むとかしなきゃいけなくなる
ムーブ可能にする提案は出てるらしいけど
外部リンク[html]:cpplover.blogspot.com
1-
あと 60 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.020s