C++相談室 part166 (569レス)
上下前次1-新
抽出解除 レス栞
18(3): はちみつ餃子◆8X2XSCHEME (ワッチョイ 6332-x8bn) 05/05(月)17:57 ID:7tS1Ts+e0(1) AAS
>>17
まさに「諸々に配慮」と述べた部分がそれでね……。
ここで定義した operator<< と元からある operator<< の両方が char を受け取ることが可能なので
どちらを呼び出すべきか曖昧なオーバーロード (ambiguous overload) になってしまっている。
ちゃんとやる場合はここで定義する operator<< が受け取れるのはコンテナに限定しなければならない。
型に制約を付ける真っ当な方法が入ったのは C++20 からなのでそれ以前の C++ でやろうとすると回りくどいんだよ。
C++11 でなるべく簡素に書くとしたらこんな感じかな。
外部リンク:wandbox.org
23(1): (ワッチョイ a701-uYIY) 05/06(火)14:29 ID:tCHDdC6b0(3/3) AAS
>>22
解説を有難うございます
返り値を後置する記法のアドバンテージが分かりました
>>18は返り値を後置にしてるけどもこれは必須ではないということね
!!も分かりました(g++-12はなしで通ります)
27(1): 15 (ワッチョイ afaa-hOut) 05/06(火)18:35 ID:jhNAw2EC0(1/2) AAS
>>18
重ね重ねありがとうございます。
なんとか理解してみます。
C++20だとどうなります?
一応、C++の新機能ってぺージ見たんですけど、よくんからなくて
43(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 6332-6RYV) 05/08(木)02:01 ID:aAWkv5hi0(1/3) AAS
>>41
何を言ってるんだ? >>18 で declval を使ったのが無意味だという話をしてるんだぞ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s