次スレを立てる時は本文の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
レス数が900を超えています。1000を超えると表示できなくなるよ。
2019/04/01(月) 22:17:05.84ID:wmfpIKt/
844デフォルトの名無しさん
2019/06/08(土) 20:14:05.51ID:f9OaJysQ やっぱlog表現にすべきやな
845デフォルトの名無しさん
2019/06/08(土) 20:18:41.89ID:16S9+5P1 メモリを無限に使えばええ
846デフォルトの名無しさん
2019/06/08(土) 20:36:16.78ID:JxaHk6L1 >>843
判定のためにdoubleにキャストして、みたいな?
判定のためにdoubleにキャストして、みたいな?
847デフォルトの名無しさん
2019/06/08(土) 20:37:46.29ID:KGab8pqO >>846
100がオーバーフローする最大値なら100と予め整数比較するだけだろ
100がオーバーフローする最大値なら100と予め整数比較するだけだろ
848デフォルトの名無しさん
2019/06/08(土) 20:39:53.83ID:JxaHk6L1 なるほど n=100くらいまで全て持っていればいいと。
まあそうかもな。
まあそうかもな。
849デフォルトの名無しさん
2019/06/09(日) 02:20:42.24ID:49FyDaAW C++知らないことが多すぎてちょっと勉強するだけでもあーあそここれ使って書いてればよかったーってなることばっかりだわ
しばらく前に書いたコード見直したくねぇ
しばらく前に書いたコード見直したくねぇ
850デフォルトの名無しさん
2019/06/09(日) 02:37:22.98ID:bDrC2N4p そのうちこれわざわざこれ使って書く必要なかったなになるゾ
851デフォルトの名無しさん
2019/06/09(日) 02:55:27.45ID:5fLgSAOM そしてC言語が正解だったことに気づく
852デフォルトの名無しさん
2019/06/09(日) 02:57:41.57ID:bDrC2N4p それはない
コンテナはやっぱり便利
動的ポリモーフィズムは必要ねえなぁ
テンプレートで十分
コンテナはやっぱり便利
動的ポリモーフィズムは必要ねえなぁ
テンプレートで十分
853デフォルトの名無しさん
2019/06/09(日) 03:16:06.77ID:/cpSAd8E854デフォルトの名無しさん
2019/06/09(日) 09:31:54.10ID:/FZVYwra テンプレートもそろそろガンだってことが普通に認識されるようになるだろうな。
標準のテンプレートだけ使ってりゃいいんだよ(それでも使いこなせないだろうが。)
バカの作るテンプレートライブラリほどひどいものはない。
標準のテンプレートだけ使ってりゃいいんだよ(それでも使いこなせないだろうが。)
バカの作るテンプレートライブラリほどひどいものはない。
855デフォルトの名無しさん
2019/06/09(日) 10:15:07.88ID:Gi1Jt9cY そりゃ堂々巡りの言い方だろ
酷い奴の作るテンプレートライブラリは酷い。そりゃそうだ
テンプレートライブラリが酷けりゃ作ったヤツは酷い。こうなるわな
酷い奴の作るテンプレートライブラリは酷い。そりゃそうだ
テンプレートライブラリが酷けりゃ作ったヤツは酷い。こうなるわな
856デフォルトの名無しさん
2019/06/09(日) 10:55:06.08ID:jMWe1oeX857デフォルトの名無しさん
2019/06/09(日) 10:55:18.69ID:g07iT4nf >>854
どこが癌なのか教えてください。
どこが癌なのか教えてください。
858デフォルトの名無しさん
2019/06/09(日) 12:52:56.51ID:Oof3fMf0 いやテンプレート「ライブラリ」ともなれば十分な機能と性能と使いやすさを全立させるには必要スキルがダンチになる印象
そうではなくて問題に特化した形でテンプレートを使ってコードの記述量を激減させることは常人のもできる
ただし他人に理解してもらうのが困難になるからそういのうはモジュール内に囲ってテンプレートそのものを外に出さなければ宜しい
もし使いにくいとか理解しがたいだけでなく動作品質に問題があるなら、
その場合は問題のある人物が取り替えられる方向へと管理者のソーシャルスキルの発動の時間である
そうではなくて問題に特化した形でテンプレートを使ってコードの記述量を激減させることは常人のもできる
ただし他人に理解してもらうのが困難になるからそういのうはモジュール内に囲ってテンプレートそのものを外に出さなければ宜しい
もし使いにくいとか理解しがたいだけでなく動作品質に問題があるなら、
その場合は問題のある人物が取り替えられる方向へと管理者のソーシャルスキルの発動の時間である
859デフォルトの名無しさん
2019/06/09(日) 13:05:27.14ID:bDrC2N4p >>858
それが言いたかったんだよ、うん
それが言いたかったんだよ、うん
860デフォルトの名無しさん
2019/06/09(日) 15:35:10.73ID:oBKk3YD0 正直アプリレイヤーでテンプレートを駆使したライブラリを作ることはあんまない
使う側からすれば便利な仕組みだわ
これがライブラリを提供する側になると途端に言語仕様と環境との闘いが始まる
使う側からすれば便利な仕組みだわ
これがライブラリを提供する側になると途端に言語仕様と環境との闘いが始まる
861デフォルトの名無しさん
2019/06/09(日) 15:42:19.87ID:5fLgSAOM 何回同じ話するの?
障害あるの?
障害あるの?
862デフォルトの名無しさん
2019/06/09(日) 15:46:33.89ID:S7l1hTT6 いいからお前はC言語使ってろよ
863デフォルトの名無しさん
2019/06/09(日) 15:46:44.77ID:aCcbeNVM >>859
嘘つけ
嘘つけ
864デフォルトの名無しさん
2019/06/09(日) 16:02:49.06ID:P23LzvOV テンプレートは、コンパイラのエラーや警告が意味不明なのが玉にキズ。
865デフォルトの名無しさん
2019/06/09(日) 16:08:45.43ID:5fLgSAOM 同じ話を2回する奴はガイジ死ね
866デフォルトの名無しさん
2019/06/09(日) 16:17:48.67ID:Q5Gsequk867デフォルトの名無しさん
2019/06/09(日) 16:40:22.23ID:/FZVYwra クソライブラリ作るやつが絶滅するまで。
868デフォルトの名無しさん
2019/06/09(日) 17:20:43.24ID:g07iT4nf そのくそライブラリを使わないといけないの?
869デフォルトの名無しさん
2019/06/09(日) 19:35:59.29ID:5fLgSAOM だったら無駄なことしてないで直接乗り込んで二度とライブラリを作れないようにしてこいやゴミ
870デフォルトの名無しさん
2019/06/09(日) 20:34:56.29ID:Oof3fMf0 1. より優れたライブラリを提供すれば良い
2. 労力の関係で0スタートで新規作成は無理ということであれば
糞ライブラリをうまくwrapしてせめて使いやすい形にして見せれば良い
3. 2の場合も中身は追って作り直すこと
2. 労力の関係で0スタートで新規作成は無理ということであれば
糞ライブラリをうまくwrapしてせめて使いやすい形にして見せれば良い
3. 2の場合も中身は追って作り直すこと
871デフォルトの名無しさん
2019/06/09(日) 21:12:37.07ID:Gi1Jt9cY 4. 自身の頭脳がへっぽこだと、高度すぎるライブラリは全く理解できない。
自分が使いこなせないものはダメである。
わたしの頭のレヴェルに合わせろ。
自分が使いこなせないものはダメである。
わたしの頭のレヴェルに合わせろ。
872デフォルトの名無しさん
2019/06/09(日) 21:22:41.55ID:/FZVYwra 俺なら使いこなせるって持ってきたやつが一番使えてないパターンなんだが。。
873デフォルトの名無しさん
2019/06/09(日) 21:28:31.78ID:5fLgSAOM 持ってくるwww
2ちゃんガイジのくせに偉くなったと錯覚してて草
2ちゃんガイジのくせに偉くなったと錯覚してて草
874デフォルトの名無しさん
2019/06/10(月) 00:33:49.15ID:3V4oen/z エモーショナルエンジン搭載。
その日の気分で結果が変わります。
その日の気分で結果が変わります。
875デフォルトの名無しさん
2019/06/10(月) 00:36:48.31ID:jI97QXDl それが!
PS2!?
PS2!?
876デフォルトの名無しさん
2019/06/10(月) 08:57:25.07ID:SLwWwvWV 仕事で無駄に時間かけてテンプレート使ったライブラリ(という名のほぼ何もしないクソコード)書かれたら殺意も湧くだろうな、ネットでもそういうのはたまに見かける
熟練者が長年かけて作った、良くできたフリーのライブラリしか知らんアマチュアの人にはわからんかもしれんが
熟練者が長年かけて作った、良くできたフリーのライブラリしか知らんアマチュアの人にはわからんかもしれんが
877デフォルトの名無しさん
2019/06/10(月) 09:53:37.04ID:5SR5C4JK そんなもん飼ってる上司の責任だろ
糞ができるまで放置してたのか?
糞ができるまで放置してたのか?
878デフォルトの名無しさん
2019/06/10(月) 13:21:16.85ID:SLwWwvWV879デフォルトの名無しさん
2019/06/10(月) 14:24:51.11ID:MigAkPcZ テンプレートってそんな身構えるようなものかな?
外部ツールとマクロで武装した旧黒魔術系のコードに比べたら、なんぼかましな気がするがw
外部ツールとマクロで武装した旧黒魔術系のコードに比べたら、なんぼかましな気がするがw
880デフォルトの名無しさん
2019/06/10(月) 14:45:47.43ID:SLwWwvWV もちろん便利にはなったけど、STL以来むやみにテンプレートを持ち上げる風潮が・・・
初心者が上級者を気取りたくてテンプレート持て囃し、それだけに留まらずオブジェクト指向や昔ながらのテクニックをこき下ろしてるのを良く見かける
実行時、コンパイル時、プリプロセス時でそれぞれメリットデメリットあるんだけどなぁ
初心者が上級者を気取りたくてテンプレート持て囃し、それだけに留まらずオブジェクト指向や昔ながらのテクニックをこき下ろしてるのを良く見かける
実行時、コンパイル時、プリプロセス時でそれぞれメリットデメリットあるんだけどなぁ
881デフォルトの名無しさん
2019/06/10(月) 15:05:36.77ID:psqZaESW プロ(仕事)の話と初心者の話が一緒になっちゃってるな
882デフォルトの名無しさん
2019/06/10(月) 15:44:38.79ID:EWMjDPPL 初心者を指導せずほったらかしにしてる上司がいるらしい
883デフォルトの名無しさん
2019/06/10(月) 16:11:30.07ID:psqZaESW884デフォルトの名無しさん
2019/06/10(月) 17:43:59.55ID:sRT+YLgZ できる奴が書いたテンプレートライブラリを使いこなせない奴が、グダグダ文句言っているだけだろ。
言っている奴ができる奴なら文句言う前に修正しているわ
言っている奴ができる奴なら文句言う前に修正しているわ
885デフォルトの名無しさん
2019/06/10(月) 18:56:35.92ID:OlE51f/u まあマクロとかテンプレートとかみんな一度はやり過ぎるぐらい作り込んだことあるだろ
多分>>854をそれを経験した直後ぐらいなんだろ
多分>>854をそれを経験した直後ぐらいなんだろ
886デフォルトの名無しさん
2019/06/10(月) 19:08:07.57ID:YayWwtn2 無職がおしごとごっこでつか?w
以下、職業プログラマじゃない者は書き込み禁止
以下、職業プログラマじゃない者は書き込み禁止
887デフォルトの名無しさん
2019/06/10(月) 19:10:51.22ID:ZJKeta/Q マ板でやれ
888デフォルトの名無しさん
2019/06/10(月) 19:16:09.39ID:EWMjDPPL 労働厨とかいう下級国民
889デフォルトの名無しさん
2019/06/10(月) 19:22:32.34ID:5SR5C4JK お前らautoとdecltype(auto)の違いとか言語仕様の話しで盛り上がれよ
890デフォルトの名無しさん
2019/06/10(月) 19:22:55.85ID:SLwWwvWV891デフォルトの名無しさん
2019/06/10(月) 19:27:55.90ID:EWMjDPPL イテレータを受け入れる関数もオーバーロードで書いてるんですか?
892デフォルトの名無しさん
2019/06/10(月) 20:00:14.92ID:J/wxl4Rl893デフォルトの名無しさん
2019/06/10(月) 20:34:00.20ID:0NZRWrrl auto int i =0;
K&Rはこれでいけたんだがのう
K&Rはこれでいけたんだがのう
894デフォルトの名無しさん
2019/06/10(月) 20:37:49.85ID:W52LT1uh int不要とかそういう話?
895デフォルトの名無しさん
2019/06/10(月) 20:48:57.81ID:9ReisgX6 decltype(auto)はあまり使わないなぁ
長いし
面倒だからauto&&で受けちゃうし
戻り値推論もauto&とかで済ましちゃう
長いし
面倒だからauto&&で受けちゃうし
戻り値推論もauto&とかで済ましちゃう
896デフォルトの名無しさん
2019/06/10(月) 21:07:56.06ID:Ii7tq5Jr >>884
こういうクソな思想が広まってるからクソライブラリがあとを絶たないわけだ。
こういうクソな思想が広まってるからクソライブラリがあとを絶たないわけだ。
897デフォルトの名無しさん
2019/06/10(月) 21:35:34.30ID:9ReisgX6 クソクソ言うだけで、何がどう悪いとすら具体的に例を上げないのだからもうね
898デフォルトの名無しさん
2019/06/10(月) 21:36:31.46ID:YayWwtn2899デフォルトの名無しさん
2019/06/10(月) 21:55:37.04ID:EWMjDPPL900デフォルトの名無しさん
2019/06/10(月) 22:04:08.27ID:irHYgLSK utf8の文字定数って実質ASCIIしか使えないのかコレ
901デフォルトの名無しさん
2019/06/10(月) 22:42:42.99ID:J/wxl4Rl902デフォルトの名無しさん
2019/06/10(月) 23:08:47.95ID:j+S7HtNV ていうかテンプレートが絡むととたんに問題解決できなくなるプロ
903デフォルトの名無しさん
2019/06/10(月) 23:51:39.69ID:Ii7tq5Jr テンプレートの問題なんてもう語り尽くしたわ。
それでもバカがあと立たないのもずっと見てきた。。
それでもバカがあと立たないのもずっと見てきた。。
904デフォルトの名無しさん
2019/06/11(火) 00:19:02.01ID:QaZP7mkq テンプレートの問題について何も聞いてないし、その状態で語り尽くしたというなら何も問題はないな。
905デフォルトの名無しさん
2019/06/11(火) 00:19:41.89ID:kvB4pOtR 新規参入者がいるってことだから恐悦至極なのではないか
906デフォルトの名無しさん
2019/06/11(火) 00:25:55.32ID:PO+d8+1v (果たして彼にとってはテンプレートのみが例外的に特殊な問題であって
テンプレート以外については十分なスキルを有しているのであろうか…
テンプレート以外については十分なスキルを有しているのであろうか…
907デフォルトの名無しさん
2019/06/11(火) 00:53:07.47ID:7MvjruKl コンパイル時に発見できるような問題はそもそもたいして深刻な問題ではない。
908デフォルトの名無しさん
2019/06/11(火) 01:02:03.28ID:TJ/Njjhl909デフォルトの名無しさん
2019/06/11(火) 01:13:48.45ID:7MvjruKl910デフォルトの名無しさん
2019/06/11(火) 01:26:55.77ID:TJ/Njjhl そもそも文脈不明な中でそれだけ書かれてもなぁ
コンパイル時の分かるような問題かどうかではなく、エラーをコンパイル時に吐いてくれるとデバッグが捗るみたいに書けば良いのに
実際、assertやstatic_assert
SFINAE使ってのなるべく上位レイヤーでエラー発生させるのは重要でしょ
コンパイル時の分かるような問題かどうかではなく、エラーをコンパイル時に吐いてくれるとデバッグが捗るみたいに書けば良いのに
実際、assertやstatic_assert
SFINAE使ってのなるべく上位レイヤーでエラー発生させるのは重要でしょ
911デフォルトの名無しさん
2019/06/11(火) 01:51:30.87ID:GDgSrcmQ テンプレート駆使したライブラリ使うと最適化ありなしで速度かなり変わるの困る
デバッグビルドだとくそおっそくてデバッグがままならん
なんか良い解決法ないですかね?
デバッグビルドだとくそおっそくてデバッグがままならん
なんか良い解決法ないですかね?
912デフォルトの名無しさん
2019/06/11(火) 02:00:33.22ID:TJ/Njjhl 適当なところで切る
処理の定義を別ヘッダに分けて、特定のソースファイルで定義ヘッダを読み、デバッグが必要ないところは最適化Onで明示的インスタンス化をする
処理の定義を別ヘッダに分けて、特定のソースファイルで定義ヘッダを読み、デバッグが必要ないところは最適化Onで明示的インスタンス化をする
913デフォルトの名無しさん
2019/06/11(火) 02:07:42.02ID:7MvjruKl914デフォルトの名無しさん
2019/06/11(火) 02:12:17.79ID:bsFR+Nzy C++14以降でテンプレートのデザインパターンの参考書って無い?
915デフォルトの名無しさん
2019/06/11(火) 02:42:42.36ID:Pe41E3Zb テンプレート完全ガイドの2版が出てたけど、英語
916デフォルトの名無しさん
2019/06/11(火) 22:59:30.61ID:GDgSrcmQ917デフォルトの名無しさん
2019/06/12(水) 00:12:16.75ID:EuvWtF/E VSならプロジェクトじゃなくソースのプロパティ選んで最適化変えればそこだけ反映される
まあ、それ用の構成作っておくのが安全
CMakeはわからん
makeなら簡単だけど
まあ、それ用の構成作っておくのが安全
CMakeはわからん
makeなら簡単だけど
918デフォルトの名無しさん
2019/06/12(水) 09:35:50.45ID:eCiQ25Tx c++の場合、このコンパイラでは通るけどこっちのコンパイラでは通らないとかが
普通にある方が問題。
静的だとか動的かとかそういう問題とはまた違う。
普通にある方が問題。
静的だとか動的かとかそういう問題とはまた違う。
919デフォルトの名無しさん
2019/06/12(水) 09:39:04.87ID:dM+mHpC4920デフォルトの名無しさん
2019/06/12(水) 12:59:45.38ID:pwRz5TOC921デフォルトの名無しさん
2019/06/12(水) 16:21:34.99ID:7KGE0Knu Java、C#は「コンパイラが1つしかない言語」に含む?
どのみち比較の対象が少ないね。
どのみち比較の対象が少ないね。
922デフォルトの名無しさん
2019/06/12(水) 16:22:16.09ID:7cC3bFV5 普通はコンパイラは何種類もない
923デフォルトの名無しさん
2019/06/12(水) 16:24:55.92ID:EuvWtF/E そこら辺もバージョン違いで色々あるよね
924デフォルトの名無しさん
2019/06/12(水) 16:31:31.49ID:7cC3bFV5 そんなの当たり前だろ
925デフォルトの名無しさん
2019/06/12(水) 16:40:28.14ID:7KGE0Knu 「コンパイラが通らない問題を解消するためにビルドツールをご用意いたしました。」
で、configureやらcmakeやらantやらといった車輪の再発明が続々生まれてくる。
で、configureやらcmakeやらantやらといった車輪の再発明が続々生まれてくる。
926デフォルトの名無しさん
2019/06/12(水) 17:19:03.04ID:79FLB/Pn ブラウザ戦争に近いものがあるな
927デフォルトの名無しさん
2019/06/12(水) 18:48:39.87ID:eqhLCWed モダンなC++を学ぶべく右辺値参照について勉強しているのですがさっぱりわかりません
本に右辺値参照は実際は左辺値でstd::moveは実際は何もmoveしない
と書いてありましたが本当に意味がわからない
言葉遊びはいいからわかりやすく教えてくれ
本に右辺値参照は実際は左辺値でstd::moveは実際は何もmoveしない
と書いてありましたが本当に意味がわからない
言葉遊びはいいからわかりやすく教えてくれ
928デフォルトの名無しさん
2019/06/12(水) 19:07:22.06ID:iR6eT4Op929蟻人間 ◆T6xkBnTXz7B0
2019/06/12(水) 19:12:10.36ID:KzwP9Gzw >>927
誤解を恐れずに言うと、std::moveを付けると、&&が付いた特殊な型になる。その型のことを右辺値参照という。ムーヴコンストラクターやムーヴ代入などは、その特殊な型に対して行われる。
誤解を恐れずに言うと、std::moveを付けると、&&が付いた特殊な型になる。その型のことを右辺値参照という。ムーヴコンストラクターやムーヴ代入などは、その特殊な型に対して行われる。
930蟻人間 ◆T6xkBnTXz7B0
2019/06/12(水) 19:17:22.52ID:KzwP9Gzw &&が付いた引数は、中身の所有権を他の場所に譲り渡すことができる。
例えば、文字列クラスだったら、ポインタが指し示す文字列の所有権だ。所有権をコピーせずに、移動するだけなら、処理コストが低くて済む。
例えば、文字列クラスだったら、ポインタが指し示す文字列の所有権だ。所有権をコピーせずに、移動するだけなら、処理コストが低くて済む。
>>930
所有権って何ですか?
私は一つの関数で new/malloc() した領域を、別の関数に渡し、さらに別の関数で delete/free() してますが、効率よくそういうことをする場合には所有権という架空のフレームは邪魔だと思います
所有権って何ですか?
私は一つの関数で new/malloc() した領域を、別の関数に渡し、さらに別の関数で delete/free() してますが、効率よくそういうことをする場合には所有権という架空のフレームは邪魔だと思います
932デフォルトの名無しさん
2019/06/12(水) 19:36:15.70ID:qnyyQkgz >>931
まさにそれをする為のフレームやん。
まさにそれをする為のフレームやん。
933デフォルトの名無しさん
2019/06/12(水) 19:38:15.23ID:eqhLCWed934デフォルトの名無しさん
2019/06/12(水) 19:45:51.10ID:qnyyQkgz 右辺値というのはほっといたら消える。
どうせ消えるんだったら右辺値が確保してるメモリ、こっちでちゃんと解放するからもらうね→所有権の移動
もちろん所有権移動したので右辺値でメモリ解放しちゃダメよ。
どうせ消えるんだったら右辺値が確保してるメモリ、こっちでちゃんと解放するからもらうね→所有権の移動
もちろん所有権移動したので右辺値でメモリ解放しちゃダメよ。
935デフォルトの名無しさん
2019/06/12(水) 19:47:37.87ID:GZDxeRSP >>933
所有権が移るというか...
T&& x を引数に持つ関数(コンストラクタが多い)は右辺値を受け取るけど、
そこで x の所有するリソースを
分捕っていいという「慣習」「イディオム」があるというだけなんだよ。
所有権が移るというか...
T&& x を引数に持つ関数(コンストラクタが多い)は右辺値を受け取るけど、
そこで x の所有するリソースを
分捕っていいという「慣習」「イディオム」があるというだけなんだよ。
936蟻人間 ◆T6xkBnTXz7B0
2019/06/12(水) 20:10:41.45ID:0iE+TYdc >>933
そこを厳密に理解するには、lvalue, rvalue, prvalueなどの値カテゴリを理解しないといけない。
https://ja.cppreference.com/w/cpp/language/value_category
要するにlvalueをxvalueにするために、std::moveを使う。
remove_referenceは、type traitsと呼ばれる「型に対する演算」を行っているに過ぎない。
std::moveの実装のremove_referenceは、冗長な参照を削除している。
type traitsは、テンプレートに慣れないと使いどころが分からないだろう。
そこを厳密に理解するには、lvalue, rvalue, prvalueなどの値カテゴリを理解しないといけない。
https://ja.cppreference.com/w/cpp/language/value_category
要するにlvalueをxvalueにするために、std::moveを使う。
remove_referenceは、type traitsと呼ばれる「型に対する演算」を行っているに過ぎない。
std::moveの実装のremove_referenceは、冗長な参照を削除している。
type traitsは、テンプレートに慣れないと使いどころが分からないだろう。
937蟻人間 ◆T6xkBnTXz7B0
2019/06/12(水) 20:24:57.03ID:0iE+TYdc class STRING
{
public:
...
// ムーヴコンストラクタ(一例です)。
STRING(STRING&& s) : m_ptr(nullptr)
{
std::swap(m_ptr, s.m_ptr);
}
// ムーヴ代入(一例です)。
STRING& operator=(STRING&& s)
{
std::swap(m_ptr, s.m_ptr);
return *this;
}
protected: char *m_ptr;
};
...
STRING s("abc123");
STRING t;
t = std::move(s);
{
public:
...
// ムーヴコンストラクタ(一例です)。
STRING(STRING&& s) : m_ptr(nullptr)
{
std::swap(m_ptr, s.m_ptr);
}
// ムーヴ代入(一例です)。
STRING& operator=(STRING&& s)
{
std::swap(m_ptr, s.m_ptr);
return *this;
}
protected: char *m_ptr;
};
...
STRING s("abc123");
STRING t;
t = std::move(s);
938蟻人間 ◆T6xkBnTXz7B0
2019/06/12(水) 20:34:03.21ID:0iE+TYdc 右辺値参照で挫折したら、Rustに進むがいい。
C++を完全に理解した人間は1%も居ない。
C++を完全に理解した人間は1%も居ない。
939デフォルトの名無しさん
2019/06/12(水) 20:39:57.61ID:W9DAWVrH 蟻人間は行列理解からだな
940蟻人間 ◆T6xkBnTXz7B0
2019/06/12(水) 21:02:08.90ID:KzwP9Gzw あほですみません。。。
941デフォルトの名無しさん
2019/06/12(水) 21:03:19.70ID:wMzR7R80 難しいというよりただ複雑
概念的にそれほど難しいわけではない
概念的にそれほど難しいわけではない
942デフォルトの名無しさん
2019/06/12(水) 21:07:19.74ID:JHNh+ipy ムーブセマンティクスは今世紀最大の発明と言われてるからね。
943デフォルトの名無しさん
2019/06/12(水) 21:11:21.95ID:7TWmWXJk 最近は標準ライブラリも文法も分かりやすくなったなと思ったら
initializer_list絡みの初期化がこのやろう
initializer_list絡みの初期化がこのやろう
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 千葉県民だけどなんか地震あったらしいな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- 秋田大学のホームページがつながらなくなって1日以上経つのだが
- 【速報】高市早苗、起床 [779938112]
- 共産党議員「日本は中国を侵略した歴史がある」→ネトウヨ「そんな歴史は無い!捏造するな!!国家侮辱罪で逮捕だ!!!」 [314039747]
