1 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 00:11:34.01 ID:nc/5PI4P0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part131 mevius.2ch.net/test/read.cgi/tech/1501295308/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.101【環境依存OK】 mevius.2ch.net/test/read.cgi/tech/1500329247/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
152 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 19:28:43.25 ID:O4jMcQm7d.net] typedefとdefineの違いすらわかってないのが俺 define A BだとAをBとする typedef B AだとAをBとする こうなるだけ?
153 名前:名無しさん@そうだ選挙に行こう! Go to vote! [2017/10/22(日) 19:37:19.87 ID:bXoG3HvV0.net] typedefなんかもう使うな これからはusingだ
154 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 19:38:18.60 ID:rLWliBun0.net] >>150 #defineはソースコードのテキストを字面だけで置き換えるだけ。 typedef相当のこと以外にも色々な使い方ができるが、トリッキーなことをして分かりにくくなったり弊害が大きいので、言語仕様が拡充された現在では、なるべく使用すべきでないという風潮になっている。
155 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 19:38:36.42 ID:NTIGbrlN0.net] defineは置き換えでtypedefは名前変更 #define SIZE 50, 200 void SetSize(int w, int h)をSetSize(SIZE)って呼ぶことができる typedefはtypedef std::vector<MyLonglongClassName> MyVector; とすることで短くできる
156 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 19:42:10.58 ID:O4jMcQm7d.net] >>151 >>152 >>153 defineは俺の認識であってると思ってるけど typedefの名前変更ってなんなんだ defineでもint hage ってしちゃうと名前変更にならない?
157 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 19:49:02.84 ID:rLWliBun0.net] typedefで導入した識別子の名称は、型の名前としてコンパイラが字句解析、意味解析する際に適切に扱ってくれるけど、defineの方は字面を置き換えただけだから文脈によっては意図した通りにならないケースがある。 具体例はすぐに思いつかない… 誰か詳しい人が書いてくれるかも。
158 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 20:24:28.58 ID:cygPpIjv0.net] typedef int *IntPointer; //A #define IntPointer int* //B //Aの場合: int x * const の意味となり、*xは変更可能 //Bの場合: const int *x と展開され、*xは変更不可能のためコンパイルエラー void f(const IntPointer x) { *x = 0; }
159 名前:デフォルトの名無しさん [2017/10/22(日) 20:29:43.27 ID:KI+QlBvW0.net] >>150 #defineは、厳密にはコンパイラの機能では無いんだよね。 ただのテキスト置換なんで、様々なチェックが働かない。 置換後のテキストに対してコンパイルを行うから、エラーも難解になったりする。 対してtypedefはコンパイラの機能。 型に対してのみ別名を付ける事しか出来ないけど、ちゃんと型チェックが行われる。
160 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 21:05:01.87 ID:eZyQD2ui0.net] typedefを一切使うなというのは無理ゲーすぐる… std::vector<std::vector<int> > jug_array = new std::vector<std::vector<int> >(5000); for (std::vector<std::vector<int> >::const_iterator it = jug_array.begin(); it != jug_array.end(); ++it) { ... } とかゆうのはusingでは多分std::を削れるぐらいだと思う
161 名前:デフォルトの名無しさん [2017/10/22(日) 21:07:07.30 ID:Nihr2kgP0.net] そのusingではなく using hoge = int; のusingだろ
162 名前:デフォルトの名無しさん [2017/10/22(日) 21:50:12.47 ID:DuSJV2Ke0.net] 変数宣言に関してはC++03は苦行の極みだったな
163 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 22:37:08.77 ID:gV0xEv2nr.net] typedef名が無いとintのデストラクターが呼べない using T = int; int{}.~T(); typedef名が無いと関数ポインターへの変換関数が書けない(たぶん) using F = void (); operator F *() {return nullptr;}
164 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 22:44:21.85 ID:gV0xEv2nr.net] typedef名が無いと関数型をメンバーポインター型に変形させることができない using MF = void () const; MF class_type::* mp; そして何より、関数内で#defineしたものは関数外に漏れる
165 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 23:08:06.76 ID:V6KHSGcm0.net] >>158 型推論でいいだろ auto jug_array = new std::vector<std::vector<int> >(5000); for(auto it = jug_array.begin(); it != jug_array.end(); ++it) { ... }
166 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 00:28:15.86 ID:WKKpeTI2r.net] >usingでは多分std::を削れるぐらいだと思う ↓ >型推論でいいだろ これがアスペというやつだな
167 名前:デフォルトの名無しさん [2017/10/23(月) 00:38:49.98 ID:a4CoBhRy0.net] >>164 俺も思ったからアスペだわ
168 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 01:19:27.04 ID:E0HRfOuJ0.net] >>164 がアスペという可能性も微レ存
169 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 02:33:22.14 ID:4YhCJR4W0.net] アスペかどうかはわからないけど話の流れを追わないで字面で反応する人いるよね
170 名前:デフォルトの名無しさん [2017/10/23(月) 05:45:22.43 ID:iFI38Dlw0.net] %%%%1000%%%% 000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221% 001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7% 002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA, 003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
171 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 06:00:11.73 ID:tsKHL/vaM.net] >>164 はあ? なに言ってるんだこいつ w
172 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 07:39:17.13 ID:FnrJWB1+0.net] CPUはアスペルガー アスペルガーはプログラミング対象としては正しい
173 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 11:48:03.94 ID:L0yyts890.net] そもそも>>158 も>>163 もコード間違ってるし バカってなんで要らんところでnew使おうとするかね
174 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 11:49:59.55 ID:L0yyts890.net] あっそうかジャヴァカコーダー上がりか
175 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 12:28:15.79 ID:L0yyts890.net] ヴァカ+auto→地獄
176 名前:デフォルトの名無しさん [2017/10/23(月) 15:37:17.98 ID:a4CoBhRy0.net] >>171 >>165 でアスペ認定された俺も思ったからお前もだな。
177 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 20:39:12.10 ID:FnrJWB1+0.net] newはちょっと手が滑っただけ; もちろんスマポとセットで無いとnewとか滅多に使わない
178 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 21:07:31.46 ID:/BPh9WwQM.net] auto知らなかった老害が暴れてるのか w
179 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 22:09:17.50 ID:L0yyts890.net] >>176 糞ヴァカは二度と書き込むな w付けたってお前のヴァカさ加減が軽減されることはないからこのカス
180 名前:デフォルトの名無しさん [2017/10/23(月) 22:27:44.44 ID:D0YLsnUF0.net] C言語の知識があるんだけどC++も応用できる?
181 名前:デフォルトの名無しさん [2017/10/23(月) 22:37:44.10 ID:/pLbKGxJ0.net] できる!
182 名前:片山博文MZ mailto:sage [2017/10/23(月) 22:38:51.33 ID:aoVPN+Cqd.net] >>178 まずはデストラクターの便利さを学んでね。
183 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 00:14:32.80 ID:HCv33Y/ud.net] auto pointerのこと? あれいつ見ても使うタイミングわかんないや define typedefこたえてくれたひとありがとう >>156 のAのやつがなぜこうなるのか頭のなかでさっぱり理解できんけどがんばる
184 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 01:23:29.92 ID:6ceRFBNE0.net] オートポインターは廃止になった。 スマポ使おう。
185 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 01:26:01.20 ID:grT3veHx0.net] >>181 Aの場合はint * const x の間違いだろう。 int*型という1つの型全体にconstがかかっている。
186 名前:デフォルトの名無しさん [2017/10/24(火) 03:02:15.07 ID:Od9TZRLJ0.net] ポインタは型なのだろうか。
187 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 03:19:16.91 ID:F7KgZr1H0.net] コードの書かない奴ほどC++をやっつけスクリプト言語化しようとする。 auto馬鹿どもを駆逐せよ。
188 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 07:17:33.32 ID:4VNEc1KXM.net] >>177 , >>185 動的型付けと型推論の違いも理解できない老害ははやくくたばればいいのに
189 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 08:02:35.16 ID:/FFLOfov0.net] ヴァカが精一杯頑張って吐き出したクッサイ唾がこれ↑
190 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 08:42:18.81 ID:4VNEc1KXM.net] > 動的型付けと型推論の違いも理解できない老害 は否定できないんだ w
191 名前:デフォルトの名無しさん [2017/10/24(火) 10:20:18.72 ID:kyzMRAwBd.net] >>186 autoのことをanyやvariantと勘違いしてるとか?
192 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 12:37:21.38 ID:/FFLOfov0.net] そんな勘違いしてるとなんで思い込むか全く分からんわ まあヴァカの考えることなんて分かったら大変だけど
193 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 12:42:47.65 ID:/FFLOfov0.net] こいつの脳内には「動的型付けと型推論の違いも理解できない老害 」 とやらが住んでいてるんだろうな。 それ少し前のお前自身の姿だからゲラゲラ
194 名前:デフォルトの名無しさん [2017/10/24(火) 12:43:32.89 ID:Od9TZRLJ0.net] 世の中バカばかり、自分だけがよくわかっている。 ってことでしょうか。
195 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 16:53:21.77 ID:RCW9qhL70.net] こいつプログラミング板荒らしまわってる某コテハンと同じ臭いがする
196 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 17:21:11.13 ID:xOeS6ucYM.net] まぁ、もうそろそろNG設定かね。俺は設定した。 大した技術持って無さそうだし。
197 名前:片山博文MZ mailto:sage [2017/10/24(火) 17:41:23.62 ID:+CxSIN/Vd.net] 2ちゃんねるのコテハンにはろくなヤツがいないって、戦後生まれのじっちゃんが言っていた。
198 名前:片山博文MZ mailto:sage [2017/10/24(火) 18:40:29.57 ID:+CxSIN/Vd.net] そろそろ仕事やめて、めしにしようぜ カレーライスとお子様ランチのどっちがいい?
199 名前:片山博文MZ mailto:sage [2017/10/24(火) 18:53:07.38 ID:+CxSIN/Vd.net] ギロッポンでめしにすっべ 今日は俺のおごりだ
200 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 20:33:42.55 ID:4VNEc1KXM.net] >>190 いきなりスクリプトとか言い出した理由書いてみ どんな言い訳が見れるのか楽しみだよ w
201 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 20:44:02.68 ID:yRLde5ii0.net] >>176 左様 autoを見て嘔吐
202 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 20:53:50.44 ID:YuTKkjXTr.net] auto jug_array = std::vector<std::vector<int>>(5000); という書き方は2012年ごろにさっちんとメイヤーが広めようとしていた C++17でこの書き方が広まったら>>185 はもう出家するしかない
203 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 20:55:00.66 ID:FyKtaGrZ0.net] autoに関して応答なさそうですね
204 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 20:56:05.26 ID:YuTKkjXTr.net] 昭和のアロマが強烈
205 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 21:14:49.95 ID:yRLde5ii0.net] 良く考えずに書いたが良く考えたら普通は std::vector<std::vector<int>> jug_array(5000); と書くところだったなあ…
206 名前:デフォルトの名無しさん [2017/10/24(火) 21:50:21.25 ID:018tmIsf0.net] UWPスレとか毛色が違うみたいだし、C++/CLIスレとか落ちてるんでここで教えて下さい VS2017のC++/WinRTで新しいプロジェクトを作成 (Visual C++ → Windowsユニバーサル → 単体テストアプリ) 実行すると TEST APP 、Unit Test 、Tests Running の3つの文字が出てくるウィンドウが出てきます しかし、UnitTestApp.xaml の Application要素の中身は、空っぽです 新しくブランクページを作ると、Page要素になって、デザインできる上にボタン等を貼り付けると Page要素の中に要素が作られます Application要素の中身は一体どこにあるのでしょう?
207 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 22:02:36.84 ID:hjkLVxi70.net] >>204 Xamarin Part6 mevius.5ch.net/test/read.cgi/tech/1508367307/
208 名前:デフォルトの名無しさん mailto:sage [2017/10/24(火) 22:15:38.33 ID:018tmIsf0.net] >>205 そっちになるんですね、失礼しました、>>204 は取り下げて移動します
209 名前:デフォルトの名無しさん [2017/10/25(水) 18:49:27.48 ID:qOXOqU1a0.net] c++でダックタイピングのようなものをやりたいです。 void型で受け取ったクラスを自前で用意したインターフェースクラスにキャストして関数を呼び出すって可能ですか? やり方や参考になるサイトなどあれば教えて欲しいです。 templateでの型消去はコンパイル段階でクラスを知らないせいで弾かれてしまっているようです……
210 名前:デフォルトの名無しさん mailto:sage釣 [2017/10/25(水) 19:02:03.57 ID:16XMr+7o0.net] vfptrの実装状況によるから、未知の抽象クラスのメソッドって 呼べないと思うんだが
211 名前:デフォルトの名無しさん [2017/10/25(水) 19:20:07.39 ID:qOXOqU1a0.net] >>208 ありがとうございます やっぱクラスの構成わかんなきゃアクセスしようがないですよね…… exeのlibに依存せずになんとかdll開発できないかと考えてたんですが無理そうですね 諦めます
212 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 19:21:19.49 ID:Srjg9fpL0.net] >>207 っinterpret_cast? その代わり、ちゃんと素養のまともなモノを使わないとみ定義でPC死ぬからな。
213 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 19:28:12.28 ID:Srjg9fpL0.net] https://msdn.microsoft.com/ja-jp/library/e0w9f63b.aspx reinterpret_castだった。 かなり危ない。
214 名前:デフォルトの名無しさん [2017/10/25(水) 19:38:49.97 ID:qOXOqU1a0.net] >>210 ありがとう。これだと型確認回避できるのか……希望が見えてきました ちょっと試してみます。
215 名前:デフォルトの名無しさん [2017/10/25(水) 20:09:22.57 ID:r5sy60NsM.net] おおっと、auto の話題には注意しないとな。
216 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 20:51:07.58 ID:t7oUy/d3r.net] 昭和生まれの老害はそろそろ引退すべき
217 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 20:55:21.88 ID:SS3Ej639M.net] 64年生まれの妹が不憫でならない
218 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 22:31:10.63 ID:Nep/tIRvd.net] .outからsoファイル呼び出す形を作ってるのだけど 変数の共有するのってグローバル変数にするのとシングルとんみたいなの作る以外にある? 関数の引数にはできない状態だと
219 名前:デフォルトの名無しさん [2017/10/26(木) 01:08:27.67 ID:KrANDw+50.net] >>216 グローバル「関数」内にstatic変数なんてどう? ちょっと範囲が狭くなるけど、スレッドローカルストレージとかも。
220 名前:デフォルトの名無しさん [2017/10/26(木) 01:17:12.83 ID:SQPezUK20.net] >>200 OSや組み込み、ドライバでその書き方が広まったら認めてやるよ。 使い捨て、やっつけコードしか書かない小便垂れ小僧が。
221 名前:デフォルトの名無しさん [2017/10/26(木) 02:08:33.19 ID:s0ODk43E0.net] イッツautoマーチック
222 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 03:38:24.52 ID:H69oM85Y0.net] >>216 俺は何かの設定じみたものは環境変数に入れとくこともある。 言語問わず子プロセスでも使えて便利。
223 名前:デフォルトの名無しさん [2017/10/26(木) 08:42:36.44 ID:KrANDw+50.net] >>219 まんまやん
224 名前:デフォルトの名無しさん [2017/10/26(木) 08:43:28.94 ID:KrANDw+50.net] >>220 ああ、確かに環境変数も使うね。
225 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 14:14:49.39 ID:yHns7wn+p.net] >>218 パッケージソフトやゲームはガン無視か
226 名前:デフォルトの名無しさん [2017/10/26(木) 14:32:13.77 ID:3HeaIUwTd.net] OSと組み込みとドライバって特権階級かなんかなの?
227 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 14:59:42.90 ID:97gM9QaUa.net] >>218 がその世界しか知らない(それ以外は俺にはかんけーない)ということにじゃないかな
228 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 16:12:23.15 ID:fpqT055X0.net] OS内部とかドライバとか、位置によってはメモリ確保の方法変わってくるし 組み込みで動的にメモリ確保とか怖くってやってらんねーとかじゃい? 静的か自動変数にインスタンスの実体置くなら一応なんとかなるんだろうけど・・・ いや、静的だとコンストラクタがくっそ面倒か? auto とか生きてくるのって、 大抵ばかすかコンテナに要素しこたま抱える様な用途だしな
229 名前:223 mailto:sage [2017/10/26(木) 16:48:19.15 ID:sfpBhfHr0.net] いやautoの議論にケチつけたつもりは無いよ(俺も滅多にauto使わんし C++の実用される現場といえばOS、組み込み、ドライバくらいしか挙げない人が多いから釘刺したかっただけ
230 名前:デフォルトの名無しさん [2017/10/26(木) 17:11:31.86 ID:kUEk6KjE0.net] auto使わないとか頭固すぎ 使えるところは全てautoだわ
231 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 17:59:27.25 ID:obzhKUOY0.net] 単なるシンタックスシュガーでなんのオーバーヘッドや副作用があるわけじゃ無いしな
232 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 18:40:54.94 ID:se7vIA1E0.net] auto下痢症
233 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 18:55:08.38 ID:EF3aiwNW0.net] autoネタ大人気だな 俺もiteratorなんかじゃ迷わずauto使うけど ポインタすらちゃんと理解してないような奴が無闇にauto使ってるのを見るとね
234 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 18:57:53.27 ID:KmwbyHDC0.net] それ以上autoの話をするのはアウトだぞ
235 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 19:55:30.03 ID:se7vIA1E0.net] おぉっと
236 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 20:20:21.90 ID:8UQnYlEC0.net] 同じ話題ばかりで食傷気味、もう吐きそう。 …というこの書き込みも同系ネタで済まぬ。
237 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 22:27:19.25 ID:oyaJ8gC3M.net] >>229 auto を単なるシンタックスシュガーと言うのもどうかと思うが とりあえず使わないと言う選択肢はないわ
238 名前:片山博文MZ mailto:sage [2017/10/26(木) 22:29:12.27 ID:LcK6lNJBd.net] 暇潰しに https://github.com/katahiromz/TextCanvas でも見て行って
239 名前:デフォルトの名無しさん mailto:sage [2017/10/26(木) 22:31:49.27 ID:6866r+hk0.net] 嘔吐嘔吐、うるせーなぁ(´・ω・`)
240 名前:デフォルトの名無しさん [2017/10/27(金) 04:04:41.73 ID:lyx9X4ms0.net] >>228 同感
241 名前:デフォルトの名無しさん [2017/10/27(金) 08:02:50.09 ID:O+M8u5Cb0.net] >>233 >>233 >>233
242 名前:デフォルトの名無しさん [2017/10/27(金) 08:33:50.52 ID:beF6mKBOd.net] C++使わないとか頭固すぎ 使えるところは全部C++だわ
243 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 08:39:18.11 ID:2A0a9mBA0.net] 単なるシンタックスシュガーでオーバーヘッドとか副作用無いしねw
244 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 08:39:47.11 ID:2A0a9mBA0.net] いやテンプレートは違うか
245 名前:デフォルトの名無しさん [2017/10/27(金) 08:41:10.57 ID:Aa1jtLeH0.net] 実は>>213 は、>>233 のパクリ
246 名前:デフォルトの名無しさん [2017/10/27(金) 09:37:02.86 ID:EP/R3fy90.net] ID:2A0a9mBA0 ←こういう馬鹿が本当にC++使ってるとは思えない。無職だろう。
247 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 09:50:50.86 ID:+sOx5VXfM.net] auto絶対使わないマンってややこしい型も、全部手で書いてるの? ET使うときとかどうしてんだろ。
248 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 10:00:22.45 ID:tbT2n0brd.net] テンプレートを除いた部分は単なるシンタックスシュガーだよ? o->vftbl->f(o, a) と書こうが o->f(a) と書こうが何の違いもない。 テンプレートはチューリングマシンとしての計算能力があるから別だけど。
249 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 10:25:02.18 ID:n3hllmLr0.net] >>245 ET使う時って評価するときか? auto a = b + c * d; これやるとautoの型は式テンプレートで、評価が起きないから困ったことになるぞ (まだ評価せずに組み合わせる場合は逆にautoが便利だけど) ET作るときや実装時は確かに型がややこしいけど、普通returnの一文で終わるから return {うんたらかんたら}; で済むと思う あと、ET周りの関数の宣言時をautoでやってしまうと、実装完了まで使用できないというのが足かせになると思うぞ
250 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 11:54:16.72 ID:2++1MvhW0.net] auto使うのって例えば template <class U, class V> auto func(U& a, V& b) -> decltype(a + b); みたいに戻り値の型が簡単に推測しにくい時に使ってるけどな
251 名前:デフォルトの名無しさん mailto:sage [2017/10/27(金) 19:49:19.03 ID:+sWf4zsJ0.net] auto LocalFunc = [&]() { ... };
252 名前:デフォルトの名無しさん [2017/10/27(金) 22:31:31.38 ID:67YjQzLBM.net] >>248 そのautoは型推論のautoとは違う使い方だよね。 戻値の後置宣言都合によるプレースホルダ的な。