Most popular compilers will implement standard C++ and then add their own features, often for the purpose of dealing with OS-specifics. However, most of what's there is standard.
What is more common are non-standard C++ libraries. Examples of Standard C++ libraries include iostream and STL. Non-standard libraries are mostly third party libraries. But Qt is a special kind of non-standard library which happens to be cross-platform (which is nice). Boost is a popular cross-platform free library.
In general, if you want your code to be portable, you want to use as many standard libraries and cross-platform libraries as you can.
So why would anyone want to use
non cross-platform libraries? First of all, it can take a lot of work to keep libraries cross-platform. Libraries may also remain native for the purpose of optimization to specific hardware (eg NVidia's GLUT). For a long time, many developers didn't care about anything non-MS so those developers would just use MS libraries. However, as hardware speed ever-increases and as MS loses its foothold slowly over time, advantages for cross-platform libraries seem to outweigh their disadvantages.
As a side-note, one of the advantages of Java over C++ has been the former's extensive and useful standard library (including GUI libs and a ton of other functionality). IMHO, this difference is one of the main reasons for the massive flocking of developers to Java over the last decade. Unfortunately, we haven't seen an equivalent standard for C++ on *nix systems. There are enough disparate open source libs on *nix systems, but you have to take the time to look for them, chose one, and deal with different APIs.
In contrast, C++ on Windows benefits from the standard libraries as supplied by .Net. Since .Net benefited from Java as a predecessor, its API is just as easy to use and just as extensive. Of course, the disadvantage is, you are essentially tied to MS if you choose to use the .Net libs.
One other note: with the fall of Sun under Oracle, enthusiasm for Java has waned somewhat. But the Java libraries are so useful that an entire slew of old and new languages for the JVM (Java Virtual Machine) have been developed. You can find a list of them here:
http://en.wikipedia.org/wiki/List_of_JVM_languages
These days, I personally spend 95% of my time developing on C++ (sever-side) and Scala (client-side) which is a relatively recent JVM language. The other 5%, I will use Ruby, php, UNIX command-line or whatever else is needed to get the job done efficiently and effectively.