>>475
参照は何も参照していない状態というのは作れない。
参照で受け取るように書いてあればその参照が無効ということはあり得ないという表明として解釈するのが通例。
(実際にはダングリング参照はあり得るけどそれは単に間違ったプログラムなので気にしない。)
引数として不要なのであればオーバーロードで引数が不要な関数も用意するのが真っ当な方法だけれど、
どうしても無効ということを表す状態を渡したいということであればダミーのオブジェクトを作っておいて
それを無効の意味に使うという方法は考えられる。 (不格好だけど……。)
#include <iostream>
struct A {};
A dummy;
void hoge(int& p1, A& p2 = dummy) {
if(&dummy == &p2) std::cout << "p2 is dummy" << std::endl;
else std::cout << "p2 is not dummy" << std::endl;
}
int main(void) {
int foo = 1;
A bar;
hoge(foo, bar);
hoge(foo);
}
あるいは std::variant と std::monostate と std::ref を組み合わせれば表現できなくもないかなぁ……。
探検
C++相談室 part157
■ このスレッドは過去ログ倉庫に格納されています
477はちみつ餃子 ◆8X2XSCHEME
2021/10/05(火) 17:41:01.80ID:krkmojOq■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 日本、G7への中国招待を懸念 議長国フランスに慎重な対応要請 [どどん★]
