Bjarne sugeruje użycie warunku, jeśli jest jako ograniczenie zakresu. W szczególności ten przykład.Podwójnie jako prawda/fałsz
if (double d = fd() ) {
// d in scope here...
}
Jestem ciekawostką, jak interpretować deklarację w sposób prawdziwy/fałszywy.
- Jest to deklaracja
- Jest to podwójnie.
Edytuj: Jest w wersji 6.3.2.1 Język programowania C++ jako zalecenie.
Edit2: templatetypedefs sugestie wskaźników, w szczególności z dynamicznymi rzutami, mogą dać wgląd w sugestię Bjarnesa.
SteveJessop mówi mi: - Warunek nie jest wyrażeniem, ale może być także deklaracją, a wartość użyta jest wartością podlegającą ocenie.
Odpowiedź na to pytanie (http://stackoverflow.com/q/9833790/636019) również odpowie na twoje pytanie. – ildjarn
Właśnie przeczytałem sekcję, o której mówisz, i odniosłeś wrażenie, że dyskusja dotyczyła raczej wykorzystania go jako ograniczenia zakresu (i uzyskania dodatkowej korzyści z kompaktowego kodu) i nie miała wiele wspólnego z określony typ danych. Myślę, że mógłby zastąpić 'double' z' int' i nadal osiągnął zamierzony przekaz. Tak właśnie to czytałem. – jedwards
@jedwards Tak, ale użycie podwójnego jest błaganiem o odpowiedź. Deklaracja int jest wciąż anomalią, która zasługuje na odpowiedź. –