How feasible is it in this day and age to write truly cross platform C++ applications? What percentage of code can be 100% platform independent?
I do web development for a living, so I don't have to worry about supporting multiple platforms. I use Java for my personal projects to get cross-platform support.
It's perfectly practical, within reason. A businessy database client type app will be easily portable between OS-X/Windows/Desktop Linux without any major gotchas. The biggest issue will be packaging for distribution, and making sure everything has nice icons and such. You'll have to do somewhat different things to make .deb, .rpm, .msi packages, etc.
If you want to have something that works literally "anywhere," obviously radically different form factors will have different UI needs. There's really nothing the API can do that will make a big CAD app that requires two monitors work sensibly on a cell phone, or a washing machine. But, between basically equivalent platforms, for a reasonable subset of cases, you can have something that builds without any platform specific code whatsoever. I have done it often enough. At work, I currently have a centrally deployed app using the Python Qt bindings that Mac in Linux users both use. The actual python script is buried inside a Mac style .app folder structure, so mac users can just double click on it. Linux users just execute the script directly. Literally zero changes between platforms.
Personally, I find web development much more onerous than native C++ development with Qt. When I try to do web development, I have to simultaneously deal with something like 4 languages (ruby [or whatever], HTML, CSS, JavaScript), potentially more with things that compile to CSS and such, and deal with slightly different runtimes in various browsers, and versions of those browsers. Things work slightly differently on the server vs. my local machine in dev mode.
People keep telling me web development is "easier," but I just can't understand that sentiment. Obviously, it works well for many people, and the best tool is usually just the one you know best, etc. Different strokes for different folks, I guess.