前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1636969758/
探検
C++相談室 part159
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/02/19(土) 11:56:42.14ID:kSnJ/KwP463デフォルトの名無しさん
2022/03/12(土) 22:30:59.53ID:olrB42jq >>462
コンパイル時にkeyを見てチェックするという縛りなら、実行時になるまでkeyがわからない状態にはできない。
雑にやってしまうならこうなる。
真面目にやるならフィールドへのポインタをテンプレート引数にすることになると思う
template<char key>
void sort_by_key()
{
if constexpr (key == 'a') (Hogeのメンバ変数 m_aでソート);
else if constexpr (key == 'b') (Hogeのメンバ変数 m_bでソート);
else throw std::invalid_argument();
}
コンパイル時にkeyを見てチェックするという縛りなら、実行時になるまでkeyがわからない状態にはできない。
雑にやってしまうならこうなる。
真面目にやるならフィールドへのポインタをテンプレート引数にすることになると思う
template<char key>
void sort_by_key()
{
if constexpr (key == 'a') (Hogeのメンバ変数 m_aでソート);
else if constexpr (key == 'b') (Hogeのメンバ変数 m_bでソート);
else throw std::invalid_argument();
}
464デフォルトの名無しさん
2022/03/12(土) 22:46:39.28ID:uDPm4ane465デフォルトの名無しさん
2022/03/13(日) 18:52:37.38ID:mTtq0Uph ポインタとか文字列の勉強をしていてよくわからなくなってしまいました
char* test(char* &s){
char* ans=“B”;
s[0]=‘C’;
s=ans;
return ans;
}
int main(int argc,char *argv[]){
char s1[]=“A”;
char* s2=s1;
#if 1
cout<<s2;
cout<<test(s2);
cout<<s2;
#else
cout<<s2<<test(s2)<<s2;
#endif
return 0;
}
上のようなものを動かす時、#if 1のときはABBと表示されて、#elseにするとBBCと表示されます
#elseのように一行にまとめた時に何が起こっているのかよくわからないので教えていただけると嬉しいです
よろしくお願いします
char* test(char* &s){
char* ans=“B”;
s[0]=‘C’;
s=ans;
return ans;
}
int main(int argc,char *argv[]){
char s1[]=“A”;
char* s2=s1;
#if 1
cout<<s2;
cout<<test(s2);
cout<<s2;
#else
cout<<s2<<test(s2)<<s2;
#endif
return 0;
}
上のようなものを動かす時、#if 1のときはABBと表示されて、#elseにするとBBCと表示されます
#elseのように一行にまとめた時に何が起こっているのかよくわからないので教えていただけると嬉しいです
よろしくお願いします
466デフォルトの名無しさん
2022/03/13(日) 18:56:08.61ID:wqc4hozV ポインタじゃなくて評価順の問題なのはわかるが
何が起きてるのかは俺もようわからん
何が起きてるのかは俺もようわからん
467デフォルトの名無しさん
2022/03/13(日) 19:00:28.93ID:wF3w3WV7 char*&なんて20年C++プログラマやってて一度も使ったことないわ…
どういうときに必要になるん?
どういうときに必要になるん?
468デフォルトの名無しさん
2022/03/13(日) 19:02:39.85ID:mTtq0Uph 必要ないとは思うんですけど、理解を確かめるために色々試していたって感じです
469デフォルトの名無しさん
2022/03/13(日) 19:02:42.19ID:uIbezUFD >>467
おっちゃんやん
おっちゃんやん
470デフォルトの名無しさん
2022/03/13(日) 19:05:39.12ID:wqc4hozV あーわかったけど説明めんどくさいな
とりあえず、if 1では1行ずつ評価(今の場合表示と読み替えても良い)が行われてるが
2行目の場合、評価(表示)の前に途中で関数が実行されて、値が書き換えられている、とだけ
とりあえず、if 1では1行ずつ評価(今の場合表示と読み替えても良い)が行われてるが
2行目の場合、評価(表示)の前に途中で関数が実行されて、値が書き換えられている、とだけ
471デフォルトの名無しさん
2022/03/13(日) 19:06:08.61ID:e39Fa4ck コレ質問してるのもおっちゃん臭いんだよな
いつもVC++だし、MFCみたいな書き方するし
いつもVC++だし、MFCみたいな書き方するし
472デフォルトの名無しさん
2022/03/13(日) 19:06:22.60ID:wqc4hozV 誤 2行目の場合→正 elseの場合
473デフォルトの名無しさん
2022/03/13(日) 19:12:14.63ID:wF3w3WV7 >>469
おう、最近白髪が気になってきた
おう、最近白髪が気になってきた
474デフォルトの名無しさん
2022/03/13(日) 19:20:55.04ID:e39Fa4ck そして答えてるのも同じおっちゃんw
475デフォルトの名無しさん
2022/03/13(日) 19:22:15.18ID:e39Fa4ck そもそもそんな怪しいコーディングは普通のC++プログラマはしないから
warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
476はちみつ餃子 ◆8X2XSCHEME
2022/03/13(日) 19:38:16.17ID:lhgOY5DD 文字列リテラルの型は const char[] だが、 C++03 時代は const をはがして char* に (暗黙に) 型変換することが許されていた。
文字列リテラル限定の特別な型変換規則。
C++11 以降ではその規則は削除された。
C++03 時代でも非推奨なんだけど昔の本だとちょくちょくやってるんだよなぁ。
俺は持ってないから知らんけどロベール本とか有名な本でもそういう記述があるらしい。
文字列リテラル限定の特別な型変換規則。
C++11 以降ではその規則は削除された。
C++03 時代でも非推奨なんだけど昔の本だとちょくちょくやってるんだよなぁ。
俺は持ってないから知らんけどロベール本とか有名な本でもそういう記述があるらしい。
477デフォルトの名無しさん
2022/03/13(日) 19:51:18.33ID:hJwK9XXb ロベール本は<iostream.h>とか書いてあったしC++03ですらないんじゃない?
478デフォルトの名無しさん
2022/03/13(日) 19:54:43.65ID:mTtq0Uph >>470
すみませんやっぱりよくわからなかったです
アドレスとか調べてみてみました
元の初期化されたばかりのs2を@、ansをAとします
•#if1において
最初の(1行目の)s2は@を指している
最後の(3行目の)s2はAを指している
•#elseにおいて
最初の(左の)s2はAを指している
最後の(右の)s2は@を指している
どうやらこうなっているようなのですが、なぜ逆になるのでしょうか?
すみませんやっぱりよくわからなかったです
アドレスとか調べてみてみました
元の初期化されたばかりのs2を@、ansをAとします
•#if1において
最初の(1行目の)s2は@を指している
最後の(3行目の)s2はAを指している
•#elseにおいて
最初の(左の)s2はAを指している
最後の(右の)s2は@を指している
どうやらこうなっているようなのですが、なぜ逆になるのでしょうか?
479デフォルトの名無しさん
2022/03/13(日) 20:06:11.90ID:GnTJD4Pm480デフォルトの名無しさん
2022/03/13(日) 20:12:18.98ID:e39Fa4ck そんな調べれば一瞬で分かるようなこと自分で調べろよおっさんw
481デフォルトの名無しさん
2022/03/13(日) 20:13:33.25ID:e39Fa4ck お前の間違いをいちいち指摘するのは最近もう面倒w ヒントはあげたしw
482デフォルトの名無しさん
2022/03/13(日) 20:14:46.38ID:mTtq0Uph あなたには聞いたつもりはないのですけど…
483蟻人間 ◆T6xkBnTXz7B0
2022/03/13(日) 20:18:18.08ID:+6IhxTlU どいつもこいつもおっさん
484デフォルトの名無しさん
2022/03/13(日) 20:28:56.19ID:GnTJD4Pm おっさんって大体C++17以降アレルギーもってるよな
言語の進化に付いていくのをやめると新機能への愚痴ばかり言う老害になっちゃうんだよな
ああはなりたくないからC++40くらいまでは初心を忘れず学習し続けると心に誓うわ
言語の進化に付いていくのをやめると新機能への愚痴ばかり言う老害になっちゃうんだよな
ああはなりたくないからC++40くらいまでは初心を忘れず学習し続けると心に誓うわ
485蟻人間 ◆T6xkBnTXz7B0
2022/03/13(日) 20:35:15.04ID:+6IhxTlU WinXPをサポートしている最新のC++規格となると選択肢が少なくなるのが嫌になる。
486デフォルトの名無しさん
2022/03/13(日) 20:35:18.33ID:R0s3zSYd Rustに変わるのでは?
487デフォルトの名無しさん
2022/03/13(日) 20:56:20.40ID:e39Fa4ck linuxだとgcc 9か10がデフォルトだし、9,10のデフォルトのc++標準は14だから
現状17,20は断らないと使えないので、自分で使う分以外は可能なら11、無理でも14までにしたいというだけ
VC++2022を除き20はデフォルトだと使えないので、自分で使う分でも20は滅多に使わない
twitterとかで記事を見かけたら23までは内容見たりするけど、自分で追っかけるのは17まで、興味があれば20までかな
23だとrangeがすごいことになってるみたいね
現状17,20は断らないと使えないので、自分で使う分以外は可能なら11、無理でも14までにしたいというだけ
VC++2022を除き20はデフォルトだと使えないので、自分で使う分でも20は滅多に使わない
twitterとかで記事を見かけたら23までは内容見たりするけど、自分で追っかけるのは17まで、興味があれば20までかな
23だとrangeがすごいことになってるみたいね
488デフォルトの名無しさん
2022/03/13(日) 20:57:02.88ID:BWiYjhGb >>478
評価の順と関数の実行が同じとは限らない。
だったかな
要するに cout<<s2@<<test(s2)A<<s2B;
君の考えでは@の評価、関数test(s2)Aが実行されtest(s2)Aの評価、最後にs2Bが評価される、だろうけど
実際には先ににtest(s2)Aが実行され、その後s2@の評価、test(s2)Aの評価、s2Bの評価と続く
って感じと思う
評価の順と関数の実行が同じとは限らない。
だったかな
要するに cout<<s2@<<test(s2)A<<s2B;
君の考えでは@の評価、関数test(s2)Aが実行されtest(s2)Aの評価、最後にs2Bが評価される、だろうけど
実際には先ににtest(s2)Aが実行され、その後s2@の評価、test(s2)Aの評価、s2Bの評価と続く
って感じと思う
489デフォルトの名無しさん
2022/03/13(日) 20:57:21.78ID:GnTJD4Pm490蟻人間 ◆T6xkBnTXz7B0
2022/03/13(日) 20:59:06.58ID:+6IhxTlU LinuxでDirty Pipeの脆弱性が出たからバージョンアップしとけよ。
491デフォルトの名無しさん
2022/03/13(日) 21:22:04.20ID:mTtq0Uph >>488
>>489
ありがとうございます
https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html
それっぽいのを見つけたので詳しく読んでみたと思います
言語のバージョンは多分C++11てやつです
GCC4.4.0のコンパイラーでした
本の付録についてきたものですが、結構古いやつだったみたいです
コンパイラー新しくすればもしかしたら動くのかもしれないですけど、あんまりこういうことはしないほうが安全なんでしょうかね
>>489
ありがとうございます
https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html
それっぽいのを見つけたので詳しく読んでみたと思います
言語のバージョンは多分C++11てやつです
GCC4.4.0のコンパイラーでした
本の付録についてきたものですが、結構古いやつだったみたいです
コンパイラー新しくすればもしかしたら動くのかもしれないですけど、あんまりこういうことはしないほうが安全なんでしょうかね
492デフォルトの名無しさん
2022/03/13(日) 21:30:44.52ID:5qwn5s+6 >>478
この手の副作用が2つ以上現れるような動作は未規定か環境依存か未定義動作だったりを疑わなきゃいけない
cout<<s2<<test(s2)<<s2; の評価順序は規格で決まってる?
Noならコンパイラの気分次第で変わったりする。
何が起きてるかを知るにはコンパイル結果の逆アセンブリを見るのが一番手っ取り早い
この手の副作用が2つ以上現れるような動作は未規定か環境依存か未定義動作だったりを疑わなきゃいけない
cout<<s2<<test(s2)<<s2; の評価順序は規格で決まってる?
Noならコンパイラの気分次第で変わったりする。
何が起きてるかを知るにはコンパイル結果の逆アセンブリを見るのが一番手っ取り早い
493デフォルトの名無しさん
2022/03/13(日) 21:33:21.26ID:e39Fa4ck ちなみにVC++だと2019のオプション指定なし(C++17)で再現するんだけどねw
494デフォルトの名無しさん
2022/03/13(日) 21:35:03.87ID:e39Fa4ck あ、14だったw
https://godbolt.org/z/fcPT6jjhf
https://godbolt.org/z/fcPT6jjhf
495デフォルトの名無しさん
2022/03/13(日) 21:37:39.20ID:e39Fa4ck gccは9でデフォルト(c++14)指定でも再現しない
496デフォルトの名無しさん
2022/03/13(日) 23:06:02.21ID:1ZaIS7m7 おまえもうハゲ始めてるのに何若者のフリしてんだよw
497デフォルトの名無しさん
2022/03/13(日) 23:19:39.35ID:bI6DiOQ5 なんやおっさんが書きこんだらあかんのか
おっさんがC++やったらあかんのか、ええおい!
おっさんがC++やったらあかんのか、ええおい!
498デフォルトの名無しさん
2022/03/13(日) 23:47:54.26ID:e39Fa4ck 今どきこんなスレ見てるのおっさんしかいねーよw
499デフォルトの名無しさん
2022/03/14(月) 00:10:40.47ID:ci4mynDi もう5ch自体がオッサンのすくつやしのう
500デフォルトの名無しさん
2022/03/14(月) 02:20:02.12ID:rjFiO5pI >>499
YouTubeで動画投降して、視聴者の年齢層を見てみたら、100人以上ユニークユーザー
数がいるのに、なぜか、45〜54歳が 100% になっていた。
日本にはこの年齢しか存在せず、後は幻影であることが明らかと成った。
YouTubeで動画投降して、視聴者の年齢層を見てみたら、100人以上ユニークユーザー
数がいるのに、なぜか、45〜54歳が 100% になっていた。
日本にはこの年齢しか存在せず、後は幻影であることが明らかと成った。
501デフォルトの名無しさん
2022/03/14(月) 02:28:09.93ID:U570WKgz URLを提示しないと何とも・・・内容次第では?
502デフォルトの名無しさん
2022/03/14(月) 09:03:41.97ID:HoF8kO8q503デフォルトの名無しさん
2022/03/14(月) 11:38:57.54ID:ndyVaXT0 昭和ってことは戦争体験したんですね
504デフォルトの名無しさん
2022/03/14(月) 12:26:33.29ID:GQP59fXj 生家のすぐ隣が根岸の米軍住宅だったのが俺の最も古い記憶だな
505デフォルトの名無しさん
2022/03/14(月) 12:27:46.01ID:alz+gcb+ カトラーも昨日で80歳なんやで
506デフォルトの名無しさん
2022/03/14(月) 12:28:28.21ID:7hHUAGdp507デフォルトの名無しさん
2022/03/14(月) 12:32:31.77ID:VKZDzId0 c++17までカバーしてる良書教えてちょ
508デフォルトの名無しさん
2022/03/14(月) 13:39:35.57ID:9629WIm4 俺の周りだと本物の老害は数が少なくて、脳が老害化してるアラサー前の若者が大多数だな
509デフォルトの名無しさん
2022/03/14(月) 14:53:18.27ID:2N61p2oq ニュース ・ トレンド
世界供給の約半分カバー
トレンドトピック: マック最終日、半導体不足
ツイッターのトレンドだけ見てたらAppleのマックのほうに見えるよな
世界供給の約半分カバー
トレンドトピック: マック最終日、半導体不足
ツイッターのトレンドだけ見てたらAppleのマックのほうに見えるよな
510デフォルトの名無しさん
2022/03/14(月) 16:35:39.58ID:GQP59fXj >>506
美濃屋の工場らへん
美濃屋の工場らへん
511デフォルトの名無しさん
2022/03/14(月) 18:24:00.75ID:7hHUAGdp >>510
もしかして本牧あたり?
もしかして本牧あたり?
512デフォルトの名無しさん
2022/03/14(月) 20:13:17.28ID:GQP59fXj513デフォルトの名無しさん
2022/03/15(火) 22:33:04.75ID:x6RxSJEa 追ってたらオッサンの会話にしか見えないやんけw
514デフォルトの名無しさん
2022/03/15(火) 23:43:47.86ID:IA+izEeV >>508
いや実際今の若人のほうが老害化(頭がカチカチ)になってるパターン多いよ
なんつかーSNSとかの弊害だろうな、方法論にはつねに正解があってそこからはずれるのは全部ダメ!
みたいな、自分で試さずに「誰某というカリスマが言うてるのが正しい」みたいな発想のやつが多い
いや実際今の若人のほうが老害化(頭がカチカチ)になってるパターン多いよ
なんつかーSNSとかの弊害だろうな、方法論にはつねに正解があってそこからはずれるのは全部ダメ!
みたいな、自分で試さずに「誰某というカリスマが言うてるのが正しい」みたいな発想のやつが多い
515デフォルトの名無しさん
2022/03/16(水) 00:07:07.20ID:kR1ttM2X 常にググって解法らしきものを見つけることを研鑽してきた弊害やろな。
誰かの踏襲しか出来ん、本人一人しかやってない、
どこにも参考資料なしとなったら思考停止か
もしくはあきらめちまう層。
誰かの踏襲しか出来ん、本人一人しかやってない、
どこにも参考資料なしとなったら思考停止か
もしくはあきらめちまう層。
516デフォルトの名無しさん
2022/03/16(水) 00:36:18.16ID:892EcJv9 分野の蓄積が多くなるとそうなのかもね
517デフォルトの名無しさん
2022/03/16(水) 01:22:56.72ID:dDBzFjnz ム板でC++の規格以外の話をすることは板違い
518デフォルトの名無しさん
2022/03/16(水) 08:57:09.69ID:eFhooB6a519デフォルトの名無しさん
2022/03/16(水) 09:28:03.54ID:9b9buJuo >>518
朝鮮人は板違い
朝鮮人は板違い
520デフォルトの名無しさん
2022/03/16(水) 09:47:16.21ID:sZ1wd+Ly 和製言語つーとRubyとか?
521デフォルトの名無しさん
2022/03/16(水) 10:01:22.67ID:qWEoTKGw >>519
ジャッッッッッップwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ジャッッッッッップwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
522デフォルトの名無しさん
2022/03/16(水) 10:50:04.72ID:sZ1wd+Ly523デフォルトの名無しさん
2022/03/16(水) 11:00:56.73ID:UOk2lOR/524デフォルトの名無しさん
2022/03/16(水) 11:26:21.48ID:NlrnkDXA >>521
火病w
火病w
525デフォルトの名無しさん
2022/03/16(水) 11:33:19.05ID:FLjIdsXf さすがに極東板かマ板行け。
526デフォルトの名無しさん
2022/03/16(水) 11:41:44.02ID:w0SS0fac ネタにマジレスするのもあれだが、国民的アプリすらも実質韓国産という惨状なのに韓国をバカに出来る神経が本当に分からない
まぁそれこそアメリカ人とかであれば分かるが
まぁそれこそアメリカ人とかであれば分かるが
527デフォルトの名無しさん
2022/03/16(水) 11:52:37.30ID:sCgw3/BF528デフォルトの名無しさん
2022/03/16(水) 11:58:06.63ID:ken1LPi5529デフォルトの名無しさん
2022/03/16(水) 12:29:23.19ID:eFhooB6a530デフォルトの名無しさん
2022/03/16(水) 12:29:53.35ID:fL7hhvH/ >>529
祖国にお帰り
祖国にお帰り
531デフォルトの名無しさん
2022/03/16(水) 15:21:21.65ID:OMEE91WJ EclipseでGNU Autotoolsでビルドしたいんだけど、ワンクリックでファイル構成をパースしてMakefile.amを作ってくれるプラグインてないんかな?
532デフォルトの名無しさん
2022/03/16(水) 16:43:46.25ID:IF2KaGKL533デフォルトの名無しさん
2022/03/16(水) 17:21:01.73ID:dC1HWmI+ defaultって単語が熱いなぁ
534デフォルトの名無しさん
2022/03/16(水) 17:26:44.65ID:sZ1wd+Ly ロシア国債?
535デフォルトの名無しさん
2022/03/16(水) 17:43:54.03ID:AUMfJKJU ルーブルをreturnするから問題ない
536デフォルトの名無しさん
2022/03/16(水) 17:44:36.81ID:dC1HWmI+ C++11で正式採用されて11年経つというのに関数のdefault宣言を一度も使ったことがないわ
537デフォルトの名無しさん
2022/03/16(水) 17:47:40.89ID:lLYtmIck ええ…
538デフォルトの名無しさん
2022/03/16(水) 17:49:13.58ID:dC1HWmI+ >>535
迷惑度でいうとreturnというより例外クラスをthrowする感じに近いですね
迷惑度でいうとreturnというより例外クラスをthrowする感じに近いですね
539デフォルトの名無しさん
2022/03/16(水) 17:51:06.34ID:sZ1wd+Ly540デフォルトの名無しさん
2022/03/16(水) 17:54:01.36ID:dC1HWmI+ 短いとは?
541デフォルトの名無しさん
2022/03/16(水) 17:56:55.95ID:sZ1wd+Ly ソースコードの文字数
542デフォルトの名無しさん
2022/03/16(水) 19:05:34.58ID:gvdy2Zu4 bool oprator==(const ThisClass&)const = default;
は便利だぞ
は便利だぞ
543デフォルトの名無しさん
2022/03/16(水) 19:32:49.28ID:YdzJshEX {}の定義はtrivial判定にならないからなあ
544デフォルトの名無しさん
2022/03/16(水) 20:15:30.86ID:dC1HWmI+ 関数のdefault宣言を今まで一度も使ったこと人、正直に手を挙げなさい
545デフォルトの名無しさん
2022/03/16(水) 20:54:55.18ID:J1wyaesr ノ
546デフォルトの名無しさん
2022/03/16(水) 22:03:43.15ID:LiWeOEyq そもそもdefault宣言がわからない
何?
何?
547デフォルトの名無しさん
2022/03/16(水) 22:17:44.96ID:jNwWVkZm struct C{
C();
C(const C&);
C(C&&);
C& operator=(const C&);
C& operator=(C&&);
~C();
// fields
int i;
std::string s;
};
class/structのうちコンストラクタとかの特殊関数を「何も考えずに実装したらこうなるよね」ってのを明示的に宣言する。
上のstructに初期化用の C(int, std::string); も追加するけど元のコンストラクタもそのまま使いたいときとか C()=default; を書いておく。
C();
C(const C&);
C(C&&);
C& operator=(const C&);
C& operator=(C&&);
~C();
// fields
int i;
std::string s;
};
class/structのうちコンストラクタとかの特殊関数を「何も考えずに実装したらこうなるよね」ってのを明示的に宣言する。
上のstructに初期化用の C(int, std::string); も追加するけど元のコンストラクタもそのまま使いたいときとか C()=default; を書いておく。
548デフォルトの名無しさん
2022/03/16(水) 22:32:26.86ID:aL91bHGW549デフォルトの名無しさん
2022/03/16(水) 22:40:15.82ID:J1wyaesr550デフォルトの名無しさん
2022/03/16(水) 23:08:39.16ID:jNwWVkZm >>548
T&&は右辺値参照
C++11で導入された「もう使わない値」を使いわますための仕組み
わかりやすい例だと
std::vector<int> mk10000(){
// 10000要素のvectorを適当に作って返す
}
struct C{
using ivec=std::vector<int>;
ivec _v;
C(const ivec&v): _v(v){}
C(ivec&&v): _v(std::move(v)){}
};
int main(){
C c(mk10000());
}
const T&のやつしかないと、vectorが持ってる10000要素を全部コピーするしかないが、
(その直後にもう使わないコピー元を破棄しなきゃいけない)
T&&のやつがあるとvectorが内部で持ってるポインタを差し替えるだけで済む。
T&&は右辺値参照
C++11で導入された「もう使わない値」を使いわますための仕組み
わかりやすい例だと
std::vector<int> mk10000(){
// 10000要素のvectorを適当に作って返す
}
struct C{
using ivec=std::vector<int>;
ivec _v;
C(const ivec&v): _v(v){}
C(ivec&&v): _v(std::move(v)){}
};
int main(){
C c(mk10000());
}
const T&のやつしかないと、vectorが持ってる10000要素を全部コピーするしかないが、
(その直後にもう使わないコピー元を破棄しなきゃいけない)
T&&のやつがあるとvectorが内部で持ってるポインタを差し替えるだけで済む。
551デフォルトの名無しさん
2022/03/16(水) 23:19:48.63ID:0TydPa2f552デフォルトの名無しさん
2022/03/16(水) 23:26:37.67ID:Jym8C6W+ 昔はswap咬ましてたヤツだな
553デフォルトの名無しさん
2022/03/17(木) 00:06:29.74ID:duMzaOgi shared_ptr使えばいいじゃない
554デフォルトの名無しさん
2022/03/17(木) 00:35:48.54ID:Oo+Bui2i メモリポインタの差し替えか
555デフォルトの名無しさん
2022/03/17(木) 00:43:42.18ID:DrTp92yO556デフォルトの名無しさん
2022/03/17(木) 01:50:00.57ID:jsnVHM5N >>544
(´・ω・`)の
(´・ω・`)の
557デフォルトの名無しさん
2022/03/17(木) 01:50:25.35ID:faeKJv0z そんなことくらいで頭が痛くなるなら、むしろやめとけw
558デフォルトの名無しさん
2022/03/17(木) 03:32:17.05ID:kCjHZQsl 昨今のコード書かない言語オタクのオナニー拡張はスルーしてよい。
559デフォルトの名無しさん
2022/03/17(木) 13:38:21.60ID:faeKJv0z そのまま動かない部分コードだけ書くバカを除いたら、大抵のスレは多分俺しかコード書いてないけどねw
560デフォルトの名無しさん
2022/03/17(木) 13:52:55.92ID:86Z8hvJ4 ム板で「俺はコード書いてるぞ、どうだ偉いだろうエッヘン」
これ寒すぎるんだけど・・・
これ寒すぎるんだけど・・・
561デフォルトの名無しさん
2022/03/17(木) 14:50:03.04ID:zTqRydhk ム板だからこそコード書く奴は偉いと思うぞ
ただ実際に書いてる奴はいちいちそんなことを自慢気に書いたりしないけどなw
ただ実際に書いてる奴はいちいちそんなことを自慢気に書いたりしないけどなw
562デフォルトの名無しさん
2022/03/17(木) 14:53:55.54ID:86Z8hvJ4 偉いのか? やっと一人前の板民というだけだろ
コード書かないやつがム板ではアウェーなだけで
そこから相対的に見て偉いと言うことにどんな意味があるんだ
コード書かないやつがム板ではアウェーなだけで
そこから相対的に見て偉いと言うことにどんな意味があるんだ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 港区、中国に宣戦布告 中国外務省をおちょくる掲示物を展示 [175344491]
- 【ほんこん悲報】吉本新喜劇の中国公演が中止に! [523957489]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
