I am writing a software utility to pull up the correct data types, functions and classes given the version of C or C++, the compiler, and platform architecture for which I am writing my software application. The best example that I have found for the necessity of this type of utility are Windows' basic functions such as opening a Window: CreateWindow, CreateWindowW, CreateWindowA, CreateWindowEx, CreateWindowExA and CreateWindowExW. My understanding is that I need to take into account the version of C or C++ (i.e. C(89), C(99), Standard C++, Microsoft C++, Borland C++) as well as the processor architecture (i.e. 8 bit, 16 bit, 32 bit, 64 bit, etc).
What is the best way to determine which functions, datatypes, and classes are valid for the specific version of C or C++ coupled with the specific compiler and processor that I am writing the application for?
When you say you can check these things "by hand", are there function calls that you can make (or write) to test what version of C, C++ and processor architecture that the data type, function, etc is applicable to?