title: Why did C++ introduce duration_cast instead of using static_cast?
body: <p>I was looking at some code that used <code>duration_cast</code>. Looking a it I wondered why a <code>static_cast</code> was not used since <code>static_cast</code>'s purpose in life is to convert between types.</p>
  
  <p>Why did C++ need a new operator to convert between times? Why was <code>static_cast</code> not used?</p>
  
  <hr>
  
  <p>Maybe I don't appreciate the difference C++ is making between milli-seconds, micro-seconds, nano-seconds, etc. For some reason, I thought the answer would be obvious or discussed on Stack Overflow, but I have not found it (yet).</p>