Well you can forget any book which begins with void main!
How about this reading list?
http://rudbek.com/books.html
> Where can I learn modern C++?
If you're looking online, then
- Avoid anything that uses <iostream.h>, or worse, conio.h
- Avoid anything which uses void main
- Avoid anything which mentions a specific compiler - chances are, it won't work with other compilers.
- Consider anything that uses <iostream> and using namespace std;
- Consider anything that uses int main
> Also can someone tell me books on compilers and how different compilers work and what is the significance?
The whole point of learning standard C++ is that you shouldn't have to care about which compiler you're using.
In order, you should learn:
The standard C++ language (and how to design programs as well - you can't write a meaningful program without a half-decent plan).
The standard C++ template library
Portable libraries such as boost.
More portable libraries for GUI development (if that's your thing).
Platform specific libraries (if you have to).
The first two you need to be pretty good at, they form the foundation of everything else.
As for learning specific libraries, you just need to know about them (and where to get reference information).
Compilers and IDE's change far too rapidly, there's a new version of most of them at least once a year or so.
Once you've experienced a few, you'll soon see a lot of "same" or "similar" between them.