Gibt es in C++ 03 oder früher eine Möglichkeit, das Schlüsselwort auto
zu implementieren? Nicht eine Objektklasse, aber so, dass es wie folgt verwendet werden [C++ 11]Gibt es eine Möglichkeit, das Schlüsselwort auto für C++ zu implementieren? 03
auto x = 5;
std::cout << x;
I ‚gepeitscht‘ schnell eine Implementierung, aber es ist ziemlich Müll, wie Sie es auf jede Art werfen können - zu viel wie eine object
Klasse, und ziemlich einfach, ich weiß, aber wie auch immer, hier ist es:
class auto_t
{
public:
template < typename _Ty > auto_t(const _Ty &_Value)
: __data(_Value)
{
}
template < typename _Ty > operator _Ty()
{
return (_Ty)__data;
}
private:
void *__data;
};
#define auto auto_t
Wenn Sie einen bestimmten Compiler verwenden, warum nutzen Sie nicht eine Erweiterung (z. B. GCC's '__typeof')? –
Der nächste (aber weit entfernte) in diese Richtung ist boost :: foreach, denke ich. –
Seltsam, dass es Ihnen nicht in den Sinn gekommen ist, einen C++ 11-Compiler zu verwenden –