title: fake/mock nonvirtual C++ methods
body: <p>It known that in C++ mocking/faking nonvirtual methods for testing is hard. For example, <a href="http://code.google.com/p/googlemock/wiki/V1_5_CookBook" rel="noreferrer">cookbook of googlemock</a> has two suggestion - both mean to modify original source code in some way (templating and rewriting as interface).</p>
  
  <p>It appear  this is very bad problem for C++ code. How can be done best if you can't modify original code that needs to be faked/mocked? Duplicating whole code/class (with it whole base class hierarchy??)</p>