#include <string>
#include <iostream>
template<typename T>
void f(const T &v = T());
template<>
void f<std::string>(const std::string &v)
{
std::cout << v;
}
int main(int argc, char* argv[])
{
f<std::string>(); // Error in VS2013, OK in VS2012, gcc-4.7
f<std::string>("Test"); // OK
f<std::string>(std::string()); //OK
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBmKGNvbnN0IFQgJnYgPSBUKCkpOwoKdGVtcGxhdGU8Pgp2b2lkIGY8c3RkOjpzdHJpbmc+KGNvbnN0IHN0ZDo6c3RyaW5nICZ2KQp7CiAgICBzdGQ6OmNvdXQgPDwgdjsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogICAgZjxzdGQ6OnN0cmluZz4oKTsgLy8gRXJyb3IgaW4gVlMyMDEzLCAgT0sgaW4gVlMyMDEyLCBnY2MtNC43CiAgICBmPHN0ZDo6c3RyaW5nPigiVGVzdCIpOyAgIC8vIE9LCiAgICBmPHN0ZDo6c3RyaW5nPihzdGQ6OnN0cmluZygpKTsgIC8vT0sKICAgIHJldHVybiAwOwp9