C++相談室 part166 (569レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
155
(4): デフォルトの名無しさん (JP 0H7f-JT63) [] 2025/05/29(木) 00:33:28.11 ID:gwInQzjaH(1/2) AAS
zを複素数としてz+1は数学の教科書は普通にある。ところが、C++のプログラムで
z1=z+1としようものならテンプレート関係のエラーメッセージがズラっと出てくる。
初心者は戸惑う。いい加減、complex.hに

template <class T, class U>
decltype(auto) operator + (const std::complex<T>& z, U d)
{
return std::complex< decltype(std::declval<T>() + std::declval<U>())>
(real(z) + d, imag(z));
}
みたいなものを追加してくれないか?
156: デフォルトの名無しさん (JP 0H7f-JT63) [] 2025/05/29(木) 00:37:22.81 ID:gwInQzjaH(2/2) AAS
これは、complex<float> z1; とcomplex<double> z2; z1+z2の演算でも同じ。
template <class T, class U>
decltype(auto) operator + (const std::complex<T>& z1, const std::complex<U>& z2)
{
 return std::complex< decltype(std::declval<T>()+std::declval<U>() )>
( z1.real()+z2.real(), z1.imag()+z2.imag() );
}
みたいなものを実装してほしい。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s