[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 21:10 / Filesize : 275 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part158



1 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 18:49:18.44 ID:I69rZ/Of.net]
前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/

151 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 08:47:11.69 ID:xQvD3wWY.net]
auto p = (void*)[]{};
これが通らないんだけど
stateless-lambdaは関数と見なせない?

152 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 09:11:02.53 ID:083KFMkM.net]
auto p = (void*)(void (*)())[]{};

153 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 09:17:04.13 ID:xFDMAHHD.net]
auto p = []()->void*{};
もう少し学習しろ

154 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 10:46:50.00 ID:kXzWnsgO.net]
何がしたいんか知らんけど
auto p = [](){};
auto p = []()->void*{};
auto p = []()->void{};
本人の意図が判らんことには絶対に正解に辿り着けない質問大杉

155 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 11:11:35.49 ID:xQvD3wWY.net]
void func1(void*);
void func2(){}
func1(func2);
のようなことをしようとしてて怒られるから
func1((void*)func2);
にしてた

で、func2で名前空間を汚染したくないから
stateless-lambda使おうと思った

156 名前:はちみつ餃子 mailto:sage [2021/11/24(水) 11:25:51.06 ID:nY9AsqgQ.net]
関数 (関数ポインタ) を void* で受ける雑なことをしといて名前空間を汚すのは気にするのか。
まあフレームワークとかの側でそうなってたら仕方ない場合もあるけど……。

157 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 11:28:11.15 ID:P1gN11rG.net]
variant的なことを昔ながらの方法でやっているのかもしれない

158 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 11:41:52.30 ID:kXzWnsgO.net]
auto p = []()->void*{return NULL;};
↑これはOKだが
auto p = []()->void*{};
↑こっちはコンパイルエラーにして欲しいよね

159 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 11:48:13.06 ID:jtZYcQVF.net]
単にステートレスラムダを関数ポインタに変換したいならこういう有名なハックがある
auto p = +[]{};



160 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 12:47:46.56 ID:xQvD3wWY.net]
>>157
おお、これはいい
dx

161 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 12:55:27.21 ID:xQvD3wWY.net]
ポインタに単項プラスなんぞ考えたこともなかった
void test(char* p)
{
cout << +p << endl;
cout << *+p << endl;
cout << *(0+p) << endl;
cout << 0[p] << endl;
}

162 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 15:19:51.62 ID:083KFMkM.net]
生配列をポインタに変換するときも単項+使うね

163 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 15:33:19.13 ID:kXzWnsgO.net]
>>160
何が嬉しいの

164 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 09:42:14.59 ID:r5Heuy4P.net]
C++11 や C++17 や C++20 とかどのオプションでコンパイルされているかを
コンパイル中に判断したいのですが
ソースコード中にどう書けばよいのですか

165 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 10:11:07.71 ID:r5Heuy4P.net]
解決
https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=msvc-160
_MSVC_LANG

166 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 10:12:19.59 ID:lTzmbhqT.net]
全然解決してなくて草

167 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 11:00:47.97 ID:nZfwh6w7.net]
>>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と書くだけですませられる
どっちが分かりやすいかはさておき

168 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 11:28:16.28 ID:pIkhaGD2.net]
__cplusplus マクロ見るんじゃね?普通は
あとは言語機能ごとのマクロ見たり

169 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 11:38:56.35 ID:lTzmbhqT.net]
まるで間違ってて草



170 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 13:18:45.98 ID:U2fItJ5c.net]
>>165
<iostream>いらないね

それとlvalue transformationがかかる場面で
わざわざ単項プラスを使う必要性が
そのサンプルでは示せてないようだが

171 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 14:43:49.72 ID:Ts2h3uwp.net]
みんなテキトーだなー(棒)

172 名前:はちみつ餃子 mailto:sage [2021/11/26(金) 02:28:38.10 ID:qCsl9kRb.net]
>>166
処理系がちゃんとそのへんのルールを守ってくれればいいが現実は非情である。

173 名前:デフォルトの名無しさん mailto:sage [2021/11/26(金) 21:22:58.84 ID:Hq7eoo6P.net]
https://www.youtube.com/watch?v=ia8GncoXA1s

174 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 03:24:08.24 ID:ymghmbi1.net]
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.

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/

175 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 04:01:44.14 ID:7zx+CKid.net]
いまさらかよ

176 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 12:26:56.81 ID:tS+5RcHX.net]
マジかよ知らなかった
GCCくんさぁ…

177 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 13:29:25.44 ID:at/FeDW1.net]
>>174
初心者?

178 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 14:01:53.67 ID:7zx+CKid.net]
リナスもg++の設計にはイラチMAXの筈だわ

179 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 15:41:12.47 ID:dxTMcmeT.net]
Rust厨に弱みを魅せるな



180 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 16:22:10.07 ID:GY7utvzm.net]
よわみにはつけこまれる

181 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 21:05:38.19 ID:6joWVJIB.net]
C++でblas, lapackを使うのにいいインターフェースってどれでしょうか?
調べてたらCppLapack, Lapack++、armadillo とか出てきましたが、定番さとか使いやすさとか教えていただけると嬉しいです

とりあえずは複雑なことはしない予定で、行列の掛け算とか対角化ぐらいが簡潔に書けると嬉しいです

182 名前:デフォルトの名無しさん [2021/11/29(月) 00:38:26.49 ID:UEkaTEcQ.net]
久しぶりにC++再開したが
昔からだが
PHPはC++のスクリプト版といえるかのように文法・関数が似てるから
プロトタイプをPHPで作成したほうが時短になるかと?
仮想コードによるアルゴリズムの記述やフローチャートなどに近い

183 名前:デフォルトの名無しさん [2021/11/29(月) 00:43:30.91 ID:UEkaTEcQ.net]
行列の掛け算とか対角化ならPythonかマキシマでいいとおもうが?
大規模だともしかしたらC++のほうが早いかもしれないが
PythonだとGoogle ColaboratoryとかでGPUをネットワーク使用できたりするが



Colaboratory とは
Colaboratory(略称: Colab)は、ブラウザから Python を記述、実行できるサービスです。次の特長を備えています。
環境構築が不要
GPU への無料アクセス
簡単に共有
https://colab.research.google.com/notebooks/welcome.ipynb

184 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 01:05:44.61 ID:roEk3hNb.net]
宣伝はお断りしています

185 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 06:13:36.91 ID:i8Ax0msm.net]
>>179
BLASというとvalarrayだね

186 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 11:31:29.88 ID:W4Pu+K5+.net]
>>183
は?

187 名前:デフォルトの名無しさん [2021/11/29(月) 14:27:16.33 ID:Afxc3rI9.net]
>PHPはC++のスクリプト版といえるかのように文法・関数が似てる

迷惑するから出鱈目言うな

188 名前:はちみつ餃子 mailto:sage [2021/11/29(月) 14:43:58.00 ID:cgXmRWbT.net]
因果が逆だろう。
似た使い方しかしない人間にとっては似て見えるということもあるんだろうさ。

189 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 14:54:09.52 ID:Swm9PZmw.net]
いや激しく誤解を生む情報だと思うw



190 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 15:15:20.73 ID:zo5XubVi.net]
制御構文が似ていれば似ているように見える人というのは一定数いる
それしか使わないから

191 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 15:19:08.39 ID:LzdsKRCS.net]
C++のこともphpのことも両方ニワカじゃないとなかなか出てこない発言
昨日今日入門書めくってるくらいのレベルじゃないとなかなかできない発言

192 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 09:50:00.96 ID:abbimJAH.net]
template<class T>
void f(T x) {
auto a = x, b = 0;
}

f(0.0);

これgccだとコンパイル通るけど規格的にはダメだよね?

193 名前:デフォルトの名無しさん [2021/11/30(火) 09:57:35.75 ID:+4eAilPB.net]
ok

194 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 10:46:34.33 ID:LDqTXpbe.net]
何が駄目になるの?

195 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 10:48:39.10 ID:b4Wv8Im2.net]
autoの推定がxから導かれるdoubleと0から導かれるintで矛盾しないかって話

196 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 10:51:24.87 ID:icNXz82r.net]
そもそも何の規格だよ
問題あるなら書き直せばいいだろ

197 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 10:58:47.10 ID:b4Wv8Im2.net]
>>190
clは弾くぞ

198 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 11:18:37.50 ID:rIKeeiBO.net]
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 であると読める

199 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 11:29:55.04 ID:dtpnJADB.net]
https://wandbox.org/permlink/GOps3Ikgl1VsvwoU
gcc6.3.0以下とclangだとちゃんとエラーになるな



200 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 11:33:54.11 ID:dtpnJADB.net]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79009

201 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 11:34:06.53 ID:LDqTXpbe.net]
0の部分static_castしなきゃ駄目ということか。なるほど

202 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 13:11:18.23 ID:b4Wv8Im2.net]
g++ 10.3.0は-pedantic指定しても通すな

203 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 13:27:36.30 ID:icNXz82r.net]
バカか
0は何にだって成れるだろ

204 名前:デフォルトの名無しさん [2021/11/30(火) 13:38:43.96 ID:rrAtEbdN.net]
C++とPHPが似てないというニカワかと?
Pythonやルビーやjavascriptよりも似てるだろ?
C++にある関数をそのままPHPでも使えるようにしてあるのが多いし

205 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 13:39:41.94 ID:b4Wv8Im2.net]
>>201
これやってみ
cout << typeid(0).name();

206 名前:デフォルトの名無しさん [2021/11/30(火) 14:06:04.92 ID:+4eAilPB.net]
>>202
そんなだから馬鹿って言われるんだ

207 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 18:50:06.68 ID:5lYBSuU/.net]
C++Builder使った後にVisual Studio使って、
二層作ったらC++Builderがめちゃくちゃ簡単で
作りやすかったんですけど私の感覚、何か変?
Visual Studioより効率いい気がしました。

208 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 19:29:52.87 ID:32XX4NDe.net]
20年以上前ならいざしらず今C++Builderなんて使おうとする人は変としか・・・

209 名前:デフォルトの名無しさん [2021/11/30(火) 19:37:40.43 ID:TJjyIr2u.net]
普通はRust使うよね。



210 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 19:38:36.27 ID:ARnSQzz0.net]
くそ言語Rust

211 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 19:52:55.16 ID:icNXz82r.net]
c#だろ
バカめが

212 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 20:01:01.54 ID:xp1LudPy.net]
20年以上前は言い過ぎ
自分は2009を大事に使っている

213 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 21:27:19.33 ID:32XX4NDe.net]
うちでは2000年以降のborlandはそれ以前に開発されたものの保守以外で使用することはなかったから
2000年以前でもほぼMSVCの独壇場だった

214 名前:デフォルトの名無しさん mailto:sage [2021/11/30(火) 21:31:10.33 ID:XVXDilRK.net]
BuilderというよりRAD Studioやろ?

215 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 23:25:36.03 ID:toM1ybPg.net]
>>14
数学記号増やしたところで、数学記号はレイアウトの問題がかなりついて回るのであまり意味ないと思うけどなあ。2^2^2^2とか、定積分とか、分数とか表現できないでしょ。
そういうのは組版の問題。
まあ、たしかにイタリックのxとかはあるのに、イタリック(?)のπはないとかは、中途半端な気はするけどね。

216 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 08:09:16.16 ID:5C7dh5cI.net]
std::set にラムダ式渡すとき
std::set<T, decltype(comp)> s(comp);
ってなるのダサすぎるんだけどどうにかならない?
std::set<T> s([](T x, T y) { return x < y; });
みたいに直接書きたい

make_set みたいな関数テンプレート用意すれば解決するのはわかるんだけどクラステンプレートだとどうしてダメなんだ

あとこれが自作クラスだった場合推論補助とかでどうにかできるんだろうか

217 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 08:50:46.97 ID:boATToTk.net]
>>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に失敗するね

218 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 08:57:10.12 ID:l5gglxms.net]
>>213
だからさー、あなたが使うフォントで期待したπが表示されないのはフォントのデザイナの問題であってunicodeの問題じゃない
ちゃんと区別できるようになってるんだから

219 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 10:08:07.72 ID:0ZST/pCU.net]
>>214 std::function<bool (T,T)> 使っちゃダメなの?



220 名前:デフォルトの名無しさん [2021/12/02(木) 15:14:03.44 ID:2R2gcOCs.net]
πの人まだいたんだなω

221 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 16:55:10.70 ID:BMPRSKoA.net]
>>216
どうでもいい絵文字よりは、数学記号は考慮してほしかったですよね
というかピクトグラムの意味がわかりません、漢字の方がマシ

222 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 18:05:22.46 ID:X/wGilGd.net]
>>219
>>46

Mathematical Italic Small Pi
ttps://www.compart.com/en/unicode/U+1D70B

Mathematical Alphanumeric Symbols
ttps://www.compart.com/en/unicode/block/U+1D400

で、何だっけ?
イタリック(?)のπはない、だったっけ?

223 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 18:17:52.07 ID:BMPRSKoA.net]
>>220
せめて
https://meta.wikimedia.org/wiki/Help:Displaying_a_formula/ja
に載っている文字は全部表示してほしいですね… >>220 は全然足りないとおもいますよ

224 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 19:00:15.54 ID:xMkISEUv.net]
>>221
https://www.compart.com/en/unicode/search?q=math#blocks
なんか抜けているのあったっけ?

Arrowをmath専用にして欲しいとか?
https://www.compart.com/en/unicode/search?q=arrow#blocks

225 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 20:38:05.02 ID:MbA5frdV.net]
>>214
std::set s(std::initializer_list<T>{}, [](T x, T y){return x < y;});
とかどうやろ

226 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 20:50:59.39 ID:rnInpLg+.net]
>>215
ありがとう
悲しい
>>217
比較関数って内部でめちゃくちゃ呼ばれるんでパフォーマンスが気になっちゃう
>>223
なるほどTも推論させればいいのか
トリッキーだけど一番思ってたのに近いかも、ありがとう

227 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 23:20:50.87 ID:kbM6t4K6.net]
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

228 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 09:34:11.45 ID:nrpyYaDv.net]
(float) std::sin(3.14);
これの三角関数の左の(float)ってどういう意味ですか??

229 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 09:47:34.80 ID:s0V2liBt.net]
キャストでぐぐれ



230 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 11:30:58.25 ID:nrpyYaDv.net]
あなるほど
C形式のキャストでdoubleからfloatに変換してるんですね

231 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 12:19:36.79 ID:ZXOJuLfE.net]
× C形式
○ キャスト記法

232 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 18:20:14.63 ID:jjkrjYLo.net]
C形式のキャストでええやろ
C++ならstatic_castでキャストするべきところ

233 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 18:26:41.52 ID:BgqX0HXa.net]
精度がfloatでいいならsinf使え

234 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 19:23:24.64 ID:ZXOJuLfE.net]
>>230
いや、そうではなくJIS規格で定められた用語ってこと

・・・まあね、フレンドが随伴とかちょっと・・・なところあるんだけど

235 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 20:16:51.63 ID:DeLDBVlq.net]
いまだに用語警察っているんだなw

236 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 20:29:45.29 ID:jjkrjYLo.net]
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

237 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 20:34:58.49 ID:CHJdF2OL.net]
用語の間違いで意味の取り違えが起きるような場面ならはっきりさせておくべきだが今回はどうでもいいな。

238 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 07:47:05.01 ID:g0v08EwR.net]
>>234
キャスト形式?
何に対する意見を言っているんだ?

239 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 08:09:01.81 ID:3cd7zaNc.net]
また下らん揚げ足取り君が来たw



240 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 18:36:58.89 ID:g0v08EwR.net]
揚げ足じゃねえよ
話の根幹に拘わることだ

まともに反駁できないなら
黙っているのが得策だぞ

241 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 21:16:52.28 ID:dR0HZDjS.net]
訂正の益があったとしても(今回は全くなさそうだが)用語警察は不要
書き込みの意味が文脈から一意であれば問題ない
黙ってろ

242 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 21:23:49.13 ID:XPddKxbx.net]
constructorとdestructorを常に生成子・消去子と呼んでる者だけがJIS規格を振り回しなさい

243 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 22:13:15.88 ID:Zqmej2qN.net]
オレ用語を高圧的な態度で押しつけてくるやつとは仕事したくねえ

244 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 00:15:41.50 ID:35fMaRJu.net]
>>219
今から考えれば NECのPC-8801 のBASIC言語は数学好きに合っていた。
当時のNECの社長は、東大物理の大学院出の人だったらしい。
その人がTOPにいる間はNECのパソコンは日本で一斉を風靡していたが、
その人が降りてからは、嘘の様に勢いがなくなった。

245 名前:デフォルトの名無しさん [2021/12/07(火) 13:20:30.29 ID:XtC4oDEh.net]
みんなコルーチン使ってる?

246 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 13:44:30.14 ID:bN2QwYhk.net]
コルーチンはいろいろ制限が多くてな、最近はfiberの方を使ってる
機種依存APIを使う必要がある、実行効率が若干落ちる、スタック用のメモリを大量消費する、トレースデバッグがやりづらい等のデメリットはあるが、
本物のyieldはやっぱ便利よ

247 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:37:49.13 ID:RTlriAYU.net]
c+のvectorって無限に要素追加したらどうなりますか?
例えばwhile (1) でemplace_back()し続けた時の挙動です。javaみたいにちゃんとoutofmemoryエラー吐くようにできてますか?

248 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:52:13.72 ID:N5mK0FmF.net]
「ちゃんとout of memoryエラーを吐く」というのは突き詰めるとものすごく難しい概念なので、どこまでを求めるかによる
Javaにしても本当にどのレベルまで正しくやれてるのかは知らん
まあ「なんかあったらstd::bad_alloc投げて来るやろ」で99%のケースは事足りると思うけど

249 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:57:50.91 ID:xk7e4Rn1.net]
例えば普通のアプリだと、C++とか関係なく最近のOSのメモリ確保は仮想メモリの確保なので、実際にそのアドレスが使われて初めて物理アドレスが確保され、スワップ領域が足りない場合もそのとき検出される。



250 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 14:57:56.04 ID:Z6YBtzSC.net]
mallocに失敗すればbad_allocが投げられるが
実際のところmallocが失敗するときにできることは殆ど無いと認識している

251 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 15:01:16.11 ID:i9OSA5UU.net]
>>179
そもそも C++ から Fortran で書かれてるオリジナルの BLAS とか LAPACK を呼ぶこともできるのだから、その辺は別に何でも良い

そんなことよりも多次元配列をどう持つかの方が C++ にとっては難しい課題だ
Cの多次元配列や一次元配列として持つのはユーザ側の負担が大き過ぎる
boost の multi_array は放置されている (move セマンティクスに対応してすらない)
xtensor みたいなサードパーティのものをわざわざ使うのも…… (つーかどれもパッとしない)
早く多次元配列くらい公式で用意してほしい






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef