!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part162
https://mevius.5ch.net/test/read.cgi/tech/1667194175/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part163
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ bbda-Axul)
2022/12/30(金) 23:16:31.37ID:DPUEZfMS0202デフォルトの名無しさん (ワッチョイ 4310-Jpma)
2023/01/22(日) 17:51:51.29ID:mu8Nl5mu0 pythonのdecimalで2^256倍精度浮動小数点数の最大値を計算してみた。
https://ideone.com/aCP13Y
mpmathで検算もした。(桁数と先頭から千桁程度まで)
これらはC++だとどういうプログラムになるの?
メモリの容量から全桁の出力や検算は無理だと分かるが、できれば検算して戴きたい。
https://ideone.com/aCP13Y
mpmathで検算もした。(桁数と先頭から千桁程度まで)
これらはC++だとどういうプログラムになるの?
メモリの容量から全桁の出力や検算は無理だと分かるが、できれば検算して戴きたい。
203デフォルトの名無しさん (ラクッペペ MM7f-qqxO)
2023/01/22(日) 18:33:56.85ID:vg7X6MkGM IEEE 754で規格化されてる
204デフォルトの名無しさん (ワッチョイ 4310-Jpma)
2023/01/22(日) 18:53:45.43ID:mu8Nl5mu0 >>203
IEEE754準拠での値で計算してみた。
pythonのdecimalのlogでも検算したので多分合っていると思うが、
C++のプログラムだとどのように計算するのかな?という素朴な疑問です。
ideoneのc++だけでできる?
GMPあたりの任意精度パッケージとか必要になるのかな?
IEEE754準拠での値で計算してみた。
pythonのdecimalのlogでも検算したので多分合っていると思うが、
C++のプログラムだとどのように計算するのかな?という素朴な疑問です。
ideoneのc++だけでできる?
GMPあたりの任意精度パッケージとか必要になるのかな?
205デフォルトの名無しさん (ワッチョイ 4376-gzmJ)
2023/01/22(日) 19:56:25.38ID:6lZDc9UV0 C++標準ライブラリにはないから外部ライブラリに頼ることになる
ideoneがそれ用のライブラリを持ってるか知らんから頑張って探すしかない
ideoneがそれ用のライブラリを持ってるか知らんから頑張って探すしかない
206デフォルトの名無しさん (ワッチョイ 6f8c-Grv2)
2023/01/22(日) 20:32:22.10ID:9f7YJXTs0207デフォルトの名無しさん (ワッチョイ 4310-Jpma)
2023/01/22(日) 20:43:06.21ID:mu8Nl5mu0 参考にします。どうもありがとう。
208デフォルトの名無しさん (ワッチョイ d3bb-j5s0)
2023/01/23(月) 02:24:27.76ID:6OKqnjyz0 C++って最初のバージョンはC言語で開発されましたか?
どこかその話のソースありませんか?
どこかその話のソースありませんか?
209デフォルトの名無しさん (スップ Sd1f-N2va)
2023/01/23(月) 07:10:57.25ID:HN6zkKZyd cfrontはC++をCに翻訳するトランスレータ
というのはソースにならんか?
というのはソースにならんか?
210デフォルトの名無しさん (テテンテンテン MM7f-Grv2)
2023/01/23(月) 08:01:54.02ID:eLWdsBBpM >>208
「C++の設計と進化」を読め。
「C++の設計と進化」を読め。
211デフォルトの名無しさん (ワッチョイ fff0-Jpma)
2023/01/23(月) 08:27:15.10ID:ntFDJsM90 C言語がC++から派生したというのは本当の話ですか?
212デフォルトの名無しさん (ワッチョイ ffad-88l+)
2023/01/23(月) 09:40:42.62ID:K1n6gQar0 >>211
あなたがウソである証拠を示せばいいだけ。他者に証拠を求めてはいけない。
あなたがウソである証拠を示せばいいだけ。他者に証拠を求めてはいけない。
213デフォルトの名無しさん (ワイーワ2 FFdf-1H6R)
2023/01/23(月) 10:00:24.86ID:6gVuxkoXF polymorphic_allocatorなんでコピーでresource伝播してくれないんだ・・・
214はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-j5s0)
2023/01/23(月) 13:17:00.05ID:WcsuDU3H0 >>211
C が始まったとき (1972 年) に C++ は無い。
C++ の前身である C with Classes の歴史の始まりは 1979 年で、そのときは
C のプリプロセッサとして書かれていたしあくまでも C の拡張と見なされていた。
後に C は C++ からかなり多くを取り入れることになるし
現在進行形で取り入れてもいるが、それを「派生」とは普通は呼ばない。
普通は呼ばないがそこらへんは言葉の定義の問題なので「派生」という言葉の
定義によっては無理すれば派生と呼べなくもないかもね。
C が始まったとき (1972 年) に C++ は無い。
C++ の前身である C with Classes の歴史の始まりは 1979 年で、そのときは
C のプリプロセッサとして書かれていたしあくまでも C の拡張と見なされていた。
後に C は C++ からかなり多くを取り入れることになるし
現在進行形で取り入れてもいるが、それを「派生」とは普通は呼ばない。
普通は呼ばないがそこらへんは言葉の定義の問題なので「派生」という言葉の
定義によっては無理すれば派生と呼べなくもないかもね。
215デフォルトの名無しさん (ワッチョイ d3bb-j5s0)
2023/01/23(月) 14:21:27.16ID:6OKqnjyz0216デフォルトの名無しさん (ワッチョイ 736b-li2T)
2023/01/26(木) 06:18:10.77ID:nnR+UHRw0 名前付き引数標準化への動向って今どうなん
標準化はしないから各自勝手にやってねって感じ?
標準化はしないから各自勝手にやってねって感じ?
217デフォルトの名無しさん (ワッチョイ e397-li2T)
2023/01/26(木) 07:48:33.46ID:XZjGtAvJ0 class A{
public:
void operator () () {...}
};
class B : public A{
void func(){
ここでオペレータ()を呼びたいとき、(*this)()としたら呼べますが、this→()では呼べませんでした。
なぜでしょうか?
}
};
public:
void operator () () {...}
};
class B : public A{
void func(){
ここでオペレータ()を呼びたいとき、(*this)()としたら呼べますが、this→()では呼べませんでした。
なぜでしょうか?
}
};
218デフォルトの名無しさん (ガックシ 067f-Ck/1)
2023/01/26(木) 08:02:56.89ID:HqVXg6xF6 >>217
オペレータが左右にとるのは引数でthis->だけだと型が違うから?
オペレータが左右にとるのは引数でthis->だけだと型が違うから?
219デフォルトの名無しさん (テテンテンテン MM7f-Grv2)
2023/01/26(木) 08:03:37.78ID:fdXxt+2fM220デフォルトの名無しさん (ワッチョイ e3f0-kZgD)
2023/01/26(木) 09:02:29.12ID:UDXsjb/60 メソッド
221はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-j5s0)
2023/01/26(木) 11:28:53.15ID:Y60o/Mze0 × メソッド
〇 メンバ関数
〇 メンバ関数
222デフォルトの名無しさん (ワッチョイ e3da-c8s6)
2023/01/26(木) 11:34:13.17ID:EgU8zvdT0 さてはDelphiやってたな
223デフォルトの名無しさん (ワッチョイ cf02-li2T)
2023/01/26(木) 12:10:18.58ID:2OqTfEEK0 >>219様のやり方でできました皆様ありがとうございます
224デフォルトの名無しさん (ワッチョイ cf02-li2T)
2023/01/26(木) 12:11:12.58ID:2OqTfEEK0 すみませんもう一個質問させてください。
template<class T> class A{
public:
void f(){…}
};
template<class T> class B : public A<T>{
public:
void g(){f();}
};
というコードがあったとき、g 内の f が undeclared identifier だというエラーが出ますよね?
T が不明だからそうなるのだと説明されてるのを見たのですが、T はコンパイル時には確定してるのになぜダメなのでしょうか。
template<class T> class A{
public:
void f(){…}
};
template<class T> class B : public A<T>{
public:
void g(){f();}
};
というコードがあったとき、g 内の f が undeclared identifier だというエラーが出ますよね?
T が不明だからそうなるのだと説明されてるのを見たのですが、T はコンパイル時には確定してるのになぜダメなのでしょうか。
225デフォルトの名無しさん (スップ Sd1f-N2va)
2023/01/26(木) 12:18:25.89ID:epYCai+9d template<>class A<void>{};
のようにf()のない特殊化をされる
可能性があるってことさ
のようにf()のない特殊化をされる
可能性があるってことさ
226デフォルトの名無しさん (テテンテンテン MM7f-Grv2)
2023/01/26(木) 12:30:19.94ID:eBsKw41eM227デフォルトの名無しさん (スップ Sd1f-N2va)
2023/01/26(木) 13:28:25.80ID:epYCai+9d SFINAEに使う技
228デフォルトの名無しさん (ワッチョイ 139b-li2T)
2023/01/26(木) 14:00:57.20ID:+VNq3wn00229デフォルトの名無しさん (ワッチョイ c35f-j5s0)
2023/01/26(木) 14:08:41.08ID:UQ2YAYq30 this->f で済むだろうに、設計を変えるほどのことなのか。
230デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/26(木) 14:16:44.11ID:WpjBlsOj0231デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/26(木) 14:17:00.65ID:WpjBlsOj0232デフォルトの名無しさん (ワッチョイ 4376-YIrE)
2023/01/26(木) 20:20:42.59ID:yE3XErdV0 すでに出てるけどA<T>が何者か確定してないので、
(B<int>とかの具体的な型が決まる時ではなく)テンプレート宣言時にエラーになる。
template<class T> class B : public A<T>{
using A<T>::f;
public:
void g(){f();}
};
のように親クラスA<T>にメンバーfがいることを宣言してやればテンプレート宣言自体は通る。
(B<int>とかの具体的な型が決まる時ではなく)テンプレート宣言時にエラーになる。
template<class T> class B : public A<T>{
using A<T>::f;
public:
void g(){f();}
};
のように親クラスA<T>にメンバーfがいることを宣言してやればテンプレート宣言自体は通る。
233デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/26(木) 22:25:04.25ID:WpjBlsOj0234デフォルトの名無しさん (ワッチョイ 5310-8jlp)
2023/01/26(木) 23:06:43.67ID:RzvFLRxY0235デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/26(木) 23:24:47.70ID:WpjBlsOj0236デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/26(木) 23:24:56.86ID:WpjBlsOj0237デフォルトの名無しさん (ワッチョイ 736b-li2T)
2023/01/27(金) 08:40:23.26ID:m0DNDaLC0 テンプレート引数の取得ってどうやるんでしたっけ?
template<int N = 100> class A{
...
};
class B : public A<>{
ここから N (=100) が見えなくて困ってます。
};
template<int N = 100> class A{
...
};
class B : public A<>{
ここから N (=100) が見えなくて困ってます。
};
238デフォルトの名無しさん (ワッチョイ 337c-1i5X)
2023/01/27(金) 08:43:39.83ID:dyzf+7Sd0 Aの中にstatic const int nankanokosuu = N;とか定義しておく
239デフォルトの名無しさん (ワッチョイ b321-Pfi1)
2023/01/27(金) 08:49:13.97ID:zx6ru0te0 >>237
class B : public A<>{
template <template<int> class T, int N> int func(T<N>*) { return N; }
public:
void test()
{
cout << func(this);
}
};
class B : public A<>{
template <template<int> class T, int N> int func(T<N>*) { return N; }
public:
void test()
{
cout << func(this);
}
};
240デフォルトの名無しさん (ラクッペペ MM7f-YWJ8)
2023/01/27(金) 10:58:57.46ID:IAqgV/bpM241デフォルトの名無しさん (スップ Sd1f-kZgD)
2023/01/27(金) 12:06:29.37ID:RdqQfVtbd 性能やリソースと引き換えに楽をする為のものだから
242デフォルトの名無しさん (テテンテンテン MM7f-Grv2)
2023/01/27(金) 12:26:38.33ID:5C1cxDcZM >>240
std::vectorユーザーが直書きとか不可能だろ。
std::vectorユーザーが直書きとか不可能だろ。
243デフォルトの名無しさん (スップ Sd1f-kZgD)
2023/01/27(金) 12:32:39.32ID:RdqQfVtbd 丸々作る必要なんか無いんだよ
244デフォルトの名無しさん (スップ Sd1f-kZgD)
2023/01/27(金) 12:35:25.48ID:RdqQfVtbd 小規模組み込みならそもそもnewやdeleteが使えない環境もある
Cより便利な記述が出来るからC++を使うというだけ
Cより便利な記述が出来るからC++を使うというだけ
245デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/27(金) 12:52:45.15ID:jcVBWYEq0246デフォルトの名無しさん (ワッチョイ c35f-j5s0)
2023/01/27(金) 13:48:07.44ID:a+0fKe/I0 >>240-241 テンプレートで性能やリソースを引き換えにすることなんか無いだろ。
・・・コンパイラの処理時間やメモリ消費の話ならあると思うけど、そういう話?
・・・コンパイラの処理時間やメモリ消費の話ならあると思うけど、そういう話?
247デフォルトの名無しさん (スププ Sd1f-qKKb)
2023/01/27(金) 13:51:05.37ID:mIJqx29Ld マジレスすると C++ のテンプレで頑張るより
Nim 使った方が楽だし時間の節約になるよ
Nim 使った方が楽だし時間の節約になるよ
248デフォルトの名無しさん (スップ Sd1f-kZgD)
2023/01/27(金) 14:14:37.74ID:RdqQfVtbd >>246
組み込みのチープな環境のプログラムを組んで見ればわかるよ
組み込みのチープな環境のプログラムを組んで見ればわかるよ
249デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 14:40:15.09ID:7yNCo9mI0 >>240
ヘボなんだね
ヘボなんだね
250デフォルトの名無しさん (ワッチョイ 735f-Ymzw)
2023/01/27(金) 14:50:32.81ID:MqPTrKVr0 コードサイズは確かに増えるだろうが、性能は本当に測ったんか?
251デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 16:10:15.39ID:k7iFif1Jd チープな環境ではコードサイズが増えるのは致命的
252デフォルトの名無しさん (ワッチョイ c35f-j5s0)
2023/01/27(金) 16:17:02.37ID:a+0fKe/I0253はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-j5s0)
2023/01/27(金) 16:29:51.65ID:B8oMym/70 >>246
テンプレート自体が実行性能の足を引っ張るってことはないが
個々の場面でより性能よく書けるはずのときに汎用部品で済ましてしまうってことはあるんじゃない?
そういうときでも個々の箇所をいじるよりは特殊化を足すだけで済むほうが楽だと思うが。
テンプレート自体が実行性能の足を引っ張るってことはないが
個々の場面でより性能よく書けるはずのときに汎用部品で済ましてしまうってことはあるんじゃない?
そういうときでも個々の箇所をいじるよりは特殊化を足すだけで済むほうが楽だと思うが。
254デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 16:34:12.21ID:k7iFif1Jd 同じ結果になるように書けばそりゃ同じだろう
テンプレートで楽をすればコードは(一般的には)増える
memcpyで済む物が
型別にコードが発生したり
そういう所を気にすると結局楽が出来ない
テンプレートで楽をすればコードは(一般的には)増える
memcpyで済む物が
型別にコードが発生したり
そういう所を気にすると結局楽が出来ない
255デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 16:37:07.22ID:k7iFif1Jd256デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 16:40:41.26ID:k7iFif1Jd 10種類のテンプレート引数で使うコードは
基本的には10個のバイナリが生成される
10種類手で書けば
当然コードの共通化を(人間が)考える
基本的には10個のバイナリが生成される
10種類手で書けば
当然コードの共通化を(人間が)考える
257はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-j5s0)
2023/01/27(金) 17:11:02.52ID:B8oMym/70258デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 17:18:26.40ID:k7iFif1Jd259デフォルトの名無しさん (ワッチョイ 7f6a-HXiP)
2023/01/27(金) 17:22:03.06ID:6glVv8Ll0 Embedded C++やってろ
260デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 17:22:16.96ID:7yNCo9mI0 非力なハードで無理目なことをギリ勝負でやるときはアセンブラだろ
261デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 17:22:48.21ID:k7iFif1Jd 実際PC用コードの多くは組み込みでは全く使えず
ほとんどゼロからの開発になる
ほとんどゼロからの開発になる
262デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 17:24:10.47ID:k7iFif1Jd263デフォルトの名無しさん (ワッチョイ fff0-Jpma)
2023/01/27(金) 17:24:25.29ID:6ZIN/roZ0 そういう環境ってそもそも標準ライブラリ揃ってなかったりしない?このスレで扱う必要ある?
264デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 17:25:27.76ID:k7iFif1Jd >>263
標準ライブラリのスレではないから
標準ライブラリのスレではないから
265デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 17:32:21.49ID:k7iFif1Jd ぬるま湯環境しか知らないはちみつ
もう少し視野を広げた方が良いかと
もう少し視野を広げた方が良いかと
266デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 17:50:48.85ID:7yNCo9mI0 なんかやたらマウント取りたがるな
267デフォルトの名無しさん (ワッチョイ fff0-Jpma)
2023/01/27(金) 17:55:50.00ID:6ZIN/roZ0 学校でC++03教えてそう(笑)
268はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-j5s0)
2023/01/27(金) 18:01:40.26ID:B8oMym/70 ワイは Z80 時代を生きたおじさんやぞ。
いまどきチープな組み込みでも最初からそんなカリカリにチューニングするのはそんなにないやろ。
無いとは言わんけど C++ の利用例としては例外的やわ。
いまどきチープな組み込みでも最初からそんなカリカリにチューニングするのはそんなにないやろ。
無いとは言わんけど C++ の利用例としては例外的やわ。
269デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 18:16:51.47ID:tKRPgB5dd カリカリチューンとぬるま湯コーディング
はちみつの頭の中はどっちかしか存在しないのかよ
はちみつの頭の中はどっちかしか存在しないのかよ
270デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 18:24:03.96ID:7yNCo9mI0 人のことを小馬鹿にするだけなやつ出てけよ
プログラム技術の話の邪魔だ
プログラム技術の話の邪魔だ
271デフォルトの名無しさん (スプッッ Sd47-kZgD)
2023/01/27(金) 18:25:43.08ID:ESaqgTdPd272デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 18:28:51.80ID:7yNCo9mI0 は? 俺は技術の話をしている
途中で根拠も挙げずに変なことを言うやつにチクリとやったが
貴様と違いそれだけじゃねえんだよボケ
途中で根拠も挙げずに変なことを言うやつにチクリとやったが
貴様と違いそれだけじゃねえんだよボケ
273デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 18:30:54.17ID:cYktn2Sdd 根拠あるじゃん
274デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 18:31:53.95ID:cYktn2Sdd おれがいくつか書いた
275デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 18:32:25.20ID:7yNCo9mI0 どこにだよ
しどろもどろな返事だなスカタン
しどろもどろな返事だなスカタン
276デフォルトの名無しさん (スプッッ Sd1f-kZgD)
2023/01/27(金) 18:33:01.59ID:cYktn2Sdd 日本語読めない人かな?
277デフォルトの名無しさん (ワッチョイ d312-Pfi1)
2023/01/27(金) 18:38:13.74ID:7yNCo9mI0 ないものは示せないもんな
せいぜいそんな言い訳にもなってないことを勝手にぬかしてろ
俺はこれから夕飯作らにゃならんし害虫が出てくのを待つ意味でもしばらく落ちる
せいぜいそんな言い訳にもなってないことを勝手にぬかしてろ
俺はこれから夕飯作らにゃならんし害虫が出てくのを待つ意味でもしばらく落ちる
278はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-j5s0)
2023/01/27(金) 19:53:44.64ID:B8oMym/70279デフォルトの名無しさん (ワッチョイ 5310-xn9V)
2023/01/27(金) 19:59:17.27ID:RxpK1TrS0 10種類とかで肥大するのはテンプレートなのにデカい関数作るからやろ
共通化できる部分は型に依存しない箇所だからテンプレートだろうと外に出せる
共通化できる部分は型に依存しない箇所だからテンプレートだろうと外に出せる
280デフォルトの名無しさん (ワッチョイ 6301-H6v1)
2023/01/27(金) 22:01:21.69ID:GkVPt6s00 >>270
それお前やろ
それお前やろ
281デフォルトの名無しさん (ワッチョイ 0301-SUdz)
2023/01/27(金) 22:06:41.58ID:rBkTgp9F0 www
282デフォルトの名無しさん (ワッチョイ ffad-88l+)
2023/01/27(金) 22:15:36.78ID:y5pwToDP0 孤独のグルメじゃないけど「こういうのでいいんだよ」が最適解なこと多いよな、C/C++
283デフォルトの名無しさん (ワッチョイ e3da-c8s6)
2023/01/27(金) 22:37:05.53ID:kTII8Zcn0 あまりゴチャゴチャさせずにシンプルイズベストよな
284デフォルトの名無しさん (ブーイモ MM7f-snR2)
2023/01/27(金) 22:40:45.09ID:Tnyv3fMqM C++20 のビューとやらを使ってみてるんだがデバッガで見づらすぎるのどうにかならん?
285デフォルトの名無しさん (オイコラミネオ MM07-lPZJ)
2023/01/27(金) 23:34:33.68ID:qVpyYaSyM >>237
template<int N = 100> class A{
static int nnn{N};
};
とすると、
A<123>::nnn が 123 になるはず。
static を付けない場合は、インタンスオブジェクトに対して取得できる。
template<int N = 100> class A{
static int nnn{N};
};
とすると、
A<123>::nnn が 123 になるはず。
static を付けない場合は、インタンスオブジェクトに対して取得できる。
286デフォルトの名無しさん (ワッチョイ 0b01-Z6M9)
2023/01/28(土) 15:20:49.48ID:x4SDzju+0 これは>>239が面白いな
287デフォルトの名無しさん (ワッチョイ 1a34-5WkL)
2023/01/28(土) 15:29:40.57ID:ys7yM/+j0288デフォルトの名無しさん (ワッチョイ 0b01-Z6M9)
2023/01/28(土) 15:40:35.35ID:x4SDzju+0289デフォルトの名無しさん (ワッチョイ db76-xF8Z)
2023/01/28(土) 16:15:40.82ID:gfTDhobA0 単に初期化で使ってるだけでしょ
今回はintであることが明白だから=でも()でも{}でも初期化できるけど
この手のコンパイル時に決まるやつはstatic constexpr一択だね
array<T, nankanokosuu> a;みたいに他のテンプレート引数に使える
今回はintであることが明白だから=でも()でも{}でも初期化できるけど
この手のコンパイル時に決まるやつはstatic constexpr一択だね
array<T, nankanokosuu> a;みたいに他のテンプレート引数に使える
290デフォルトの名無しさん (ワッチョイ 83da-lkW6)
2023/01/28(土) 16:18:27.56ID:TUmaQinN0 constexprにするとコンパイル時に解決出来ない項目は弾かれてしまうからconstのままでいい
知らないなら余計な修正は加えるな
知らないなら余計な修正は加えるな
291デフォルトの名無しさん (ワッチョイ 0b01-Z6M9)
2023/01/28(土) 16:50:45.80ID:x4SDzju+0292デフォルトの名無しさん (オイコラミネオ MM63-ZqoR)
2023/01/28(土) 17:08:38.28ID:1oumyOI/M >>288
>それはさておき初期化の位置に使っている中括弧 {N} はなに?
C++11位から導入された初期化の一種。
a{N}は、a = N とほぼ同じだが、縮小変換をしないということや、
「どんな場所でも必ず使える」特徴があると言われており、Stroustrup氏
は、= よりも {} を推奨している。
また、{} による初期化は「直接初期化」と関係が深く、= による初期化は
「代入初期化」と関係が深い。
>それはさておき初期化の位置に使っている中括弧 {N} はなに?
C++11位から導入された初期化の一種。
a{N}は、a = N とほぼ同じだが、縮小変換をしないということや、
「どんな場所でも必ず使える」特徴があると言われており、Stroustrup氏
は、= よりも {} を推奨している。
また、{} による初期化は「直接初期化」と関係が深く、= による初期化は
「代入初期化」と関係が深い。
293デフォルトの名無しさん (ワッチョイ 0b01-Z6M9)
2023/01/28(土) 22:18:12.18ID:x4SDzju+0294デフォルトの名無しさん (オイコラミネオ MM63-ZqoR)
2023/01/28(土) 23:35:50.70ID:JY7EfERdM >>293
「直接初期化(direct initialization)」とも関係しているが、
{}による初期化は、「一様初期化 (uniform initialization)」
で検索すると出て来やすい。
なお、ネットでdirect initializationを検索しても間違った定義が出てくるかも知れない。
「直接初期化(direct initialization)」とも関係しているが、
{}による初期化は、「一様初期化 (uniform initialization)」
で検索すると出て来やすい。
なお、ネットでdirect initializationを検索しても間違った定義が出てくるかも知れない。
295デフォルトの名無しさん (ワッチョイ 0b01-Z6M9)
2023/01/29(日) 00:27:43.05ID:2zmXfTjk0 >>294
なるほど「直接初期化」と{}による初期化(= [一様初期化])は分かった
[一様初期化] https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html
[直接初期化] https://learn.microsoft.com/ja-jp/cpp/cpp/initializers?view=msvc-170
「縮小変換」と「代入初期化」が分からん
「代入初期化」は=による初期化のことを言ってるのかな?
なるほど「直接初期化」と{}による初期化(= [一様初期化])は分かった
[一様初期化] https://cpprefjp.github.io/lang/cpp11/uniform_initialization.html
[直接初期化] https://learn.microsoft.com/ja-jp/cpp/cpp/initializers?view=msvc-170
「縮小変換」と「代入初期化」が分からん
「代入初期化」は=による初期化のことを言ってるのかな?
296デフォルトの名無しさん (スップ Sd5a-VuUV)
2023/01/29(日) 12:04:49.28ID:l1ZINGQtd C++17のcopy elisionでルール変わったね
297デフォルトの名無しさん (オイコラミネオ MM63-ZqoR)
2023/01/29(日) 13:42:04.03ID:uP7zelejM >>295
正しい定義かどうかは分からないが、一応、
「直接初期化」「コピー初期化」については、英語版の en.cppreference.com
をそれぞれ
「direct initialization」「copy initialization」
で検索すると「パターン」一覧が出てくるみたいだ。
ただし、一覧については「全てのパターン」かは定かではない。
例えば、direct initialization については、一覧には、new T(XXX) しか出てないが、
new T{XXX} でも良いハズ。
正しい定義かどうかは分からないが、一応、
「直接初期化」「コピー初期化」については、英語版の en.cppreference.com
をそれぞれ
「direct initialization」「copy initialization」
で検索すると「パターン」一覧が出てくるみたいだ。
ただし、一覧については「全てのパターン」かは定かではない。
例えば、direct initialization については、一覧には、new T(XXX) しか出てないが、
new T{XXX} でも良いハズ。
298デフォルトの名無しさん (オイコラミネオ MM63-ZqoR)
2023/01/29(日) 13:47:49.42ID:uP7zelejM >>297
https://en.cppreference.com/w/cpp/language/direct_initialization
T object ( arg );
T object ( arg1, arg2, ... ); (1)
T object { arg }; (2) (since C++11)
T ( other )
T ( arg1, arg2, ... ) (3)
static_cast< T >( other ) (4)
new T(args, ...) (5)
Class::Class() : member(args, ...) { ... } (6)
[arg](){ ... } (7) (since C++11)
[説明]
* (5)は、() しか出てないが、{} でも可能 :
new T(args, ...) (5)
new T{args, ...} (5')
* (3) も、() しか出てないが、{} でも可能で恐らくother でなくてもいい筈だ(定かではない) :
T ( other )
T ( arg )
T ( arg1, arg2, ... ) (3)
T { other }
T { arg }
T { arg1, arg2, ... } (3’)
https://en.cppreference.com/w/cpp/language/direct_initialization
T object ( arg );
T object ( arg1, arg2, ... ); (1)
T object { arg }; (2) (since C++11)
T ( other )
T ( arg1, arg2, ... ) (3)
static_cast< T >( other ) (4)
new T(args, ...) (5)
Class::Class() : member(args, ...) { ... } (6)
[arg](){ ... } (7) (since C++11)
[説明]
* (5)は、() しか出てないが、{} でも可能 :
new T(args, ...) (5)
new T{args, ...} (5')
* (3) も、() しか出てないが、{} でも可能で恐らくother でなくてもいい筈だ(定かではない) :
T ( other )
T ( arg )
T ( arg1, arg2, ... ) (3)
T { other }
T { arg }
T { arg1, arg2, ... } (3’)
299デフォルトの名無しさん (オイコラミネオ MM63-ZqoR)
2023/01/29(日) 13:56:42.30ID:uP7zelejM >>295
>「縮小変換」と「代入初期化」が分からん
>「代入初期化」は=による初期化のことを言ってるのかな?
縮小変換は、検索すると出てくる。
「代入初期化」という言葉は、俺の記憶違いだったらしく、「コピー初期化」
が正しかったようだ。難しい。
>「縮小変換」と「代入初期化」が分からん
>「代入初期化」は=による初期化のことを言ってるのかな?
縮小変換は、検索すると出てくる。
「代入初期化」という言葉は、俺の記憶違いだったらしく、「コピー初期化」
が正しかったようだ。難しい。
300デフォルトの名無しさん (オイコラミネオ MM63-ZqoR)
2023/01/29(日) 14:05:48.45ID:uP7zelejM ここが分かり易いかな:
「Is it direct-initialization or copy-initialization?」
https://stackoverflow.com/questions/46634869/is-it-direct-initialization-or-copy-initialization
「Is it direct-initialization or copy-initialization?」
https://stackoverflow.com/questions/46634869/is-it-direct-initialization-or-copy-initialization
301デフォルトの名無しさん (ワッチョイ 0b01-Z6M9)
2023/01/29(日) 20:57:42.75ID:2zmXfTjk0 >>299,300
なるほど「縮小変換をしない」とは
例えば以下でエラーになるってことね
int a {1.0};
「コピー初期化」ってのはコピーコンストラクタを呼ぶ初期化
あるいはコピーコンストラクタ自体のことで良いのかな?
なるほど「縮小変換をしない」とは
例えば以下でエラーになるってことね
int a {1.0};
「コピー初期化」ってのはコピーコンストラクタを呼ぶ初期化
あるいはコピーコンストラクタ自体のことで良いのかな?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【芸能】奇跡の53歳!元おニャン子クラブB組・山崎真由美、32年ぶりグラビア披露&8ページ袋とじ [湛然★]
- 決め手は地名「西彼杵」を読めず…とっさの判断でニセ電話詐欺だと見抜いた女性に感謝状 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 【超絶悲報】日本政府「高市さんの答弁撤回はない。政権として弱腰と映る姿勢は見せられない」これもう立憲岡田の議員辞職しかないだろ [519511584]
- お前らってよく仮想の敵作って叩いてるけどこれって実は素晴らしいことだよな
