前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/
探検
C++相談室 part158
■ このスレッドは過去ログ倉庫に格納されています
2021/11/15(月) 18:49:18.44ID:I69rZ/Of
157デフォルトの名無しさん
2021/11/24(水) 11:48:13.06ID:jtZYcQVF 単にステートレスラムダを関数ポインタに変換したいならこういう有名なハックがある
auto p = +[]{};
auto p = +[]{};
158デフォルトの名無しさん
2021/11/24(水) 12:47:46.56ID:xQvD3wWY159デフォルトの名無しさん
2021/11/24(水) 12:55:27.21ID:xQvD3wWY ポインタに単項プラスなんぞ考えたこともなかった
void test(char* p)
{
cout << +p << endl;
cout << *+p << endl;
cout << *(0+p) << endl;
cout << 0[p] << endl;
}
void test(char* p)
{
cout << +p << endl;
cout << *+p << endl;
cout << *(0+p) << endl;
cout << 0[p] << endl;
}
160デフォルトの名無しさん
2021/11/24(水) 15:19:51.62ID:083KFMkM 生配列をポインタに変換するときも単項+使うね
161デフォルトの名無しさん
2021/11/24(水) 15:33:19.13ID:kXzWnsgO >>160
何が嬉しいの
何が嬉しいの
162デフォルトの名無しさん
2021/11/25(木) 09:42:14.59ID:r5Heuy4P C++11 や C++17 や C++20 とかどのオプションでコンパイルされているかを
コンパイル中に判断したいのですが
ソースコード中にどう書けばよいのですか
コンパイル中に判断したいのですが
ソースコード中にどう書けばよいのですか
163デフォルトの名無しさん
2021/11/25(木) 10:11:07.71ID:r5Heuy4P164デフォルトの名無しさん
2021/11/25(木) 10:12:19.59ID:lTzmbhqT 全然解決してなくて草
165デフォルトの名無しさん
2021/11/25(木) 11:00:47.97ID:nZfwh6w7 >>161
#include <iostream>
#include <cstdio>
int main() {
int a[] = {1, 2, 3, 4};
std::printf("%p %p\n", &a, &a + 1);
std::printf("%p %p\n", +a, +a + 1);
int (*p)[4] = &a;
std::printf("%p %p\n", p, p + 1);
int *q = &a[0];
std::printf("%p %p\n", q, q + 1);
return 0;
}
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
つまり&a[0]と書くのを+aと書くだけですませられる
どっちが分かりやすいかはさておき
#include <iostream>
#include <cstdio>
int main() {
int a[] = {1, 2, 3, 4};
std::printf("%p %p\n", &a, &a + 1);
std::printf("%p %p\n", +a, +a + 1);
int (*p)[4] = &a;
std::printf("%p %p\n", p, p + 1);
int *q = &a[0];
std::printf("%p %p\n", q, q + 1);
return 0;
}
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
0x7ffd548f5d00 0x7ffd548f5d10
0x7ffd548f5d00 0x7ffd548f5d04
つまり&a[0]と書くのを+aと書くだけですませられる
どっちが分かりやすいかはさておき
166デフォルトの名無しさん
2021/11/25(木) 11:28:16.28ID:pIkhaGD2 __cplusplus マクロ見るんじゃね?普通は
あとは言語機能ごとのマクロ見たり
あとは言語機能ごとのマクロ見たり
167デフォルトの名無しさん
2021/11/25(木) 11:38:56.35ID:lTzmbhqT まるで間違ってて草
168デフォルトの名無しさん
2021/11/25(木) 13:18:45.98ID:U2fItJ5c169デフォルトの名無しさん
2021/11/25(木) 14:43:49.72ID:Ts2h3uwp みんなテキトーだなー(棒)
170はちみつ餃子 ◆8X2XSCHEME
2021/11/26(金) 02:28:38.10ID:qCsl9kRb >>166
処理系がちゃんとそのへんのルールを守ってくれればいいが現実は非情である。
処理系がちゃんとそのへんのルールを守ってくれればいいが現実は非情である。
171デフォルトの名無しさん
2021/11/26(金) 21:22:58.84ID:Hq7eoo6P172デフォルトの名無しさん
2021/11/27(土) 03:24:08.24ID:ymghmbi1 The following macro names shall be defined by the implementation:
__cplusplus
The name __cplusplus is defined to the value 199711L when compiling a C++ translation unit.
G++ now sets the predefined macro __cplusplus to the correct value, 199711L for C++98/03, and 201103L for C++11.
http://gcc.gnu.org/gcc-4.7/changes.html
But g++ < 4.7.0 is __cplusplus defined alway 1.
https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
__cplusplus
The name __cplusplus is defined to the value 199711L when compiling a C++ translation unit.
G++ now sets the predefined macro __cplusplus to the correct value, 199711L for C++98/03, and 201103L for C++11.
http://gcc.gnu.org/gcc-4.7/changes.html
But g++ < 4.7.0 is __cplusplus defined alway 1.
https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
173デフォルトの名無しさん
2021/11/27(土) 04:01:44.14ID:7zx+CKid いまさらかよ
174デフォルトの名無しさん
2021/11/27(土) 12:26:56.81ID:tS+5RcHX マジかよ知らなかった
GCCくんさぁ…
GCCくんさぁ…
175デフォルトの名無しさん
2021/11/27(土) 13:29:25.44ID:at/FeDW1 >>174
初心者?
初心者?
176デフォルトの名無しさん
2021/11/27(土) 14:01:53.67ID:7zx+CKid リナスもg++の設計にはイラチMAXの筈だわ
177デフォルトの名無しさん
2021/11/27(土) 15:41:12.47ID:dxTMcmeT Rust厨に弱みを魅せるな
178デフォルトの名無しさん
2021/11/27(土) 16:22:10.07ID:GY7utvzm よわみにはつけこまれる
179デフォルトの名無しさん
2021/11/28(日) 21:05:38.19ID:6joWVJIB C++でblas, lapackを使うのにいいインターフェースってどれでしょうか?
調べてたらCppLapack, Lapack++、armadillo とか出てきましたが、定番さとか使いやすさとか教えていただけると嬉しいです
とりあえずは複雑なことはしない予定で、行列の掛け算とか対角化ぐらいが簡潔に書けると嬉しいです
調べてたらCppLapack, Lapack++、armadillo とか出てきましたが、定番さとか使いやすさとか教えていただけると嬉しいです
とりあえずは複雑なことはしない予定で、行列の掛け算とか対角化ぐらいが簡潔に書けると嬉しいです
180デフォルトの名無しさん
2021/11/29(月) 00:38:26.49ID:UEkaTEcQ 久しぶりにC++再開したが
昔からだが
PHPはC++のスクリプト版といえるかのように文法・関数が似てるから
プロトタイプをPHPで作成したほうが時短になるかと?
仮想コードによるアルゴリズムの記述やフローチャートなどに近い
昔からだが
PHPはC++のスクリプト版といえるかのように文法・関数が似てるから
プロトタイプをPHPで作成したほうが時短になるかと?
仮想コードによるアルゴリズムの記述やフローチャートなどに近い
181デフォルトの名無しさん
2021/11/29(月) 00:43:30.91ID:UEkaTEcQ 行列の掛け算とか対角化ならPythonかマキシマでいいとおもうが?
大規模だともしかしたらC++のほうが早いかもしれないが
PythonだとGoogle ColaboratoryとかでGPUをネットワーク使用できたりするが
Colaboratory とは
Colaboratory(略称: Colab)は、ブラウザから Python を記述、実行できるサービスです。次の特長を備えています。
環境構築が不要
GPU への無料アクセス
簡単に共有
https://colab.research.google.com/notebooks/welcome.ipynb
大規模だともしかしたらC++のほうが早いかもしれないが
PythonだとGoogle ColaboratoryとかでGPUをネットワーク使用できたりするが
Colaboratory とは
Colaboratory(略称: Colab)は、ブラウザから Python を記述、実行できるサービスです。次の特長を備えています。
環境構築が不要
GPU への無料アクセス
簡単に共有
https://colab.research.google.com/notebooks/welcome.ipynb
182デフォルトの名無しさん
2021/11/29(月) 01:05:44.61ID:roEk3hNb 宣伝はお断りしています
183デフォルトの名無しさん
2021/11/29(月) 06:13:36.91ID:i8Ax0msm >>179
BLASというとvalarrayだね
BLASというとvalarrayだね
184デフォルトの名無しさん
2021/11/29(月) 11:31:29.88ID:W4Pu+K5+ >>183
は?
は?
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:CgArR1cc■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
- 【有事】高市、🥺麻生太郎に言わされただけだった。悲しいお人形やね…😢 [153490809]
- 高市早苗「中国が戦艦を使ったら存立危機事態」佐藤優氏「戦艦なんて時代遅れの艦船を持ってる訳ねーだろ」 [931948549]
