title: Why do C++ libraries and frameworks never use smart pointers?
body: <p>I read in a few articles that raw pointers should almost never be used. Instead they should always be wrapped inside smart pointers, whether it's scoped or shared pointers.</p>
  
  <p>However, I noticed that frameworks like Qt, wxWidgets and libraries like Boost never return nor expect smart pointers, as if they were not using them at all. Instead, they return or expect raw pointers. Is there any reason for that? Should I stay away from smart pointers when I write a public API, and why?</p>
  
  <p>Just wondering why smart pointers are recommended when many major projects seem to avoid them.</p>