|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2018 [email protected] ! 4: // ! 5: ! 6: #include "header.h" ! 7: #include "mystring.h" ! 8: ! 9: std::string ! 10: string_format(const char *fmt, ...) ! 11: { ! 12: va_list ap; ! 13: char *buf; ! 14: ! 15: va_start(ap, fmt); ! 16: vasprintf(&buf, fmt, ap); ! 17: va_end(ap); ! 18: std::string rv(buf); ! 19: free(buf); ! 20: ! 21: return rv; ! 22: } ! 23: ! 24: #if 0 ! 25: #include <cstdio> ! 26: #include <sys/time.h> ! 27: int main() ! 28: { ! 29: std::string s0 = string_format("%d_%d", 0, 1); ! 30: if (s0 != "0_1") { ! 31: printf("error\n"); ! 32: return 1; ! 33: } ! 34: timeval start, end, result; ! 35: gettimeofday(&start, NULL); ! 36: for (int i = 0; i < 100000; i++) { ! 37: std::string s = string_format("%d_%d", i, i); ! 38: } ! 39: gettimeofday(&end, NULL); ! 40: timersub(&end, &start, &result); ! 41: long long t = (result.tv_sec) * 1000000 + result.tv_usec; ! 42: printf("%d.%03d\n", (int)t / 1000, (int)t % 1000); ! 43: return 0; ! 44: } ! 45: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.