Dlaczego nie mogę użyć zmiennej auto w klasie? Chciałbym napisać "auto = price" ale muszę zrobić "double = price". Dlaczego w klasie nie jestem w stanie korzystać ze zmiennych auto?
0
1
Bo język na to nie pozwala. Technicznych przeszkód nie ma, być może są jakieś przeciwwskazania designowe.
3
W ramach ciekawostki która jest totalnie niepraktyczna: dzęki decltype
i makru możesz mieć coś na kształt auto w tym miejscu,
#include <iostream>
using namespace std;
#define AUTO(varname, expr) decltype(expr) varname = (expr)
struct foo {
const AUTO(bar, 5+3);
};
int main() {
cout << foo{}.bar;
return 0;
}
0
Zakładam, że przeciwskazaniem do wprowadzenia auto
w deklaracji klasy było uniknięcie problemów z obliczaniem rozmiaru struktury przez człowieka.
1
Tu jest jakieś uzasadnienie:
https://stackoverflow.com/questions/11302981/c11-declaring-non-static-data-members-as-auto