[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
431: デフォルトの名無しさん (ワッチョイ 0278-RCJX) [] 2024/08/27(火) 17:33:30.75 ID:K7dNHCWQ0 #include <iostream> #include <complex> template <class T> decltype(auto) f(T x) { decltype(abs(std::declval<T>())) w; w=abs(x); return w; } int main() { using namespace std; cout<<f(-1) << endl; cout<<f(2.f)<< endl; complex<double> z=complex<double>(1.0,1.0); cout<<f(z)<<endl; cin.get(); return 0; } いちかばちかでやったら、通りました。abs! Who are you? sizeof演算子と同じくコンパイル時に評価されるんですか? というか、地味だけど declval が凄い。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/431
432: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4d32-7Uxd) [sage] 2024/08/27(火) 18:27:19.33 ID:WfqXHPCU0 >>431 sizeof や decltype のオペランドは評価されないということになってる。 だからその文脈で関数を使う場合でもその関数が定義されている必要はない。 (宣言だけあればよい。) 評価されないけど実体化は起こるのでそのへんの理屈は複雑でよくわからん。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/432
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.035s