1 名前:デフォルトの名無しさん [2015/08/31(月) 18:19:04.13 ID:NE3NvROE.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part118 peace.2ch.net/test/read.cgi/tech/1435970316/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1439849418/ 次期規格C++1zはこちら C++14/C++1z 20 peace.2ch.net/test/read.cgi/tech/1410382924/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
129 名前:デフォルトの名無しさん [2015/09/03(木) 21:14:36.19 ID:yKj1FtgQ.net] むりなんすか ありがとうございました
130 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 21:16:27.91 ID:G+oloE/W.net] >>124 テンプレートは生成が静的だから完全解決できないと生成できません プログラムコードも静的だから完全解決できないこういうコードはできません int hoge(int i){return hage(i);} int hage(int i){return hoge(i);} void main(){int ret=hoge(1); return;} hogeかhageかでif分岐などで解決しないと実行できません で>>124 みたいなテンプレートは↑こういう風に解釈されます
131 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:31:53.50 ID:fKKhgssi.net] >>126 14.5.7 >The type-id in an alias template declaration shall not refer to >the alias template being declared. The type produced by an alias >template specialization shall not directly or indirectly make use of >that specialization. 要するにテンプレートの再帰型は直接であれ間接であれ使えない
132 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 21:47:39.21 ID:G+oloE/W.net] どういうのがやりたいのかわからんけど、↓でそれの何ができないの? class base{ public: base(base& n){m_p=&n;} base* m_p; }; class A : public base{ public: A(A& n) : base(n){;} }; class B : public base{ public: B(B& n) : base(n){;} };
133 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:00:58.39 ID:ujbBBsKz.net] コテハン=キチ○イ の法則
134 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 22:06:39.08 ID:G+oloE/W.net] >>129 でA←→Bの相互通信がしたいなら messengerクラスを独立に作ればいいだけ
135 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 22:09:18.49 ID:G+oloE/W.net] base* m_p; つかこれはthisポインタだな
136 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 22:12:34.19 ID:G+oloE/W.net] 要するにクラス参照の持ち合いなんて baseクラスからAとBを派生させて 独立なメッセージクラスで通信すりゃあいいんだよ
137 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 22:19:52.99 ID:G+oloE/W.net] abstract factoryパターンだろ
138 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:22:17.51 ID:hvDmk3I7.net] この馬鹿はさっきから何言ってるの? ビョーキなの?
139 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 22:39:04.34 ID:G+oloE/W.net] 要するにAとBのクラス参照の持ち合いなんて baseクラスからAとBを派生させて 独立なメッセージクラスで通信すりゃあいいんだよ デザインパターンではabstract factoryパターンだろ そのまんまだよ
140 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 23:14:36.34 ID:fKKhgssi.net] なんのこっちゃ
141 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 23:18:52.70 ID:yR6wfki7.net] 1) 釣りである 2) 知ったかしなきゃ死ぬ病気である 3) 本屋にくるおしゃべり天使みたいにスレでもうわごとレスを止められない 4) 本人はまじめだが知能がいちじるしく低い
142 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 23:24:43.23 ID:G+oloE/W.net] class base{ public: int m_val; base(int i):m_val(i){;} virtual int func(int i){return i;} }; class add:public base{ public: int func(int i){return m_val+i;} }; class sub:public base{ public: int func(int i){return m_val-i;} }; base *p,*q;//abstract factoryパターン int r;//メッセージクラス p=new add(21); r=p->func(7); q=new sub(r); r=q->func(7);
143 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 23:34:56.29 ID:G+oloE/W.net] class base{ public: int m_val; base(int i=0):m_val(i){;} virtual int func(int i=0){return i;} }; class add:public base{ public: int func(int i=0){return m_val+i;} }; class sub:public base{ public: int func(int i=0){return m_val-i;} }; base *p,*q;//abstract factoryパターン int r;//メッセージクラス p=new add(21); r=p->func(7); q=new sub(r); r=q->func(7); intを任意のクラスにしたらなんか色々出来そうだろ
144 名前:NAS6 ◆n3AmnVhjwc [2015/09/03(木) 23:41:00.21 ID:G+oloE/W.net] ありゃ、コンストラクタ忘れた class base{ public: int m_val; base(int& i=0):m_val(i){;} virtual int func(int i=0){return i;} }; class add:public base{ public: add(int& i=0):base(i){;} int func(int i=0){return m_val+i;} }; class sub:public base{ public: sub(int& i=0):base(i){;} int func(int i=0){return m_val-i;} }; base *p,*q;//abstract factoryパターン int r;//メッセージクラス p=new add(21); r=p->func(7); q=new sub(r); r=q->func(7); intを任意のクラスにしたらなんか色々出来そうだろ
145 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 23:56:33.17 ID:fKKhgssi.net] 薬飲んだらすぐ寝ないと駄目だぞ
146 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 00:38:45.05 ID:ye/5uETN.net] >>112 これでどう? #include <tuple> struct S; typedef std::tuple<S> TS; struct S { TS* p; }; TS loop{S{&loop}};
147 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 00:53:27.48 ID:ye/5uETN.net] >>83 なんか変な回答ついてるけど、ふつうに↓でコンパイル通るよ。 class B; class A { B& b; }; class B { A& a; };
148 名前:デフォルトの名無しさん [2015/09/04(金) 01:15:43.42 ID:IG+8/rPl.net] 循環【参照】か
149 名前:NAS6 ◆n3AmnVhjwc [2015/09/04(金) 01:16:03.14 ID:tzKKrHnI.net] >>144 それだと、どちらかを先に完全確定する必要があるんだけど まぁ、とりあえずデフォルトコンストラクタでもいいけど 実体作った後でもいいけど、A,Bはどんな状態遷移すると思う? class B; class A { int m_val; B& m_b; A(){;} A(B& b):m_b(b){;} }; class B { int m_val; A& m_a; B(){;} B(A& a):m_a(a){;} }; A a(); B b(a); a.m_b=b; これで、マルチスレッド環境だったりしたら、かわいそうなことに・・・
150 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 01:27:40.32 ID:1ELVgZ8Y.net] >>144 相互に参照を持つように初期化したいという意図だろうから それじゃ回答になっていないし、他の人が既に回答済み
151 名前:NAS6 ◆n3AmnVhjwc [2015/09/04(金) 01:28:13.61 ID:tzKKrHnI.net] 志村Kんの志村、後ろ、後ろ、状態
152 名前:NAS6 ◆n3AmnVhjwc [2015/09/04(金) 01:36:42.35 ID:tzKKrHnI.net] 循環参照する必要があるなら アブストラクトファクトリパターンで シングルトンパターンのメッセージクラスで 応答になるんだろ
153 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 01:41:27.56 ID:ye/5uETN.net] >>146-147 そういうことか。ありがとう。 いちおう↓こんなのはできるけど、これが望むものなのかどうかはやっぱりわかんないね。 class B; struct A { B& b; }; struct B { A& a; }; struct Loop { A a; B b; } loop = {{loop.b}, {loop.a}};
154 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 01:46:02.11 ID:ye/5uETN.net] >150 よりこっちのがいいかな。 struct Loop { A a{b}; B b{a}; } loop;
155 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 02:03:19.63 ID:1ELVgZ8Y.net] それならc++03でもいけるね コンストラクタ書く必要はあるけど
156 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 03:33:33.23 ID:CNzc1DB/.net] >>150 AもBも他のクラスのメンバとするならば、初期化で問題なくインスタンス化できるという話ですか? いずれにしろAとBをマネージするクラスを作るのは避けられないですかね? >>152 どちらもgccのc++03でいけましたが、>>151 はc++03だと警告が出ました コンストラクタは書かなくても大丈夫ではないですか?
157 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 04:59:59.47 ID:ukgXeb3f.net] >>153 どっちも参照しかもって無いんだから誰かが実体持つ必要があるだろ。 それは相互に参照してようがしてまいが変わらない
158 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 05:04:41.54 ID:1ELVgZ8Y.net] >>153 C++03でクラス化するにはコンストラクタがいるよ それと試しにg++(gcc)でやってみたけど、 C++11でのみ有効な機能っていう警告が出たよ それじゃなかった?
159 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 06:17:53.16 ID:rG9hvPUX.net] >>101 コンソールに出力すると コンソールの通信速度に引っ張られて プログラムの動作が遅くなる デバッグだからと言って無闇に大量に出力しないように気をつけないといけない
160 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 08:17:29.72 ID:9mN0gzGK.net] 余計なお世話だ
161 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 08:58:14.87 ID:voaTutYw.net] コンソールってバッファリングしてないのか?
162 名前:デフォルトの名無しさん [2015/09/04(金) 11:55:39.86 ID:1AVS2Ktf.net] >>156 言うだけ無駄 どーしてもcoutと手段が目的化してる
163 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:28:24.29 ID:s9W6t8fF.net] やぱログに吐いた方がいいって事ですか
164 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:30:58.91 ID:8nJVYQKk.net] >>154 mainとかの関数内ではAやBのインスタンス作れないですよね? 何かしら方法あるのかな
165 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 12:37:05.16 ID:g9gAlQ8r.net] >>161 普通に作れるでしょ…
166 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 14:48:15.68 ID:yKUUH6cx.net] どうでもいいけどcerrじゃ
167 名前:デフォルトの名無しさん [2015/09/04(金) 17:07:42.09 ID:ynK+SMBx.net] >>156 >>158 リングバッファに貯めて別タスクでワイヤレスのコンソールに吐き出させています >>160 確かにそうかもしれません。 主目的は、標準ライブラリの移植です。 >>163 それでもかまいませんが やらなくてはならないことは同じではないかと思いました。 ちなみにiostreamをヘッダファイルに加えると以下のようなエラーが出ます hoge.cpp:(.text.startup+0x48): undefined reference to `__dso_handle' /path/to/libstdc++.a(system_error.o): In function `_GLOBAL__sub_I__ZNSt14error_categoryC2Ev': system_error.cc:(.text.startup._GLOBAL__sub_I__ZNSt14error_categoryC2Ev+0x4c): undefined reference to `__dso_handle'
168 名前:デフォルトの名無しさん [2015/09/04(金) 20:19:10.44 ID:STCOa/Lw.net] STLをビルドして組み込め。実装はただひとつでなくいくつもある。動作するやつで。
169 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 18:20:35.46 ID:pkvC4koK.net] erosuga1.blog.fc2.com/blog-entry-3174.html 親戚のエロお姉さんとS◯Xwwwwwwwwwww
170 名前:デフォルトの名無しさん [2015/09/06(日) 23:13:13.97 ID:kzoJkPUN.net] CのCHAR_BITに当たるものはC++だとなんですか
171 名前:デフォルトの名無しさん mailto:sage [2015/09/06(日) 23:59:11.69 ID:TtEkoNQG.net] >>167 CHAR_BIT かな。 [] [ここ壊れてます]
173 名前:デフォルトの名無しさん [2015/09/07(月) 19:34:51.82 ID:XjY9JrjD.net] nextとhasNextはnextを実装するときコピーが必要だが終端がわかっていればnextだけで進める moveNextとcurrentはcurrentを実装するときコピーはいらないが進むのにmoveNextが必要という トレードオフがあると思いませんか?
174 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 20:08:22.86 ID:AAyuiqtl.net] 奇遇だな ちょうど俺もそう思っていたところだ
175 名前:デフォルトの名無しさん [2015/09/07(月) 21:24:45.26 ID:107fD43G.net] え!?俺も昨日同じこと考えたとこだった!
176 名前:デフォルトの名無しさん mailto:sage [2015/09/07(月) 21:26:55.88 ID:xAuYi2fm.net] ちょっと>>169 が何言ってるかわからない
177 名前:デフォルトの名無しさん [2015/09/08(火) 10:01:21.06 ID:LEkrsXyv.net] typelistの代わりにtuple使ってるんだけどなんかダサいから typelistの可変引数版みたいなのを自作しようと思います
178 名前:デフォルトの名無しさん mailto:sage [2015/09/08(火) 12:57:45.86 ID:rdzMyuc+.net] 俺も俺も
179 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 14:29:57.70 ID:vNCRKT6f.net] unique_ptrで配列を使う場合、テンプレート引数はどうするんでしょうか? unique_ptr<int> p(new int[3]); unique_ptr<int[]> p(new int[3]); はどちらもGNU C++11でコンパイルが通りますが、両者は同じですか?
180 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 17:14:13.20 ID:tn/zLcPl.net] >>175 前者は消滅時に変なdeleteが呼ばれるんじゃね
181 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 18:13:22.19 ID:vNCRKT6f.net] >>176 share_ptrの場合<int[]>だとコンパイルエラーになりますが、 unique_ptrは配列の特殊化があるので<int[]>にしないとダメということでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 18:33:57.55 ID:jMDA+bxl.net] はい
183 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 19:52:32.49 ID:Ubq2dser.net] shared_ptrってなんで配列の特殊化が用意されてないんだろうね 代わりにshared_arrayがあったと思うけど、要するに生配列なんてクソなものは使うなよってことなのかね
184 名前:デフォルトの名無しさん mailto:sage [2015/09/10(木) 20:18:56.37 ID:dU3rTPO3.net] >shared_array いえそんなものありません
185 名前:デフォルトの名無しさん [2015/09/10(木) 20:26:28.15 ID:2c1W3PII.net] shared_ptr<array<int,3>>で
186 名前:デフォルトの名無しさん [2015/09/10(木) 20:42:53.70 ID:XPHYFe1B.net] unique_ptr<T[]>は知的興味でしかないだろうな なぜなならアーレイやベクトルやストリングがあるからさ そんな僕でもこれらデータ構造よりもunique_ptr<T[]>が使えると思いつく場面はあるんだ それはヒープ配列の生のポインターをAPIで所有権をうけとるときたった一つさ
187 名前:デフォルトの名無しさん [2015/09/10(木) 23:41:24.04 ID:Lt3YsJ/Z.net] > アーレイ 和服の彼女かとおもた
188 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 10:32:13.74 ID:yGFUVtFx.net] そういえばshare_ptrの参照カウンタって 実際の情報はどこで保持されてるんでしょうか?
189 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 10:33:39.57 ID:H6P2Jlk5.net] ソース見ればいい
190 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 11:22:30.30 ID:Ra3TP7iE.net] ソースみれば分かるが動的に確保しているよ ただし高速化の工夫はしてある
191 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 14:11:15.39 ID:yGFUVtFx.net] share_ptrのソース見ましたが、atomic型を使って うまいことやってるというくらいしか分かりませんでした atomicについて知らなかったので調べたんですが、 これってC++11のメモリモデルに関するもので、 いわば言語のコアの機能なんですね
192 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 14:12:30.08 ID:yGFUVtFx.net] つまりC++11以前やCではこのshare_ptrを直接実装する方法はなく、 たとえば参照カウンタを持つクラスを用意し、これをshare_ptrさせたい クラスに継承させるという間接的な方法しかないということですよね?
193 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 14:20:50.61 ID:ZeO2NzYz.net] んなわけねーだろ
194 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 15:00:10.29 ID:xy/6VGnh.net] C++11で、型推論autoを使って楽をしようと思ったんだが、 2つの変数の型を自動的に整合させる方法が分からないのだ。 void some_job() { const auto loop_times = 10; for (auto cnt = 0; cnt != loop_times; ++cnt) { /* ループ内の処理 */ } } // (インデントはおそらく破壊される) 上の場合、ループ回数 loop_times と、ループカウンタ cnt は どちらのautoもintと判断されるのでとりあえず一致する。 しかし auto loop_times の初期値にintでない値を与えると 当然ながら loop_times と cnt の型が違ってしまう。 「cntの型は、loop_timesの型からconstを外したものだよ」 という変数宣言の書き方はないだろうか? 諸兄らの教えを乞いたい。
195 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 15:18:09.86 ID:yGFUVtFx.net] >>189 どのへんが間違ってるんですか? C++初心者にもわかる説明だとありがたいです
196 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 15:43:03.84 ID:BdWqvAgc.net] >>190 ttp://ideone.com/CTjWaa これでどうよ >>191 boost::shared_ptrのソースでも見てみれば shared_ptrが標準に入ったのは11からだけどそれ以前にもshared_ptrはあったんだから
197 名前:190 mailto:sage [2015/09/11(金) 18:00:12.76 ID:xy/6VGnh.net] >>192 まさに希望した通りの情報です。感謝します。 std::remove_const 云々 と書くのか。 sizeof() と typeid().name() とで並べて見たところ loop_times と cnt の型は一致した。 loop_times = 10U; や loop_times = '3'; でも 試したら自動的に型が合った。 テンプレート構造体に閉じ込めたtypedefか。 こんな仕掛けを思いつくとは尊敬すべき変態さん達だな。
198 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 19:32:57.26 ID:eMWeHauN.net] これって const auto && loop_times = 10; でも動くんか? そこはdecayじゃないのかって思ったんだけど
199 名前:デフォルトの名無しさん mailto:sage [2015/09/11(金) 21:03:06.98 ID:yGFUVtFx.net] >>192 よく見てみたら、参照カウンタ自体の仕組みはごく単純で、自分のイメージ通りでした というか、そもそも自分がshare_ptrの使い方をちゃんと理解していませんでした share_ptrに生ポインタ渡せるのは初回だけなんですね・・・ ideone.com/mysMec スレ汚し失礼しました
200 名前:デフォルトの名無しさん [2015/09/11(金) 23:54:45.84 ID:b8iFLD3f.net] コーディング言語は「オープンソース」が制す:Github人気調査結果 ≪ WIRED.jp wired.jp/2015/09/11/github-coding-languages-open-source/ wired.jp/wp-content/uploads/2015/09/wiredus09101024x541.jpg
201 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 01:27:55.77 ID:JUZlHW5G.net] Rubyがそんなに上位だと思えないけどなぁ
202 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 02:10:12.94 ID:xJrAsa7q.net] ま、どうせcssとか入ってくる調査だし でも混ぜこぜでもcssに負けてんのはちょっと面白い
203 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 04:58:03.64 ID:oXtx5tH/.net] HTMLとJavaScriptとCSSのみっつが順位を競う プログラミング言語ランキングとは サイトの名前をwiredからweirdに変えた方がいい
204 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 13:10:32.88 ID:JUZlHW5G.net] だよねぇ。おかしいよねぇ。 なんだかんだCは上位にいると思う。
205 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 13:17:01.58 ID:VGFicEEt.net] 9位は十分上位だろう githubはもともとスクリプト書いてる人が多く使ってたから ああいう順位なんだと思うよ
206 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:01:59.69 ID:kwHtj/5N.net] マルチスレッドとグローバル変数の寿命に関する質問なのですが detachしたスレッドが,メインスレッド終了後も生き続けてもグローバル変数にアクセスしても問題はありませんか? StackOverflowなどには大丈夫だという回答があり、簡単なテストコードでも問題は無かったのですが クラス内static変数にアクセスしたときに時々異常終了したことがあったので少し不安です
207 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:06:47.33 ID:JUZlHW5G.net] 便乗質問 メインスレッドを終了してもコスレッドは生きてるんでしたけ? まずそこから・・・
208 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:06:59.24 ID:5QpLz49+.net] 問題あるだろ
209 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 14:37:23.35 ID:kwHtj/5N.net] >>203 生きてないですね(核爆
210 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 15:31:31.26 ID:Jf5oAWRg.net] コンストラクタ() = delete; これってなんですか
211 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 15:52:40.95 ID:uQU/vJQH.net] cppreference.comでは以下のように説明されている >Inhibiting the automatic generation of a default constructor by the compiler.
212 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:38:30.48 ID:Jf5oAWRg.net] コンストラクタを書かないのとどう違うのですか?
213 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:40:31.69 ID:pEVoCQGH.net] 書かないと自動生成されるだろ
214 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:41:18.68 ID:9veCOfSe.net] コンストラクタ書かなきゃいけなくなる
215 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 16:41:52.46 ID:9veCOfSe.net] デフォルト以外の
216 名前:デフォルトの名無しさん [2015/09/12(土) 16:43:08.92 ID:Hpj3Z5wB.net] ビッグ4の法則はコンストラクターには成り立たないからな
217 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 18:04:37.15 ID:fhFqy1Q7.net] 見たとおりコンストラクターが定義される ただし使うとコンパイルエラーになる特別な本体で 定義されるので書かなかったときの自動生成は行われないし privateで書いて生成禁止にしてもfriendからアクセス出来てしまうという誤りを防げる
218 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:36:31.32 ID:XAqQ9sMD.net] 素直に単純に コンパイラのコンストラクタの自動生成を阻止する とせずに 使えない特殊なコンストラクタを定義 ↓ コンストラクタがあるので自動生成されない という回りくどいプロセスを踏んでいるのは何故ですか?
219 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:46:02.85 ID:mqPDPmPF.net] >>214 どっちが回りくどいかもう一度考えてみたら?
220 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 21:48:41.33 ID:urgaTojg.net] >>213 の二段落目二行目のためでは
221 名前:デフォルトの名無しさん mailto:sage [2015/09/12(土) 22:39:51.40 ID:fhFqy1Q7.net] >>214 そりゃ>>207 のサイトが嘘つきなだけで 自動生成を抑止するためじゃなく 使えない関数を定義することが目的だからね ideone.com/LKN3q1
222 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 01:24:33.20 ID:T9Cd4+Hx.net] 目的は書く人次第だが
223 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 01:28:55.66 ID:Auzbsz6v.net] つまり>>207 も>>217 も目的を決めつけた嘘つきってことですね
224 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 02:17:23.86 ID:T9Cd4+Hx.net] どうでもいい
225 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 03:41:04.36 ID:6aqKmbgS.net] 使えない関数を定義しているのではなく、そのシグネチャの関数がdeletedであることを宣言しているのだろう。 適用されるのは同じ翻訳単位だけなのでは?
226 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 04:33:23.08 ID:fzKWBIn4.net] >>221 そのレスする意味ある?
227 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 05:08:08.47 ID:6aqKmbgS.net] >>213 みたいな無駄にややこしい上に誤った説明をそのままにしておくのは無責任なのでは?
228 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 05:42:13.47 ID:fzKWBIn4.net] そうじゃなくて、そのレス何も説明してないでしょ 他人を批判する前に自分を省みろって
229 名前:デフォルトの名無しさん mailto:sage [2015/09/13(日) 06:21:11.66 ID:oxWskyTT.net] >>221 deleteが同じ翻訳しか適用されなくても delete関数はインライン関数だから 違う翻訳単位でdeleteじゃかったらODR違反 問題ない