Stefan Reuther <
stefa...@arcor.de> writes:
>Als Workaround hab ich jetzt erstmal ein
> void foo(if_then_else<is_same_type<uint32_t,size_t>::value,
> uint64_t, size_t>::type);
>sprich, "wenn uint32_t gleich size_t, überlade das auch noch für
>uint64_t"; das geht in dem Fall zufällig und stört nicht.
Etwas Besseres fällt mir derzeit auch nicht ein.
Du könntest vielleicht noch »uint64_t« durch einen
Einmaltyp ersetzen, der von außen nicht erreichbar ist,
falls es später einmal Fälle geben sollte, in denen die
unerwünschte Überladung stören sollte.
Falls die Funktion auch in einer Klassenschablone sein
darf, dann würde dadurch noch verhindert werden, daß
Code für sie generiert wird.
Dadurch wäre die Funktion effektiv kaum existent (nicht
erreichbar, und es wird kein Code generiert).