C++相談室 part161

■ このスレッドは過去ログ倉庫に格納されています
2022/05/21(土) 21:23:29.59ID:kYXfaM+5
前スレ
C++相談室 part160
https://mevius.5ch.net/test/read.cgi/tech/1649979572/
2022/06/23(木) 18:26:17.60ID:rC+mT8P4
偶によくC++読み書き出来ない奴がレスしてるんだけどどっから湧いてきてんの
2022/06/23(木) 21:32:27.41ID:m7vQCh0J
いよいよ Java のクラスライブラリを C++ に移植しようと思っていますが、需要はありますか?
そろそろ共通のクラスライブラリが確立されてもいいと思っているのですが、あまりそんな話がないのが不思議です
285デフォルトの名無しさん
垢版 |
2022/06/23(木) 22:23:51.49ID:R7SBWA0E
需要あるのでよろしくお願いします
2022/06/23(木) 22:27:04.30ID:YY1MWhdq
がんばれ!
287デフォルトの名無しさん
垢版 |
2022/06/23(木) 22:59:01.86ID:lRxLFmXq
stdやboostじゃ不足か?
2022/06/23(木) 23:46:22.08ID:Q9NpIN8Z
>>284
見せてもらおうか!!
◆QZaw55cn4c謹製ライブラリの性能とやらを!!
2022/06/24(金) 00:00:51.28ID:KtheM8QT
>>287
OO な各言語で名前と機能が共通するライブラリの必要性を痛切に感じているのです
提供されるクラスライブラリが共通であれば、各種言語の純粋な潜在的能力に応じた評価が可能となります
2022/06/24(金) 00:02:46.32ID:KtheM8QT
>>288
性能よりも、各言語で名前と機能の紐づけが共通することを優先します
2022/06/24(金) 00:17:55.81ID:0z9KCe6G
Javaクラスどうこうよりもfinallyステートメントをどうするかなんでは
2022/06/24(金) 10:21:14.00ID:ZX81zd9Z
>>291
ああ、それ、ありましたね finally か、結構重たい課題ですね
293デフォルトの名無しさん
垢版 |
2022/06/24(金) 10:44:21.40ID:K2we1Lar
お願いですから名前は短くしてくださいね
2022/06/24(金) 13:31:54.09ID:dbAYBMOA
>>282
template <typename T> を template <class T> と書いただけでジジイ呼ばわりするようなもんだぞ
誰もtypoの話なんかしてない
あ、1人だけいるのかw
2022/06/24(金) 14:41:08.15ID:frIgvkyi

typename と書く方が文法的に新しいの?
2022/06/24(金) 15:47:15.76ID:STd+R5JH
>>295
いいえ。 少なくとも ISO の規格としては最初から有りますし (型引数のところに書く分には) 機能的な差もないです。
だから、 >>294 は単なる表記の揺らぎにすぎない (どちらが間違いというものでもない) 例として出しているんだと思います。
2022/06/24(金) 18:40:02.03ID:dbAYBMOA
>>295
CでC89以前にK&R Cがあったように
C++でもC++98以前にARM C++があった

ISO限定で言うと餃子の言うようになるが
もっと遡るとtypenameは後からできたもので
ARM C++では<class T>という書き方しかできなかった
2022/06/24(金) 21:00:22.61ID:VuV41aeC
三十年くらい前にC++primerだったかな?
「typenameとclassならclassのほうで書いとけ、
なぜならタイプ数が少ないから」
みたいに書いてるところがあって(半分ジョークなんだろうな)
最初にそれで刷り込まれてるからclassでしか書いたことない
2022/06/24(金) 21:15:01.67ID:uqZOpMdD
structと書くことも
300デフォルトの名無しさん
垢版 |
2022/06/24(金) 22:03:13.47ID:JvzMg+3d
C++ってstaticメソッド継承されますっけ?
Parent.Hoge()ってChild.Hoge()としても呼べます?

あるスクリプト言語を使ってた時にどうやら継承されてなかったようで、言語ごとに違うのか気になりました
2022/06/24(金) 22:13:15.23ID:zVbF8VlC
はい。
2022/06/24(金) 22:31:13.16ID:STd+R5JH
型引数は class と書いてあってもクラスに分類されない型 (スカラ型など) を受け取れるのでなんか変な気分ではあるな……。
それでも私は class キーワード派だけど。
2022/06/24(金) 22:46:12.30ID:TGTBUWMm
modern C++ designの著者は、ユーザー定義型のみを想定してる場合はclass,
組み込み型も想定してる場合はtypenameにしてると書いてたな
2022/06/24(金) 23:16:18.24ID:jv7PClvp
今はそういうのはコンセプトの仕事だからなあ
305デフォルトの名無しさん
垢版 |
2022/06/25(土) 10:55:48.71ID:23CjKpU2
>>300
private とか protected とか知ってるか
306デフォルトの名無しさん
垢版 |
2022/06/25(土) 11:54:25.28ID:xaZtK0Rm
private踏んだりしたらエラーメッセージ見れば済む話だと思うが
class継承のときのpublicつけ忘れでprivate扱いになるのはやらかしてそう

class C{
public: static void f(){}
};
class D : public C{};

int main(){D::f();}
2022/06/25(土) 12:22:32.29ID:UASxpJXI
>>306
エラーにならんが、何が言いたい?
308デフォルトの名無しさん
垢版 |
2022/06/25(土) 13:43:07.60ID:xaZtK0Rm
>>307
class継承のpublic忘れるとエラーになるよと言う話
2箇所あるpublicのどっちか消してみなよ
2022/06/25(土) 13:45:13.45ID:KYOYlq4y
static関係なくね?
310デフォルトの名無しさん
垢版 |
2022/06/25(土) 13:48:22.71ID:23CjKpU2
publicつけ忘れで
311デフォルトの名無しさん
垢版 |
2022/06/25(土) 13:49:20.71ID:23CjKpU2
>>309
staticもつけ忘れたのか
どんくさいなお前
2022/06/25(土) 17:46:22.26ID:x+PfXs9r
>>279
数論変換はしばし待たれよ卿、
NTT有名素数modとしてよく使われるのは
 998244353 = 2^23 * 119 + 1
やそうやがこれ単独では2^23桁で表せる数値までの計算しかできないことは確定的に明らか
10^5進数表記をとったとして2^(2^34)-1はで表して
 1034331189 > 2^29 桁 >> 2^23桁
なのでストレートにやるとしたら足りないのであっる

一方Six-step algorithmを導入したらば2^15桁までのFFTで済むから、NTT化が射程に入ってくる

というわけで漏れは天才の判断としてまず1の累乗根のFFT×Six-step algorithmを
OpenMPで激速化することを極めんとしているわけや;;;
2022/06/25(土) 17:47:57.25ID:x+PfXs9r
それと>>279の口ぶりでは数論変換にしたら桁違いに早くなるみたいに読めるが
double同士の掛け算2^15回分が
int64同士の掛け算2^15回分に高速化される程度であって現行のレコード145 秒が100 秒切れるようになるか
っていうとビミョー

はい論破、
2022/06/25(土) 18:01:39.85ID:x+PfXs9r
>>302の行間に書いてある通り、型引数意外の状況でだがtypenameキーワードが必要なケースが存在する
ていうかこれ↓
https://faithandbrave.hateblo.jp/entry/20080129/1201597743

逆に言うと
それ以外ならclassでええやん、、、
2022/06/25(土) 18:04:28.52ID:x+PfXs9r
アンカーミスったorz
誤: >>302
正: >>296
2022/06/25(土) 18:25:49.29ID:XIyeaAEp
またくっさいチラ裏ジジイが湧いたのか
2022/06/25(土) 18:35:28.83ID:x+PfXs9r
ハイハイここは高尚なインターネッツでつね;;;
2022/06/25(土) 19:23:01.22ID:/zwkJ/mi
>>314
なんできゅうにそこのtypenameの話しだすの?
単に型パラメータんとこの話をずっとしてたんやないん今まで
2022/06/25(土) 20:46:58.51ID:JEWFr+UF
>>317
相変わらず誤字を直せねーのな
2022/06/25(土) 21:53:15.48ID:cTvyoIxe
次のセールってハロウィンなっちゃう?
2022/06/25(土) 23:44:17.32ID:BChKe9nl
何の?
2022/06/27(月) 01:22:11.44ID:lmKSzJyY
steamかな
2022/06/29(水) 12:39:09.60ID:CyBPFABm
>>300
>C++ってstaticメソッド継承されますっけ?
継承と言うか「可視」ではある。

>Parent.Hoge()ってChild.Hoge()としても呼べます?
staticメンバを参照したい場合は、インスタンス・メンバとは書き方が違って、
Parent::Hoge() や Child::Hoge()
と書く。

でも微妙だな、Child::Hoge()で呼び出せるかどうか、実験の必要はある。
2022/07/01(金) 12:57:20.10ID:Niu9C9y8
インスタンスからも static メソッドは呼び出せるよ
https://ideone.com/tpA9jy
2022/07/01(金) 14:54:49.17ID:oLSBM8mZ
>>323
なぜ継承を可視と言い直すんだ?
2022/07/01(金) 14:57:39.83ID:to5rXuQ/
ヴァーチャンが使えないからだろ
2022/07/03(日) 05:57:55.66ID:S0pZ0Csa
C++コンパイラっていつからconst char*型引数がbool型引数に暗黙変換されるようになったんだ?
以下のような内容が警告なしでコンパイルできてしまうんだが

int foo(bool bar);

const char* ptr = "test";
foo(ptr);
2022/07/03(日) 07:53:18.35ID:K2/9xttr
スカラ型がboolに暗黙変換できるのは太古から変わってない

int (*p)(bool) = foo;
std::cout << foo; //出力は「1」だがfooが1番地から開始ということではない
2022/07/03(日) 07:54:43.51ID:K2/9xttr
pいらんかったな、わりいわりいw
2022/07/04(月) 13:56:35.75ID:QZHaDXek
みなさまこんにちわ!
暑い日が続きますが質問させてください。

namespace hoge
{
class foo
{
public;
void set(class member_ptr* arg){ptr=arg;}
private;
class member_ptr* ptr=nullptr;
};
}
という名前空間を作成し、それをmember_ptrが定義されているソース(およびヘッダー)ファイルで使用したいです。
ところがmember_ptr*をset()に渡したとき、「hoge::member_ptr*は member_ptr*と互換性がありません」というエラーが出てしまいsます。
名前空間をはずすorポインタ関連の記述をコメントアウトさせると普通に動作するので、大まかなコード自体は問題ないと思うのですが……
リインタプリットキャストも出来ず困り果てておりますが、名前空間内部のメンバにポインタは持たせない方がいいのでしょうか?
それとも名前空間での不完全クラスでの定義がまずいんでしょうか?

ほとほと困り果てております。
わかる方がいらっしゃいましたらお教えいただけれう゛ぁ……
先感謝!
2022/07/04(月) 14:27:48.07ID:3k8jHKP2
>>330
問題が再現するコードを提示してください。
2022/07/04(月) 14:31:47.29ID:SMoN2Nle
へたくそ
333デフォルトの名無しさん
垢版 |
2022/07/04(月) 17:28:39.11ID:nt0V70V1
どっかで
namespace hoge{
class member_ptr;
}
class member_ptr;
みたいなことやってるような気がする

前方宣言(か実体定義)が別の名前空間にあって、同じclassを見てるつもりで別のclassを見ているだけじゃない?
334デフォルトの名無しさん
垢版 |
2022/07/04(月) 17:47:01.88ID:KuJlBNV3
>>331
長文になってしまいますがお許しください。
───────────────
//ptr.h
class ptr
{
public:
ptr(int arg) { a = arg; }
int a = 0;
};
───────────────
//Test.h
namespace Test {
class innerTest
{
public:
class ptr* get_mPtr();
private:
class ptr* mPtr;
};
}
───────────────
//Test.cpp
#include "Test.h"
#include "ptr.h"
ptr* Test::innerTest::get_mPtr()
{
return nullptr;
}
//↑この定義部分で「宣言に互換性がありません」というエラーが出てしまいます
2022/07/04(月) 18:04:55.71ID:3k8jHKP2
>>334
class キーワードを付けた場合にはクラスの宣言を同時にしたものとみなされる。
つまり class ptr* get_mPtr(); と class ptr* mPtr; は「このスコープで」 ptr を宣言したかのように扱われる。
もちろん実際には innerTest の中では ptr の定義はないので不完全型のままだが、
この ptr は Test::innerTest::ptr のつもりで解釈されてる。
グローバル空間で定義している ptr とは別物なので別物というエラーになるわけ。
2022/07/04(月) 18:34:14.66ID:PrdXwxk2
class ptr;
namespace Test {
...
2022/07/04(月) 18:53:01.66ID:tfDB1jS/
Cのstructと同じ感覚でclassって書いちゃってるのかこれ
2022/07/04(月) 18:59:50.67ID:XQTVc721
>>335
> この ptr は Test::innerTest::ptr のつもりで解釈されてる。
Test::ptr だね。
https://timsong-cpp.github.io/cppwp/n4861/basic.scope.pdecl#7.2
339デフォルトの名無しさん
垢版 |
2022/07/04(月) 19:27:20.38ID:KuJlBNV3
>>335!336,338
ありがとうございます!

おっしゃる通りに名前空間の外で前方宣言し、ソース部分で定義したらうまくいきました!
特に理由がない限り、名前空間内部で定義してはいけない(戒め)
ありがとうございました!
340デフォルトの名無しさん
垢版 |
2022/07/05(火) 15:17:54.21ID:CUrAgxNd
有害だな
2022/07/05(火) 20:29:56.62ID:ol9myr0e
You guy
342デフォルトの名無しさん
垢版 |
2022/07/05(火) 23:44:59.73ID:tIUWM2dq
VB.NETからバイナリをC++(JNI)に渡して受け取ったバイナリをJavaに渡したいんですけど、C++で受け取ったBYTEをjobjectに変換する方法が分かりません。
どなたかご存知でしょうか。
2022/07/06(水) 23:58:31.79ID:Hb7nTur+
C++勉強中です。ムーブコンストラクタについて教えてください。
ムーブコンストラクタは、要はムーブ元の指すポインタをムーブ先に変更しているだけだと思います。
これはconstなしコンストラクタでも実現できると思いますが、意図を明示するためにコンストラクタが分かれていると思っていいですか?
また、ムーブコンストラクタの仮引数が右辺値参照になっている(std::moveした右辺値を渡す)理由がよく分からないのですが、これは決まり文句として覚えるしかないでしょうか?
2022/07/07(木) 00:12:38.45ID:wEF1aVE0
>>343
まさにその発想で作られたauto_ptrとかいうスマポ(廃止済み)がとんでもねえゴミカスだったから
その教訓でコピーとムーブが分けられたんだよ
2022/07/07(木) 00:13:26.51ID:owvrtcUU
ムーブって、所有者が移転してると考えた方が
場所なんてどうでもいいでしょう
2022/07/07(木) 00:38:46.12ID:6JbvD3+y
>>343
右辺値は大抵の場合に一時オブジェクトだからどうせすぐに破棄される。
後で別の場所で使うということがないと期待できるから内容を移動してしまっても問題にならないんだ。
だから右辺値を入力とするときは原則としてムーブ扱いにする。
2022/07/07(木) 08:00:15.88ID:dqsYDet1
多分、右辺値参照イコールmoveと覚えてしまってるのでは?
C++11より前は一時オブジェクトとそうでないものを文法上区別することが出来なかったのよ
moveはあくまでキャストに過ぎない、一時オブジェクトでないものを一時オブジェクト扱いにしてるだけ
348343
垢版 |
2022/07/07(木) 23:27:53.10ID:jxXWRXC4
一時オブジェクトにキャストしてすぐ破棄されるようにしたと言っても、
右辺値参照に代入しているのでヌルポインタにするまでは使い続けられますよね
そもそもstd::moveで一時オブジェクトにキャスト、これを右辺値参照で束縛して有効期間を延ばす…って
初めから普通の変数を使えばいいのでは?と思ってしまいました
ムーブを表すための仕組みとして&&とstd::moveの組み合わせが追加されたということなんでしょうかね
349デフォルトの名無しさん
垢版 |
2022/07/07(木) 23:44:43.71ID:a8KVNXrY
>>348
結局そのあたりも含めてC++で複雑化した様々な点を全てシンプルに綺麗に整理し直して分かりやすくした言語が望まれてRustが登場したんだろうね
2022/07/08(金) 00:13:39.16ID:5BE4kGYi
>>348
なんだかその文面からは仕組みを理解しているようには見えない。
2022/07/08(金) 00:21:33.36ID:5BE4kGYi
>>348
何を言いたいのか全然わからない (仕組みを間違って理解しているか用語が誤っているかしている) ので
もうちょっと具体的に実例か何かで示してみて。
2022/07/08(金) 06:38:25.68ID:MdbO63iw
教科書の言葉適当に並べて分かったふりしてる感がすごい
353デフォルトの名無しさん
垢版 |
2022/07/08(金) 08:04:48.18ID:0Bd0SGWI
ムーブは「所有権」をムーブさせるものなので、所有権という概念がないと理解できん
2022/07/08(金) 08:29:23.83ID:ZqNcNR35
>>349
引数渡しのデフォルトをmoveにしているのは失敗だと思うけどな。
性能優先でそうしたんだと思うけど、そういった技術的説明無いから設計ミスにしか見えない。
2022/07/08(金) 09:59:25.74ID:XQyLgyG5
>>354
あれは大正解
実際に色々なプログラミングをするとよくわかってくる
Rustは上手く設計されていることがわかる
2022/07/08(金) 10:12:31.24ID:yJZoYI93
rustのご本が高くてのう
2022/07/08(金) 10:20:08.07ID:u/BCh/UE
右辺値参照って概念的に難しいよね
そもそも右辺値とはなんぞやというところから、一時オブジェクトの生成とそれが破棄されるまでのコンパイラ側の仕組みを的確に理解する必要がある
こんなのよく思いついたなと感心はするけどw
2022/07/08(金) 10:47:23.92ID:lp4DRBe8
テンプレート関数で頻繁に出現する=演算子コピーによるオーバーヘッドを減らす必要に迫られただけの話ジャマイカ?
2022/07/08(金) 10:52:14.97ID:u4+He/YT
>>356
Rust The Book (日本語版)
https://doc.rust-jp.rs/book-ja/
Rust by example book (日本語版)
https://doc.rust-jp.rs/rust-by-example-ja/
Rust cookbook (日本語版)
https://uma0317.github.io/rust-cookbook-ja/
Rust edition guide (日本語版)
https://doc.rust-jp.rs/edition-guide/
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
Rust nomicon book (日本語版)
https://doc.rust-jp.rs/rust-nomicon-ja/
Rust async book (日本語版)
https://async-book-ja.netlify.app/
Rust WASM book (日本語版)
https://moshg.github.io/rustwasm-book-ja/
Rust embeded book (日本語版)
https://tomoyuki-nakabayashi.github.io/book/
Rust enbeded discovery (日本語版)
https://tomoyuki-nakabayashi.github.io/discovery/
Rust Design Patterns (日本語版)
https://qiita.com/Yappii_111/items/4ccc3a8461cdd4035651
https://qiita.com/Yappii_111/items/654717e6a6a980722189
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
2022/07/08(金) 12:00:52.61ID:u/BCh/UE
>>353
「所有権」って言っちゃうと誤解を生むような気がする
実体としてはデストラクタを呼ぶ権利だよね
インスタンス自体は(通常)スタック上に確保されているので、その所有権の移動まではできない
だからこそ「参照」なんだけども
2022/07/08(金) 13:38:22.19ID:GovhUdR1
デストラクタを呼ぶ権利だなんてお前も理解してないだろ
2022/07/08(金) 15:16:55.64ID:bBPWEvXX
>>355
移譲にした方が嬉しい例を示してくれ。
C++なら引数渡ししてもオブジェクトは手元に残るのが常識だから、Rustがわざわざ移譲デフォルトにしているのは違和感しかない。実際、Rust習得の最初の難関が移譲だし。

>>360
本当は「所有権」じゃなくて「管理責任」だからな。スマートポインタとか所有していないリソースの管理とかやらされるし。
2022/07/08(金) 16:27:06.32ID:VZayErSn
>>362
移譲という概念はない
C/C++もRustも同じで&を付けて&varnameの形で渡せば参照渡しとなる
同じ形なので全く違和感はない
所有権を手放さないで渡すには参照渡ししかないのだからその場合は&を付ければよい

もちろんプログラミング言語によって異なる部分もあるのは当然
そんな些細なことを違和感と言うのは極少数の類似言語しか知らないと言ってるようなもの
2022/07/08(金) 16:46:29.18ID:MdbO63iw
まあ所有権というよりは「後始末をする義務」だよな
日常的にポイ捨てしてるモラルの低い人間にはピンとこないかもしれない
2022/07/08(金) 17:07:32.78ID:d0X5Obt/
誰が持ってるかわからんよりは、絶対渡すと決めたほうが安全な気はする
2022/07/08(金) 23:52:34.56ID:J0vSCVey
>>362
それは非常にシンプルで突き詰めれば値渡しと参照渡しの2つしかないところを『参照渡し』は結局ポインタを渡せばよくC/C++/Rust揃って「&変数名」表記
もう一つの『値渡し』のところで少し考えるべきことが出てくる

大きく分けて二つに分かれる
(A) 数値型など値をコピーして渡しても問題なくコストも安い型の場合
(B) ヒープに確保した領域など値をコピーして渡すのはコストも高い型の場合
ここで後者(B)のケースは所有権すなわちメモリ解放責任も関わってくる
Rustでは
(A)タイプの型の場合はコピーして渡す
  →コピー可能な型は所有権なし
(B)タイプの型の場合はムーブして渡す
  →所有権(解放責任)が移動する

もし(B)タイプの型で所有権を保持したまま渡したいならば
 (1) 参照渡しをする
 (2) コストがかかってもよいから明示的にコピー(clone)して渡す
の2通りとなる
つまり
 (3) 所有権をムーブする
と合わせて3通りの渡し方が存在する

最初の問題に戻ると
渡し方の表記「&変数名」と&を付けない「変数名」の二つある表記法を
(1)(2)(3)の3通りのどれに割り当てるかという問題に帰着する
「(1)参照渡し」はC/C++と同じく「&変数名」と記述
そして残る&を付けない「変数名」のみの表記をコストが低い「(3)所有権ムーブ」とした
ちなみにコストが大きくかかる「(2)コピー(clone)」はcloneした時点で別物となり新たな別の所有権(解放責任)が生じているため専用の表記方法は必要ないが強いて式として書けば「変数名.clone()」となる
これはlet x = 変数名.clone(); としておいて「x」とだけ表記して渡すのと同じ
つまり新たに生まれたxをムーブするのと同じになり表記に一貫性がある

以上の理由によりRustでの引数などの渡し方の表記方法は上述のようになっている
367343
垢版 |
2022/07/09(土) 00:02:30.53ID:h3YKvoyj
理解してから質問させてもらったつもりなんですが、まだ全然だったようです
確かに所有権という概念を理解していません
勉強してから出直します
ありがとうございました
368デフォルトの名無しさん
垢版 |
2022/07/09(土) 00:12:24.76ID:GNVCknQf
void君復帰したん?
2022/07/09(土) 09:11:51.90ID:6ug5/LDh
はつみみです。
2022/07/09(土) 10:56:35.87ID:xh0VR/GV
>>367
というより、コードが実際にどういう動作になるかがわかってない感じ(それこそC言語レベルの基本のところ)
もっと書いて実験した方がいいよ
2022/07/09(土) 11:11:15.93ID:tUS5A0PY
move の挙動を「C言語レベルの基本の」サンプルコードで理解できたら画期的だなあ笑
2022/07/09(土) 11:26:32.90ID:v7oB8mPb
Cにはそもそもオーバーロードがないからなあ
2022/07/09(土) 12:51:52.12ID:l8dyP7Xp
エアプだろお前ら
>>348辺りから読み直せ
一時オブジェクトの破棄とか裏で何が起こるかの超基本が理解できてないから
あくまで文法上のことに過ぎないmoveと破棄をごっちゃにしてると言ってる
2022/07/09(土) 12:55:08.37ID:GKrnmeJx
所有権ってデストラクタで破棄する義務を負う、権利とは名ばかりな概念でしょ
2022/07/09(土) 13:07:46.27ID:nKY2xH6j
昔はリファレンスカウンタでやってたな
2022/07/09(土) 13:45:41.58ID:CWVMe8St
自分から破棄しない限りはアクセスできることが保証されるから権利ではあるな
2022/07/09(土) 14:00:45.40ID:GKrnmeJx
オプーナを買う権利をやろう
2022/07/09(土) 14:07:45.84ID:p9oybaSY
エナジーボンボンはCodeVeinに出てくる赤い玉だったんだよ
2022/07/09(土) 16:17:17.24ID:vntA8Dp0
>>376
他からアクセスできることが保証されなければバグってすべておじゃんなのだから
>>376の権利は有難がっても仕方が無い
380デフォルトの名無しさん
垢版 |
2022/07/11(月) 10:49:23.74ID:1W23UOpt
>>358
ほんそれ
381デフォルトの名無しさん
垢版 |
2022/07/11(月) 10:51:27.98ID:1W23UOpt
>>364
ほんそれ++
2022/07/11(月) 21:11:34.35ID:dGJ2mZ34
=std::numeric_limits<decltype(ほんそれ)>::max()
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況