Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights 2 // See the file tools.license for terms. 3 4 #ifndef tools_pointer 5 #define tools_pointer 6 7 //WARNING : touchy. 8 //WARNING : _MSC_VER && _WIN64 : sizeof(void*) 9 10 #include "typedefs" 11 12 #include "snpf" 13 14 #include <string> 15 16 namespace tools { 17 18 inline bool to_pointer(const std::string& a_st 19 upointer v = 0; 20 if(::sscanf(a_string.c_str(),upointer_format 21 if(::sscanf(a_string.c_str(),upointer_form 22 a_value = 0; 23 return false; 24 } 25 } 26 a_value = (void*)v; 27 return true; 28 } 29 30 inline bool to_pointer(const char* a_string,vo 31 upointer v = 0; 32 if(::sscanf(a_string,upointer_format_x(),&v) 33 if(::sscanf(a_string,upointer_format(),&v) 34 a_value = 0; 35 return false; 36 } 37 } 38 a_value = (void*)v; 39 return true; 40 } 41 42 inline bool p2s(const void* a_value,std::strin 43 char _s[512]; 44 snpf(_s,sizeof(_s),upointer_format(),(upoint 45 a_s = _s; 46 return true; 47 } 48 49 inline bool p2sx(const void* a_value,std::stri 50 char _s[512]; 51 snpf(_s,sizeof(_s),upointer_format_x(),(upoi 52 a_s = _s; 53 return true; 54 } 55 56 /* 57 inline std::string p2s(const void* a_value){ 58 char _s[512]; 59 snpf(_s,sizeof(_s),"%lu",(unsigned long)a_va 60 return _s; 61 } 62 63 inline std::string p2sx(const void* a_value){ 64 char _s[512]; 65 snpf(_s,sizeof(_s),"0x%lx",(unsigned long)a_ 66 return _s; 67 } 68 69 inline std::string char_p2s(const char* a_valu 70 char _s[512]; 71 snpf(_s,sizeof(_s),"%lu",(unsigned long)a_va 72 return std::string(_s); 73 } 74 75 inline std::string long2s(const long a_value) 76 char _s[512]; 77 snpf(_s,sizeof(_s),"%ld",a_value); 78 return std::string(_s); 79 } 80 */ 81 82 } 83 84 #endif