Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/parseargs.cfa

    r56e8cb3 r7f6e9eb  
    1919        extern          long long int strtoll (const char* str, char** endptr, int base);
    2020        extern unsigned long long int strtoull(const char* str, char** endptr, int base);
     21        extern                 double strtod  (const char* str, char** endptr);
    2122}
    2223
     
    162163}
    163164
     165bool parse(const char * arg, int & value) {
     166        char * end;
     167        int r = strtoll(arg, &end, 10);
     168        if(*end != '\0') return false;
     169
     170        value = r;
     171        return true;
     172}
     173
    164174bool parse(const char * arg, unsigned & value) {
    165175        char * end;
     
    172182}
    173183
    174 bool parse(const char * arg, unsigned long & value) {
     184bool parse(const char * arg, size_t & value) {
    175185        char * end;
    176186        unsigned long long int r = strtoull(arg, &end, 10);
    177187        if(*end != '\0') return false;
    178         if(r > (unsigned long)MAX) return false;
    179 
    180         value = r;
    181         return true;
    182 }
    183 
    184 bool parse(const char * arg, unsigned long long & value) {
    185         char * end;
    186         unsigned long long int r = strtoull(arg, &end, 10);
    187         if(*end != '\0') return false;
    188         if(r > (unsigned long long)MAX) return false;
    189 
    190         value = r;
    191         return true;
    192 }
    193 
    194 bool parse(const char * arg, int & value) {
    195         char * end;
    196         int r = strtoll(arg, &end, 10);
    197         if(*end != '\0') return false;
    198 
    199         value = r;
    200         return true;
    201 }
     188        if(r > (size_t)MAX) return false;
     189
     190        value = r;
     191        return true;
     192}
     193
     194bool parse(const char * arg, double & value) {
     195        char * end;
     196        double r = strtod(arg, &end);
     197        if(*end != '\0') return false;
     198
     199        value = r;
     200        return true;
     201}
Note: See TracChangeset for help on using the changeset viewer.