conflicting with my own String.h

前端 未结 6 567
无人共我
无人共我 2020-12-19 01:52

I have a project that was compiling ok within g++(I can\'t see the version right now) and now on xCode it is not.
I think that I got the problem now... I have a String.h

6条回答
  •  独厮守ぢ
    2020-12-19 02:35

    Naming your headers with the same name as standard headers like string.h and including them simply with #include is asking for trouble (the difference in casing makes no difference on some platforms).

    As you said, however, it would be difficult to try to figure out what those are in advance when naming your headers. Thus, the easiest way to do this is to set to set your include path one directory level outside of a sub-directory in which your headers reside, ex:

    #include 
    

    Now you don't have to worry about whether the String.h file name conflicts with something in one the libraries you are using unless they happen to also be including which is unlikely. All decent third-party libraries do this as well. We don't include in boost, for instance, but instead include . Same with GL/GL.h instead of simply GL.h. This practice avoids conflicts for the most part and you don't have to work around problems by renaming String.h to something like Text.h.

提交回复
热议问题