[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
405: (ワッチョイ 7f78-/FHh) 2024/08/24(土)08:35 ID:yYuYqoCz0(1/6) AAS
すみません。教えて下さい。
template<class T, class U>void (T& x, const U& y)
{
x=y;
...
}
double ←complex<double> の代入がコンパイルエラーとなるconceptの書き方あるんでしょうか?
complex<double> ← doubleの代入ではエラーが出てほしくないです。
406: (ワッチョイ 7f78-/FHh) 2024/08/24(土)09:05 ID:yYuYqoCz0(2/6) AAS
あ、上では関数名fが抜けてましたね.concept使わずとも
template<class T> void f(complex<T>& x, const T& y)とすればいいでしょうけど、
y=xのときはどうかとか、あるいは complex<double>←float の代入はokにしたいとか、
いろいろ考えているとテンプレート関数なのに関数のオーバーロードが増えてしまって面倒だなと思ったものですから。
407: (ワッチョイ 7f78-/FHh) 2024/08/24(土)09:23 ID:yYuYqoCz0(3/6) AAS
y=xのときは忘れてください。(f(complex<T>& y, const T& x)とすればいいだけ)。どういう状況のためにconceptが必要なのか要点がまとまっていませんね。失礼しました。
409: (ワッチョイ 7f78-/FHh) 2024/08/24(土)11:11 ID:yYuYqoCz0(4/6) AAS
&& は右辺値参照ではなくてandの意味なんですね。std::is_same<double,T>はdouble型とT型が一致するかどうかを調べるヘルパー変数テンプレート、::value は trueかfalseのいずれかの値をとる定数ですか。static_assertは自分でエラーメッセージを作れるのがいいですね。完全にわかっていないですが、勉強します。ヒントありがとうございました。
414(1): (ワッチョイ 7f78-/FHh) 2024/08/24(土)14:40 ID:yYuYqoCz0(5/6) AAS
いろいろとありがとうございます。参考になりました。
template<class T, class U> void f(T& x, U& y)
{
if constexpr ( !(std::is_same<T,double>::value &&
std::is_same<U, std::complex<T>>::value) ) static_assert(false,"ワシャ許さんぞ!!");
y=x;
}
template <class T, class U> void g(T& x, U& y)
{
static_assert( (std::is_same<T,double>::value && std::is_same<U, std::complex<T>>::v
省12
415: (ワッチョイ 7f78-/FHh) 2024/08/24(土)15:09 ID:yYuYqoCz0(6/6) AAS
std::is_same<T,double>::valueの代わりにstd::same_as<T,double>でも良いみたいですね.
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s