You should do steps #1, #2, #3 only for projects that use DirectX. "d3dx11.h" error happens when include paths aren't correct, "CreateDXGIFactory" error happens because you didn't link all required libraries; MSDN says you need "DXGI.lib".
Now I'm reading an 800 pages book that teaches math 3D thoroughly until I'm grabbing my hair and tearing it out lolol...
Books tend to teach extremely generalized theory, proofs, then provide less-than-minimal examples and don't explain how/why/when it is used. My belief is they're useless.
Have you tried playing with code or reading documentation? It's easy to figure what Translation/Rotation/Scaling matrices do; how they do it doesn't matter at all. View/Projection matrices are a bit harder to figure, but you have documentation, forums, Google. As long as you won't care how it works, but rather what it does you'll soon learn to use it.
Playstation 3 provides SDK which you have to use to make games for it. Chances are it's not DirectX nor OpenGL (I don't have it so don't know), probably same situation with PS4, PSVita and other consoles. They use more or less same GPU architecture so it'll have same theory: vertex buffers, index buffers, shaders, etc.
Judging by your previous posts you seem to have experience with C++. You can think of objects as pointers to objects. When you remove one from List<> you simply remove pointer, but do not delete object itself (memory leak), but in C# garbage collector prevents those leaks. Therefore removing from a List<> will remove only reference.
Depending on your PC, NVIDIA's ShadowPlay feature (new in the later versions of NVIDIA GeForce Experience) might also be an option.
I haven't tried it personally, but it might be worth looking into.
I've tried it. Haven't tested high-end games, but the ones I did test had no performance impact at all. File size depends on what's recorded though; had 4 minutes and 22 minutes of recordings, both at 1.7 GB (1080p @ 60 FPS).
This is just my personal opinion and nothing constructive.
I hate boost, therefore I think this is a terrible idea to use boost for a library you're going to distribute. One of reasons is, to compile your 10 KB program I need to download 50+ MB boost libraries; that's just silly.
I noticed some weird things with your includes:
// you are using
// but probably all compilers have unordered_map in Standard C++ Library (SCL)
// another boost include
// won't complain about this one, but kind of a tip
// Visual Studio 2013 has this include in SCL, don't know about other compilers
using namespace std::tr2::sys;
Your PIUArchiveImpl::write() method (and others) print to standard output, that's unacceptable, use callbacks if output is possible.