If by "modern C++" you mean C++11 and beyond, I'm afraid you won't find such a book at this time.
If you are content with idiomatic C++ 03, as in "using the STL and smart pointers instead of managing memory by hand", I second Quantuple's suggestion of Mark Joshi's book.
With a couple of caveats, I might also add my own Implementing QuantLib; the caveats being that (a) I'm tooting my own horn here, so I hope this answer will be useful enough not to be seen as just self-promotion; and (b) it describes the implementation of trees, FD, MC etc. in QuantLib, which is based on the constraints and the design goals we had for the library and might or might not be applicable in your case. I tried to describe those as well, so you can make different choices based on your constraints.