前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/
探検
C++相談室 part158
■ このスレッドは過去ログ倉庫に格納されています
2021/11/15(月) 18:49:18.44ID:I69rZ/Of
185デフォルトの名無しさん
2021/11/29(月) 14:27:16.33ID:Afxc3rI9 >PHPはC++のスクリプト版といえるかのように文法・関数が似てる
迷惑するから出鱈目言うな
迷惑するから出鱈目言うな
186はちみつ餃子 ◆8X2XSCHEME
2021/11/29(月) 14:43:58.00ID:cgXmRWbT 因果が逆だろう。
似た使い方しかしない人間にとっては似て見えるということもあるんだろうさ。
似た使い方しかしない人間にとっては似て見えるということもあるんだろうさ。
187デフォルトの名無しさん
2021/11/29(月) 14:54:09.52ID:Swm9PZmw いや激しく誤解を生む情報だと思うw
188デフォルトの名無しさん
2021/11/29(月) 15:15:20.73ID:zo5XubVi 制御構文が似ていれば似ているように見える人というのは一定数いる
それしか使わないから
それしか使わないから
189デフォルトの名無しさん
2021/11/29(月) 15:19:08.39ID:LzdsKRCS C++のこともphpのことも両方ニワカじゃないとなかなか出てこない発言
昨日今日入門書めくってるくらいのレベルじゃないとなかなかできない発言
昨日今日入門書めくってるくらいのレベルじゃないとなかなかできない発言
190デフォルトの名無しさん
2021/11/30(火) 09:50:00.96ID:abbimJAH template<class T>
void f(T x) {
auto a = x, b = 0;
}
f(0.0);
これgccだとコンパイル通るけど規格的にはダメだよね?
void f(T x) {
auto a = x, b = 0;
}
f(0.0);
これgccだとコンパイル通るけど規格的にはダメだよね?
191デフォルトの名無しさん
2021/11/30(火) 09:57:35.75ID:+4eAilPB ok
192デフォルトの名無しさん
2021/11/30(火) 10:46:34.33ID:LDqTXpbe 何が駄目になるの?
193デフォルトの名無しさん
2021/11/30(火) 10:48:39.10ID:b4Wv8Im2 autoの推定がxから導かれるdoubleと0から導かれるintで矛盾しないかって話
194デフォルトの名無しさん
2021/11/30(火) 10:51:24.87ID:icNXz82r そもそも何の規格だよ
問題あるなら書き直せばいいだろ
問題あるなら書き直せばいいだろ
195デフォルトの名無しさん
2021/11/30(火) 10:58:47.10ID:b4Wv8Im2 >>190
clは弾くぞ
clは弾くぞ
196デフォルトの名無しさん
2021/11/30(火) 11:18:37.50ID:rIKeeiBO https://eel.is/c++draft/dcl.type.auto.deduct#def:placeholder_type_deduction
For a variable declared with a type that contains a placeholder type, T is the declared type of the variable.
https://eel.is/c++draft/dcl.spec.auto.general#7
The type of each declared variable is determined by placeholder type deduction, and if the type that replaces the placeholder type is not the same in each deduction, the program is ill-formed.
Draft これでいいか分からんけど、多分ダメですね
a と b は個別に型推論して、同一でなかったら ill-formed であると読める
For a variable declared with a type that contains a placeholder type, T is the declared type of the variable.
https://eel.is/c++draft/dcl.spec.auto.general#7
The type of each declared variable is determined by placeholder type deduction, and if the type that replaces the placeholder type is not the same in each deduction, the program is ill-formed.
Draft これでいいか分からんけど、多分ダメですね
a と b は個別に型推論して、同一でなかったら ill-formed であると読める
197デフォルトの名無しさん
2021/11/30(火) 11:29:55.04ID:dtpnJADB https://wandbox.org/permlink/GOps3Ikgl1VsvwoU
gcc6.3.0以下とclangだとちゃんとエラーになるな
gcc6.3.0以下とclangだとちゃんとエラーになるな
198デフォルトの名無しさん
2021/11/30(火) 11:33:54.11ID:dtpnJADB199デフォルトの名無しさん
2021/11/30(火) 11:34:06.53ID:LDqTXpbe 0の部分static_castしなきゃ駄目ということか。なるほど
200デフォルトの名無しさん
2021/11/30(火) 13:11:18.23ID:b4Wv8Im2 g++ 10.3.0は-pedantic指定しても通すな
201デフォルトの名無しさん
2021/11/30(火) 13:27:36.30ID:icNXz82r バカか
0は何にだって成れるだろ
0は何にだって成れるだろ
202デフォルトの名無しさん
2021/11/30(火) 13:38:43.96ID:rrAtEbdN C++とPHPが似てないというニカワかと?
Pythonやルビーやjavascriptよりも似てるだろ?
C++にある関数をそのままPHPでも使えるようにしてあるのが多いし
Pythonやルビーやjavascriptよりも似てるだろ?
C++にある関数をそのままPHPでも使えるようにしてあるのが多いし
203デフォルトの名無しさん
2021/11/30(火) 13:39:41.94ID:b4Wv8Im2204デフォルトの名無しさん
2021/11/30(火) 14:06:04.92ID:+4eAilPB >>202
そんなだから馬鹿って言われるんだ
そんなだから馬鹿って言われるんだ
205デフォルトの名無しさん
2021/11/30(火) 18:50:06.68ID:5lYBSuU/ C++Builder使った後にVisual Studio使って、
二層作ったらC++Builderがめちゃくちゃ簡単で
作りやすかったんですけど私の感覚、何か変?
Visual Studioより効率いい気がしました。
二層作ったらC++Builderがめちゃくちゃ簡単で
作りやすかったんですけど私の感覚、何か変?
Visual Studioより効率いい気がしました。
206デフォルトの名無しさん
2021/11/30(火) 19:29:52.87ID:32XX4NDe 20年以上前ならいざしらず今C++Builderなんて使おうとする人は変としか・・・
207デフォルトの名無しさん
2021/11/30(火) 19:37:40.43ID:TJjyIr2u 普通はRust使うよね。
208デフォルトの名無しさん
2021/11/30(火) 19:38:36.27ID:ARnSQzz0 くそ言語Rust
209デフォルトの名無しさん
2021/11/30(火) 19:52:55.16ID:icNXz82r c#だろ
バカめが
バカめが
210デフォルトの名無しさん
2021/11/30(火) 20:01:01.54ID:xp1LudPy 20年以上前は言い過ぎ
自分は2009を大事に使っている
自分は2009を大事に使っている
211デフォルトの名無しさん
2021/11/30(火) 21:27:19.33ID:32XX4NDe うちでは2000年以降のborlandはそれ以前に開発されたものの保守以外で使用することはなかったから
2000年以前でもほぼMSVCの独壇場だった
2000年以前でもほぼMSVCの独壇場だった
212デフォルトの名無しさん
2021/11/30(火) 21:31:10.33ID:XVXDilRK BuilderというよりRAD Studioやろ?
213デフォルトの名無しさん
2021/12/01(水) 23:25:36.03ID:toM1ybPg >>14
数学記号増やしたところで、数学記号はレイアウトの問題がかなりついて回るのであまり意味ないと思うけどなあ。2^2^2^2とか、定積分とか、分数とか表現できないでしょ。
そういうのは組版の問題。
まあ、たしかにイタリックのxとかはあるのに、イタリック(?)のπはないとかは、中途半端な気はするけどね。
数学記号増やしたところで、数学記号はレイアウトの問題がかなりついて回るのであまり意味ないと思うけどなあ。2^2^2^2とか、定積分とか、分数とか表現できないでしょ。
そういうのは組版の問題。
まあ、たしかにイタリックのxとかはあるのに、イタリック(?)のπはないとかは、中途半端な気はするけどね。
214デフォルトの名無しさん
2021/12/02(木) 08:09:16.16ID:5C7dh5cI std::set にラムダ式渡すとき
std::set<T, decltype(comp)> s(comp);
ってなるのダサすぎるんだけどどうにかならない?
std::set<T> s([](T x, T y) { return x < y; });
みたいに直接書きたい
make_set みたいな関数テンプレート用意すれば解決するのはわかるんだけどクラステンプレートだとどうしてダメなんだ
あとこれが自作クラスだった場合推論補助とかでどうにかできるんだろうか
std::set<T, decltype(comp)> s(comp);
ってなるのダサすぎるんだけどどうにかならない?
std::set<T> s([](T x, T y) { return x < y; });
みたいに直接書きたい
make_set みたいな関数テンプレート用意すれば解決するのはわかるんだけどクラステンプレートだとどうしてダメなんだ
あとこれが自作クラスだった場合推論補助とかでどうにかできるんだろうか
215デフォルトの名無しさん
2021/12/02(木) 08:50:46.97ID:boATToTk >>214
これなら通るんだけど
template <typename T> std::set(T(&)(T,T)) -> std::set<T, T(&)(T,T)>;
int comp(int x, int y) { return x < y; }
std::set s(comp);
compをラムダやテンプレートにするとdeductionに失敗するね
これなら通るんだけど
template <typename T> std::set(T(&)(T,T)) -> std::set<T, T(&)(T,T)>;
int comp(int x, int y) { return x < y; }
std::set s(comp);
compをラムダやテンプレートにするとdeductionに失敗するね
216デフォルトの名無しさん
2021/12/02(木) 08:57:10.12ID:l5gglxms217デフォルトの名無しさん
2021/12/02(木) 10:08:07.72ID:0ZST/pCU >>214 std::function<bool (T,T)> 使っちゃダメなの?
218デフォルトの名無しさん
2021/12/02(木) 15:14:03.44ID:2R2gcOCs πの人まだいたんだなω
219デフォルトの名無しさん
2021/12/02(木) 16:55:10.70ID:BMPRSKoA220デフォルトの名無しさん
2021/12/02(木) 18:05:22.46ID:X/wGilGd221デフォルトの名無しさん
2021/12/02(木) 18:17:52.07ID:BMPRSKoA >>220
せめて
https://meta.wikimedia.org/wiki/Help:Displaying_a_formula/ja
に載っている文字は全部表示してほしいですね… >>220 は全然足りないとおもいますよ
せめて
https://meta.wikimedia.org/wiki/Help:Displaying_a_formula/ja
に載っている文字は全部表示してほしいですね… >>220 は全然足りないとおもいますよ
222デフォルトの名無しさん
2021/12/02(木) 19:00:15.54ID:xMkISEUv >>221
https://www.compart.com/en/unicode/search?q=math#blocks
なんか抜けているのあったっけ?
Arrowをmath専用にして欲しいとか?
https://www.compart.com/en/unicode/search?q=arrow#blocks
https://www.compart.com/en/unicode/search?q=math#blocks
なんか抜けているのあったっけ?
Arrowをmath専用にして欲しいとか?
https://www.compart.com/en/unicode/search?q=arrow#blocks
223デフォルトの名無しさん
2021/12/02(木) 20:38:05.02ID:MbA5frdV224デフォルトの名無しさん
2021/12/02(木) 20:50:59.39ID:rnInpLg+225デフォルトの名無しさん
2021/12/02(木) 23:20:50.87ID:kbM6t4K6 C++20なら、こんな書き方はできる
std::set<T, decltype([](T x, T y) { return x < y; })> s;
https://cpprefjp.github.io/lang/cpp20/default_constructible_and_assignable_stateless_lambdas.html
std::set<T, decltype([](T x, T y) { return x < y; })> s;
https://cpprefjp.github.io/lang/cpp20/default_constructible_and_assignable_stateless_lambdas.html
226デフォルトの名無しさん
2021/12/05(日) 09:34:11.45ID:nrpyYaDv (float) std::sin(3.14);
これの三角関数の左の(float)ってどういう意味ですか??
これの三角関数の左の(float)ってどういう意味ですか??
227デフォルトの名無しさん
2021/12/05(日) 09:47:34.80ID:s0V2liBt キャストでぐぐれ
228デフォルトの名無しさん
2021/12/05(日) 11:30:58.25ID:nrpyYaDv あなるほど
C形式のキャストでdoubleからfloatに変換してるんですね
C形式のキャストでdoubleからfloatに変換してるんですね
229デフォルトの名無しさん
2021/12/05(日) 12:19:36.79ID:ZXOJuLfE × C形式
○ キャスト記法
○ キャスト記法
230デフォルトの名無しさん
2021/12/05(日) 18:20:14.63ID:jjkrjYLo C形式のキャストでええやろ
C++ならstatic_castでキャストするべきところ
C++ならstatic_castでキャストするべきところ
231デフォルトの名無しさん
2021/12/05(日) 18:26:41.52ID:BgqX0HXa 精度がfloatでいいならsinf使え
232デフォルトの名無しさん
2021/12/05(日) 19:23:24.64ID:ZXOJuLfE233デフォルトの名無しさん
2021/12/05(日) 20:16:51.63ID:DeLDBVlq いまだに用語警察っているんだなw
234デフォルトの名無しさん
2021/12/05(日) 20:29:45.29ID:jjkrjYLo C++11以降にJIS規格は存在しないし, ぶっちゃけ本当に誰もキャスト形式なんて呼んでないし (T) cast-expression とさえ呼ばれない。
C++ Core GuidelinesやgccやclangでもC-style(やold-style)と表現しているのだからそんな古臭い分かりにくい用語を押し付ける必然性がない
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Pro-type-cstylecast
C++ Core GuidelinesやgccやclangでもC-style(やold-style)と表現しているのだからそんな古臭い分かりにくい用語を押し付ける必然性がない
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Pro-type-cstylecast
235デフォルトの名無しさん
2021/12/05(日) 20:34:58.49ID:CHJdF2OL 用語の間違いで意味の取り違えが起きるような場面ならはっきりさせておくべきだが今回はどうでもいいな。
236デフォルトの名無しさん
2021/12/06(月) 07:47:05.01ID:g0v08EwR237デフォルトの名無しさん
2021/12/06(月) 08:09:01.81ID:3cd7zaNc また下らん揚げ足取り君が来たw
238デフォルトの名無しさん
2021/12/06(月) 18:36:58.89ID:g0v08EwR 揚げ足じゃねえよ
話の根幹に拘わることだ
まともに反駁できないなら
黙っているのが得策だぞ
話の根幹に拘わることだ
まともに反駁できないなら
黙っているのが得策だぞ
239デフォルトの名無しさん
2021/12/06(月) 21:16:52.28ID:dR0HZDjS 訂正の益があったとしても(今回は全くなさそうだが)用語警察は不要
書き込みの意味が文脈から一意であれば問題ない
黙ってろ
書き込みの意味が文脈から一意であれば問題ない
黙ってろ
240デフォルトの名無しさん
2021/12/06(月) 21:23:49.13ID:XPddKxbx constructorとdestructorを常に生成子・消去子と呼んでる者だけがJIS規格を振り回しなさい
241デフォルトの名無しさん
2021/12/06(月) 22:13:15.88ID:Zqmej2qN オレ用語を高圧的な態度で押しつけてくるやつとは仕事したくねえ
242デフォルトの名無しさん
2021/12/07(火) 00:15:41.50ID:35fMaRJu >>219
今から考えれば NECのPC-8801 のBASIC言語は数学好きに合っていた。
当時のNECの社長は、東大物理の大学院出の人だったらしい。
その人がTOPにいる間はNECのパソコンは日本で一斉を風靡していたが、
その人が降りてからは、嘘の様に勢いがなくなった。
今から考えれば NECのPC-8801 のBASIC言語は数学好きに合っていた。
当時のNECの社長は、東大物理の大学院出の人だったらしい。
その人がTOPにいる間はNECのパソコンは日本で一斉を風靡していたが、
その人が降りてからは、嘘の様に勢いがなくなった。
243デフォルトの名無しさん
2021/12/07(火) 13:20:30.29ID:XtC4oDEh みんなコルーチン使ってる?
244デフォルトの名無しさん
2021/12/07(火) 13:44:30.14ID:bN2QwYhk コルーチンはいろいろ制限が多くてな、最近はfiberの方を使ってる
機種依存APIを使う必要がある、実行効率が若干落ちる、スタック用のメモリを大量消費する、トレースデバッグがやりづらい等のデメリットはあるが、
本物のyieldはやっぱ便利よ
機種依存APIを使う必要がある、実行効率が若干落ちる、スタック用のメモリを大量消費する、トレースデバッグがやりづらい等のデメリットはあるが、
本物のyieldはやっぱ便利よ
245デフォルトの名無しさん
2021/12/07(火) 14:37:49.13ID:RTlriAYU c+のvectorって無限に要素追加したらどうなりますか?
例えばwhile (1) でemplace_back()し続けた時の挙動です。javaみたいにちゃんとoutofmemoryエラー吐くようにできてますか?
例えばwhile (1) でemplace_back()し続けた時の挙動です。javaみたいにちゃんとoutofmemoryエラー吐くようにできてますか?
246デフォルトの名無しさん
2021/12/07(火) 14:52:13.72ID:N5mK0FmF 「ちゃんとout of memoryエラーを吐く」というのは突き詰めるとものすごく難しい概念なので、どこまでを求めるかによる
Javaにしても本当にどのレベルまで正しくやれてるのかは知らん
まあ「なんかあったらstd::bad_alloc投げて来るやろ」で99%のケースは事足りると思うけど
Javaにしても本当にどのレベルまで正しくやれてるのかは知らん
まあ「なんかあったらstd::bad_alloc投げて来るやろ」で99%のケースは事足りると思うけど
247デフォルトの名無しさん
2021/12/07(火) 14:57:50.91ID:xk7e4Rn1 例えば普通のアプリだと、C++とか関係なく最近のOSのメモリ確保は仮想メモリの確保なので、実際にそのアドレスが使われて初めて物理アドレスが確保され、スワップ領域が足りない場合もそのとき検出される。
248デフォルトの名無しさん
2021/12/07(火) 14:57:56.04ID:Z6YBtzSC mallocに失敗すればbad_allocが投げられるが
実際のところmallocが失敗するときにできることは殆ど無いと認識している
実際のところmallocが失敗するときにできることは殆ど無いと認識している
249デフォルトの名無しさん
2021/12/07(火) 15:01:16.11ID:i9OSA5UU >>179
そもそも C++ から Fortran で書かれてるオリジナルの BLAS とか LAPACK を呼ぶこともできるのだから、その辺は別に何でも良い
そんなことよりも多次元配列をどう持つかの方が C++ にとっては難しい課題だ
Cの多次元配列や一次元配列として持つのはユーザ側の負担が大き過ぎる
boost の multi_array は放置されている (move セマンティクスに対応してすらない)
xtensor みたいなサードパーティのものをわざわざ使うのも…… (つーかどれもパッとしない)
早く多次元配列くらい公式で用意してほしい
そもそも C++ から Fortran で書かれてるオリジナルの BLAS とか LAPACK を呼ぶこともできるのだから、その辺は別に何でも良い
そんなことよりも多次元配列をどう持つかの方が C++ にとっては難しい課題だ
Cの多次元配列や一次元配列として持つのはユーザ側の負担が大き過ぎる
boost の multi_array は放置されている (move セマンティクスに対応してすらない)
xtensor みたいなサードパーティのものをわざわざ使うのも…… (つーかどれもパッとしない)
早く多次元配列くらい公式で用意してほしい
250デフォルトの名無しさん
2021/12/07(火) 15:42:17.22ID:bN4twrqH 多次元といっても中身掛け算の一次元だしな
251デフォルトの名無しさん
2021/12/07(火) 16:20:01.36ID:m1NjLpbT class foo : vector<mystruct>
みたいなクラスを作っているんだけど
クラス内の関数で自身の配列の構造体の関数を呼ぶにはどうしたらいいんだろう?
this[a]->set(0);
と書いてもメンバーがありませんと出て困ってます😭
みたいなクラスを作っているんだけど
クラス内の関数で自身の配列の構造体の関数を呼ぶにはどうしたらいいんだろう?
this[a]->set(0);
と書いてもメンバーがありませんと出て困ってます😭
252デフォルトの名無しさん
2021/12/07(火) 16:24:10.42ID:bN4twrqH (*this)[a]->set(0);
253デフォルトの名無しさん
2021/12/07(火) 16:32:15.84ID:m1NjLpbT254デフォルトの名無しさん
2021/12/07(火) 17:48:46.48ID:D9y2bkeI そういうときはat()使ってる
255デフォルトの名無しさん
2021/12/07(火) 18:03:51.96ID:bN4twrqH atは範囲チェック分鈍くなるの我慢出来るなら有
あと例外飛ばすからtry〜catch節必須
あと例外飛ばすからtry〜catch節必須
256デフォルトの名無しさん
2021/12/07(火) 20:03:22.82ID:CgArR1cc257デフォルトの名無しさん
2021/12/07(火) 21:29:05.30ID:C8BO015l std::vectorのデストラクタはvirtualじゃないから気を付けてね、念のため
258デフォルトの名無しさん
2021/12/07(火) 22:45:19.35ID:eXh2WItM abort()したら生きている自動オブジェクトは
どうなってし
まいますの?
どうなってし
まいますの?
259デフォルトの名無しさん
2021/12/08(水) 00:17:43.36ID:19ueGHR5 #include <iostream>
#include <cstdlib>
using namespace std;
struct s {
~s() {cout << "called." << endl;}
};
int main() {
s a;
abort();
return 0;
}
https://ideone.com/YDdO5O
https://cpprefjp.github.io/reference/cstdlib/abort.html
#include <cstdlib>
using namespace std;
struct s {
~s() {cout << "called." << endl;}
};
int main() {
s a;
abort();
return 0;
}
https://ideone.com/YDdO5O
https://cpprefjp.github.io/reference/cstdlib/abort.html
260デフォルトの名無しさん
2021/12/08(水) 00:51:11.41ID:x9fXkANc abortより例外飛ばした方が確実だな(VC++6.0を除く
261デフォルトの名無しさん
2021/12/08(水) 07:27:41.53ID:HL2646/9262デフォルトの名無しさん
2021/12/08(水) 07:58:51.26ID:ZH5V4J5Q 多次元配列 (mdspanだっけ) ってまだSTLに入らんの?
線形代数アルゴリズムはBLAS、LAPACKはじめ外部のライブラリに頼らざるを得ないんだから、最小限の機能だけ備えた取り回しの良いライブラリをさっさと入れちゃえば良いのに
この機械学習全盛の時代に置いてかれるよね
線形代数アルゴリズムはBLAS、LAPACKはじめ外部のライブラリに頼らざるを得ないんだから、最小限の機能だけ備えた取り回しの良いライブラリをさっさと入れちゃえば良いのに
この機械学習全盛の時代に置いてかれるよね
263デフォルトの名無しさん
2021/12/08(水) 10:00:58.02ID:19ueGHR5 機械学習全盛なの?
264デフォルトの名無しさん
2021/12/08(水) 13:49:53.98ID:juXg17Zg ああいうライブラリってプラットフォームにべったり依存してるんじゃないの
265デフォルトの名無しさん
2021/12/08(水) 13:51:20.15ID:ADK1Cn8m GoogleのGPUがオンラインで無料でつかえるぞ
Python言語だが
Python言語だが
266デフォルトの名無しさん
2021/12/08(水) 13:56:11.42ID:ADK1Cn8m C言語とかローカルの言語からGoogleのGPUを操作できれば
ローカルで実行してるのと大差なくできると今おもったが
探せばすでにそういったAPIとかある気はしたが
ローカルで実行してるのと大差なくできると今おもったが
探せばすでにそういったAPIとかある気はしたが
267デフォルトの名無しさん
2021/12/08(水) 14:21:17.05ID:19ueGHR5 スレ違い。
Google Colaboratoryはjupyter notebook使えればいいだけ。
!や%%で大抵のことは出来る。
Google Colaboratoryはjupyter notebook使えればいいだけ。
!や%%で大抵のことは出来る。
268デフォルトの名無しさん
2021/12/08(水) 16:19:48.22ID:ZH5V4J5Q >>264
どういうライブラリ?
どういうライブラリ?
269デフォルトの名無しさん
2021/12/09(木) 00:00:00.18ID:y//gPIop >>260
例外飛ばしたら今度はCの関数が処理の途中でぶっちされるやん……?
次のような場合:
foo() // C++で記述、例外をスロー
↑
bar() // Cで記述、ループ内とかでfoo()を呼ぶ
↑
baz() // C/C++で書かれた呼び出し元
例外飛ばしたら今度はCの関数が処理の途中でぶっちされるやん……?
次のような場合:
foo() // C++で記述、例外をスロー
↑
bar() // Cで記述、ループ内とかでfoo()を呼ぶ
↑
baz() // C/C++で書かれた呼び出し元
270デフォルトの名無しさん
2021/12/09(木) 01:16:56.11ID:nwscR4Pq 構造体を関数の中で宣言して戻り値に入れたら
呼び出した側が受け取った値はどこかで開放しないといけないですか?
呼び出した側が受け取った値はどこかで開放しないといけないですか?
271デフォルトの名無しさん
2021/12/09(木) 01:43:46.28ID:9kW8IukA272デフォルトの名無しさん
2021/12/09(木) 07:16:10.87ID:Gl3ymjyg273デフォルトの名無しさん
2021/12/09(木) 09:45:40.72ID:nwscR4Pq274はちみつ餃子 ◆8X2XSCHEME
2021/12/09(木) 10:43:53.70ID:XwSSuf4e そこらへんのメカニズムはどんな入門書にでも書いてあるはずだよ。
C# の経験があると C++ の入門書では重複する考え方も多くて馬鹿らしく思うかもしれないけど、
似て非なる機能や用語で混乱しないためには基礎から学んだほうがいい。
C# の経験があると C++ の入門書では重複する考え方も多くて馬鹿らしく思うかもしれないけど、
似て非なる機能や用語で混乱しないためには基礎から学んだほうがいい。
275デフォルトの名無しさん
2021/12/09(木) 11:33:51.67ID:WBF8gVdC newを知っててもdelete知らなかったりするからな
276デフォルトの名無しさん
2021/12/09(木) 11:45:45.22ID:kWV4UehO そこらじゅうにうんこをばらまいておいて誰かが始末してくれると信じているというわけか
277デフォルトの名無しさん
2021/12/09(木) 12:14:01.37ID:WBF8gVdC やつらメモリーリークという言葉自体知らなかったりするから
278デフォルトの名無しさん
2021/12/09(木) 17:58:28.95ID:0JFBEVvg GC言語でもファイルのcloseはあるから
C++はメモリもあれと同じでnewした物は全部責任持ってdeleteしなきゃならないんだよって教えるんだけど
みんなこの世の終わりみたいな顔する
C++はメモリもあれと同じでnewした物は全部責任持ってdeleteしなきゃならないんだよって教えるんだけど
みんなこの世の終わりみたいな顔する
279デフォルトの名無しさん
2021/12/09(木) 18:13:01.83ID:jWh05eno >>275
w
w
280デフォルトの名無しさん
2021/12/09(木) 20:34:39.79ID:XclkFwFR おまいら「よう、うんこ掃除屋」
unique_ptr「…」
10年後、人類はAIの反乱で滅亡するのでした
unique_ptr「…」
10年後、人類はAIの反乱で滅亡するのでした
281デフォルトの名無しさん
2021/12/09(木) 21:19:33.80ID:JHQQMY8Y コンピューターの計算だから正しいっ!!
282デフォルトの名無しさん
2021/12/09(木) 23:56:02.90ID:y//gPIop283デフォルトの名無しさん
2021/12/09(木) 23:59:22.21ID:9kW8IukA >>282
Cで書かれてるならデストラクタなどはないのでメモリ解放で破棄
Cで書かれてるならデストラクタなどはないのでメモリ解放で破棄
284デフォルトの名無しさん
2021/12/09(木) 23:59:43.06ID:y//gPIop Cの構造体はunwindされずただぶっちされるだけ
コードの実行がぶっちされるのはC/C++共通う
コードの実行がぶっちされるのはC/C++共通う
285デフォルトの名無しさん
2021/12/10(金) 00:07:01.17ID:4mUmJ7za 自身を適切に開放なり後始末なりするデストラクタを持たないオブジェクトは例外でほぼ等しく致命傷を負う
そういうデストラクタを持っているつもりでも、コードの実行順がぶっちされることにより、
プログラマーの不注意ですぐ致命傷を負う
そういうデストラクタを持っているつもりでも、コードの実行順がぶっちされることにより、
プログラマーの不注意ですぐ致命傷を負う
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★10 [BFU★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★2 [ぐれ★]
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 ★2 [蚤の市★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 国民・榛葉氏「中国焦ってる」 ★2 [ぐれ★]
- 中国の水産物輸入停止172社に影響の可能性…中国向け販売額は平均47.8% 帝国データバンク [ぐれ★]
- 【正義のミカタ】ほんこん さん「非核三原則は憲法に書いてない。核兵器持ったらええがな」 [201193242]
- GDP世界二位だった日本国が、ここまで衰退腐敗してしまった原因って冗談抜きで何????? [804169411]
- 【悲報】国連、日本を「先進国」から「高所得国」へ再分類、事実上の格下げ [769931615]
- 【画像】ネトウヨと会話が成立しない理由がこちら・・・😱 [441660812]
- 日本人「憲法9条があれば侵略されないって叫んでた売国左翼のゴミどもは今どんな気分?😂wwwwww」 [441660812]
- 【んな専🏡】三連休もんなってんなってんなりまくるのらよ🍬(・o・🍬)🏰
