#include "misc_util.h"

namespace dlib {

    void string_fmt_time(std::string& ret) {
        time_t now = time(NULL);
        struct tm *t = localtime(&now);
        while(!strftime((char *)ret.data(), ret.capacity(), "%Y:%m:%d %H:%M", t))
            ret.reserve(ret.capacity() ? ret.capacity() << 1: 16);
    }

}

#include "misc_util.h"

namespace dlib {

    void string_fmt_time(std::string& ret) {
        time_t now = time(NULL);
        struct tm *t = localtime(&now);
        while(!strftime((char *)ret.data(), ret.capacity(), "%Y:%m:%d %H:%M", t))
            ret.reserve(ret.size() << 1);
    }

}

--- 
+++ 
@@ -6,7 +6,7 @@
         time_t now = time(NULL);
         struct tm *t = localtime(&now);
         while(!strftime((char *)ret.data(), ret.capacity(), "%Y:%m:%d %H:%M", t))
-            ret.reserve(ret.size() << 1);
+            ret.reserve(ret.capacity() ? ret.capacity() << 1: 16);
     }
 
 }
Fix mistake of using size instead of capacity.
