&gt; it seems you could handle the heterogenous case by designing an `Any` struct and (at least in C++) implicit constructors to take various types (int, T*, ...)<p>In C11 you could also use _Generic.  It will be perfect for the year 2045 when Microsoft adds C11 support.