It's also worth noting that 'winter' used to be monthless in the Roman calendar, so there were 10 months, ending in December (so all of the number names make sense) and then a big blob of 'winter' before the new year started.
MyClass::MyClass(const std::string& s) : m_s(s) {}
That you call like: std::string s = "Some string";
MyClass c(s);
You're hamstringing the compiler into always copying that string instead of being able to use the new move semantics, because it can't mess with the guts of a const reference. Instead, do the previously unspeakable evil of passing by value and then moving, e.g. MyClass::MyClass(std::string s) : m_s(std::move(s)) {}
This lets the compiler know that if string has a move constructor, and is an rvalue, it can just move the guts into place instead of performing the copy, since the variable is 'sunk' into the new location. Huge wins all around.