bez specjalizujący się dla każdej klasy szablonu/klasy, jest to możliwe, aby napisać uogólniony 'ponownego powiązania' funkcja meta, tak że podaneCzy można napisać uogólniony szablon rebind?
template<class > struct foo;
struct bar;
następujące
is_same<rebind<foo<int>,float>,foo<float>>
is_same<rebind<bar>,bar>
a może
is_same< rebind<std::vector<int>,float>,std::vector<float>>
zwraca odpowiednik typu true?
Sir, sir. To jest wspaniałe! –
Ah ... Bez silnej motywacji, to wygląda jak hack. Proszę nie używać tego rodzaju rzeczy, z wyjątkiem może do obejścia niechętnego do współpracy interfejsu do pewnej biblioteki. – Potatoswatter
dokładnie to, czego szukałem! dziękując Tobie. Mam kilka iteratorów, które przyjmują typ sekwencji jako pierwszy argument i tworzą iterator const, jeśli argument jest określony jako const. zadaniem było uzyskanie iteratora const z mutable i vice versa. w ten sposób zmodyfikował kod niewiele, aby nawet mpl jak symbol zastępczy, taki jak rebind, zastosuj > czyni foo . Argumenty wartości nie są dla mnie problemem, ponieważ zawsze preferuję taką tablicę jak > over std :: array –
abir