Make entire library code compile on MSVC & gcc.

I'd actually like to keep it this way, for the documentation reasons outlined above. Can you undo these changes to `derivative_approximation`?