Possible Duplicate:
Difference between <string> and <string.h>?
My specific example uses following clause:
#include <string>
If I use following clause instead
#include <string.h>
compiler ends with error
[BCC32 Error] utils.cpp(173): E2316 ‘getline’ is not a member of ‘std’
Line 173 in utils.cpp file is as follows:
while(std::getline(in, line, '\n'))
I thought that there is no difference between these two clauses. Now I am confused. What files are in fact included by these two clauses? Lets say, my C++ Builder installation has program directory C:\Program Files\RAD Studio\9.0 and include files are located in subdirectory C:\Program Files\RAD Studio\9.0\include.
They are two different headers. The convention in the
Cstandard library is to have the headers ending with.h, whereas in theC++standard library the convention is to miss out the file extension altogether. Some more detail from wikipedia:Other libraries follow different conventions. Boost, for instance, chooses
.hppas theirC++header extension of choice.