Section 39:
 39.1 How do I convert a value (a number, for example) to a std::string? 39.2 How do I convert a std::string to a number? 39.3 Can I templatize the above functions so they work with other types? 39.4 What should be done with macros that contain if? 39.5 What should be done with macros that have multiple lines? 39.6 What should be done with macros that need to paste two tokens together? Updated! 39.7 Why can't the compiler find my header file in #include "c:\test.h" ? 39.8 What are the C++ scoping rules for for loops? 39.9 Why can't I overload a function by its return type? 39.1 What is "persistence"? What is a "persistent object"? 39.11 How can I create two classes that both know about each other? 39.12 What special considerations are needed when forward declarations are used with member objects? 39.13 What special considerations are needed when forward declarations are used with inline functions? 39.14 Why can't I put a forward-declared class in a std::vector<>? 39.15 Why do some people think x = ++y + y++ is bad? 39.16 What's the deal with "sequence points"?
[39.7] Why can't the compiler find my header file in #include "c:\test.h" ?

Because "\t" is a tab character.

You should use forward slashes ("/") rather than backslashes ("\") in your #include filenames, even on operating systems that use backslashes such as DOS, Windows, OS/2, etc. For example:

#if 1
#include "/version/next/alpha/beta/test.h"    // RIGHT!
#else
#include "\version\next\alpha\beta\test.h"    // WRONG!
#endif

Note that you should use forward slashes ("/") on all your filenames, not just on your #include files.

Note that your particular compiler might not treat a backslash within a header-name the same as it treats a backslash within a string literal. For instance, your particular compiler might treat #include "foo\bar\baz" as if the '\' chars were quoted. This is because header names and string literals are different: your compiler will always parse backslashes in string literals in the usual way, with '\t' becoming a tab character, etc., but it might not parse header names using those same rules. In any case, you still shouldn't use backslashes in your header names since there's something to lose but nothing to gain.