Zmienne auto w klasie

0

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?

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;
}

http://ideone.com/1F7epA

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 użytkowników online, w tym zalogowanych: 0, gości: 1