Myślę, że to niemożliwe, ale chciałbym zapytać, zanim się poddasz.Kradzieże Constexpr
Chcę coś podobnego do przyrostu constexpr.
#include <iostream>
constexpr int inc() {
static int inc = 0;
return inc++;
}
class Foo {
static const int Type = inc();
};
class Foo2 {
static const int Type = inc();
};
int main() {
std::cout << "Foo1 " << Foo1::Type << st::endl;
std::cout << "Foo2 " << Foo2::Type << st::endl;
return 0;
}
chcę nazywać go w niektórych klasach nie ręcznie (używam CRTP za to), aby dać inny typ każdego z nich, ale typ muszą być const. Jest coś takiego, aby osiągnąć coś takiego w C++? (C++ 17 + TS)
* "Myślę, że to niemożliwe" * Zasadniczo wszystko jest możliwe dzięki szablonom C++, czasami robi się głupio złożony. –
Nie jestem pewien, ale myślę, że może być częścią C++ 17, ale mogę się mylić – holmicz
Istnieją niestandardowe makra 'COUNTER' i istnieją implementacje efektów ubocznych kompilacji ([Filip Roseen ] (http://b.atch.se/) przychodzi na myśl). Te ostatnie są jednak wyjątkowo brzydkie. Wolałbym spróbować innego podejścia. – dyp