What other hidden variables (pre-defined using macros) do I have access to in g++? <p>note: I am using g++ version 4.3.4</p> <p>So I was learning about assert statements and came across a homebrew assert macro that uses that variables <code>__LINE__</code> and <code>__FILE__</code> which (cleverly) give the line number and the file name from where they were called -- in this case, from where the assertation failed. These are epic pieces of information to have!</p> <p>I was able to infer that the variable <code>__FUNCTION__</code> will give you the function name that you are inside of... amazing!! However, when assert.h is at work, you also get the arguments to the function (i.e. <code>function: int main(int, char**)</code> and all I can do currently is get the function name...</p> <p>Generally speaking, where can I learn more about these wonderful hidden variables and get a complete list of all of them?</p> <p>p.s. I guess I understand now why you aren't supposed to use variable names starting with <code>__</code></p>