Another issue with D is that it's very incomplete (the option, not the language). Credit where it's due to the site owner, it's a great quick overview of most of the core language features, but some features that I consider critical are omitted (lambdas). And yes, there aren't any exercises, but that can be remedied (and there is a collection of simple exercises floating around the site somewhere that I should be able to find).
Learncpp (option E) seems like it's one of the better online resources. It has a leisurely pace to it that definitely makes it suitable for multiple semesters. However, I find it darkly amusing that C++11 is tacked on as an appendix (and by the by, their tutorial also doesn't dedicate a chapter to lambdas).
As far as option A goes, the CPA course's overview makes no mention of any modern C++ features, and neither does the subsequent CPP course (also no lambdas). It also seems light on introductions to the standard library. Very very unfortunate.
Option B has a similar issue, but I'd like to highlight a quote from their site as a warning:
This unit presents a brief history of C++ before addressing the mechanics of editing and compiling a simple program written in C++ using a Linux-flavored operating system and a NetBeans IDE (integrated development environment) |
This makes Unit 1 mostly useless to most of you unless you're willing to set up (or are on) a Linux system. That said, there's no reason the rest of the course would be useless, but... again, it doesn't look like it teaches modern C++ (still no lambdas), and a lot of their course material seems to just be references to other sites (which leaves a bad taste in my mouth).
Honestly, the best option for learning modern C++ seems to be C (pun), but that has the distinct disadvantage of costing quite a bit of money ($45 for an e-book on Amazon, and more for a hard copy or an ebook from other sites).
So, my choice would be C. If I were to pick a second choice, it would be E.
-Albatross
EDIT: P.S. - My emphasis on lambdas was mostly a joke, though in seriousness lambdas are a very important feature and I haven't found any dedicated chapters toward lambdas in any of options A, B, D, or E (and they definitely deserve them). When I said that it doesn't look like options A or B teach modern C++, I mean that they didn't seem to make references to anything that was added in the 2011 revision to C++. The rest of the options do.