Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

internal.h

Go to the documentation of this file.
00001 // -*- mode: C++; -*-
00002 
00003 #ifndef NMSTL_H_NMSTL
00004 #define NMSTL_H_NMSTL
00005 
00119 #define NMSTL_NAMESPACE_BEGIN namespace std {}; namespace nmstl { using namespace ::std;
00120 #define NMSTL_NAMESPACE_END };
00121 
00122 #include <string>
00123 #include <cstdio>
00124 #include <typeinfo>
00125 
00126 NMSTL_NAMESPACE_BEGIN;
00127 
00128 template<class T>
00129 inline string to_string(const T& t) {
00130     char buf[64];
00131 
00132     string out = "{";
00133     out += typeid(T).name();
00134     out += ": ";
00135     sprintf(buf, "%d bytes @ %p}", sizeof t, &t);
00136     out += buf;
00137 
00138     return out;
00139 }
00140 
00141 template<class T>
00142 inline string to_string(const T*& t) {
00143     return string("&(") + to_string(*t) + to_string(")");
00144 }
00145 
00146 inline string to_string(const char* ch) {
00147     return string(ch);
00148 }
00149 
00150 inline string to_string(const string& s) {
00151     return s;
00152 }
00153 
00154 inline string to_string(const int& i) {
00155     char buf[16];
00156     sprintf(buf, "%d", i);
00157     return buf;
00158 }
00159 
00160 inline string to_string(const unsigned int& i) {
00161     char buf[16];
00162     sprintf(buf, "%u", i);
00163     return buf;
00164 }
00165 
00166 inline string to_string(const short& i) {
00167     char buf[16];
00168     sprintf(buf, "%d", i);
00169     return buf;
00170 }
00171 
00172 inline string to_string(const unsigned short& i) {
00173     char buf[16];
00174     sprintf(buf, "%u", i);
00175     return buf;
00176 }
00177 
00178 inline string to_string(const double& d) {
00179     char buf[16];
00180     sprintf(buf, "%f", d);
00181     return buf;
00182 }
00183 
00184 NMSTL_NAMESPACE_END;
00185 
00186 #endif

Generated on Fri Sep 20 20:07:30 2002 for NMSTL