Afgesplitst van De Devschuur Coffee Corner - Iteratie 3
Is de ?: operator echt de enige manier om conditioneel een reference te initialiseren?
C++:
1
2
3
4
5
6
| int& foo; if ( boolean ) foo = bar; else foo = baz; |
Werkt niet omdat: een reference dient altijd geïnitialiseerd te zijn.
Wat dacht je dan van
C++:
1
2
3
4
| if ( boolean ) int& foo = bar; else int& foo = baz; |
Nee, dat werkt ook niet. Want na de if raakt foo uit scope..
Mag ik u voorstellen aan deze oude vriend?
C++:
1
2
3
4
5
6
7
8
9
10
| if ( boolean ) goto next; int& foo = baz; goto finish; next: int& foo = bar; finish: |
Foo already initialized. Je meent het?
Dan maar zo:
C++:
1
| int& foo = boolean ? bar : baz; |
al is dat bij ingewikkeldere constructs natuurlijk totaal onleesbaar.
[ Voor 5% gewijzigd door Woy op 13-05-2013 11:06 ]