Można, ale trzeba zadeklarować static
i const
:
struct Timer {
static const auto start = 0;
};
A working example in Coliru.
Z tym ograniczeniem nie można zatem przyjąć elementu start
jako elementu niestatycznego i nie można mieć różnych wartości w różnych obiektach.
Jeśli chcesz różnych rodzajów start
dla różnych obiektów, lepiej mieć swoją klasę jako szablon
template<typename T>
struct Timer {
T start;
};
Jeśli chcesz wydedukować rodzaj T
można utworzyć funkcję fabrycznie tak robi to odliczenie typu.
template<typename T>
Timer<typename std::decay<T>::type> MakeTimer(T&& startVal) { // Forwards the parameter
return Timer<typename std::decay<T>::type>{std::forward<T>(startVal)};
}
Live example.
swoją figurę typu –
Czy nie to szablony są za? – user1520427
Kiedy dowiesz się, jaki to będzie typ? Skompilować czas lub czas pracy? Czy możesz podać nam jakiś kontekst? Co próbujesz zrobić? – Homer6