bir duruma bir argüman geçemedi için if
bildirimi. Yani, böyle yaptım: Ancak, benim yaklaşım kabul edilebilir nedeniyle bu fonksiyon beyanı bulunur
foo bar = get_bar_by_some_algorithm();
int a = 5,b = 6;
do_somthing(a,b,bar.empty()?foo():bar);
do_somthing
eğer görünümün varsayılan argüman açısından stabil ama (? Iyi olduğunu bile) böyle bir şey değişirse:
void do_somthing(int a,int b,foo bar = get_special_foo());
foo()
, get_special_foo()
eşit olmadığından kodum eski olacaktır. Ben boş olması durumunda boş olmayan ve şey geçirilmesi DEĞİL durumunda bir argüman iletilmesi ?
operatörü veya herhangi bir kısa eşdeğer nasıl kullanabilirim
soru nedir? açıklama (Hayali sözdizimi) için
Örnek: üçlü operatör ile
do_somthing(a,b,bar.empty()? the_default_argument : bar);
Hem üçlü operatör hem de bir şube yaparsa, BTW. – Jarod42
Sadece 'bar' iletebilir ve 'if (bar.empty())' 'do_somthing' içinde kontrol edebilirsiniz. – CompuChip
try boost :: isteğe bağlı – Thomas