Code Comments
Programming Forum and web based access to our favorite programming groups.it seem to me that when doing include - #include <string.h> - is CRT #inlcude <string> - is C++ standard library Is that true those header with .h extension is CRT and those without extension <string> is C++ standard library headers?
Post Follow-up to this messageCarmen Sei wrote: > it seem to me that when doing include - > > #include <string.h> - is CRT No, it's an obsolete C++ header. There isn't a "CRT", there's the C and C++ standard libraries. The latter includes the former. -- Ian Collins.
Post Follow-up to this message"Ian Collins" <ian-news@hotmail.com> wrote in message news:65igpdF2g3gvtU1@mid.individual.net... > Carmen Sei wrote: > > No, it's an obsolete C++ header. Are you sure? Have you looked at <cstring>? Sharad
Post Follow-up to this messageSharad wrote: > "Ian Collins" <ian-news@hotmail.com> wrote in message > news:65igpdF2g3gvtU1@mid.individual.net... > > Are you sure? Have you looked at <cstring>? > Oops, I misread the OP. -- Ian Collins.
Post Follow-up to this message"Carmen Sei" <fatwallet951@yahoo.com> wrote in message news:js28v3to5i8qm6cfammju25gb0na4mh0is@ 4ax.com... > it seem to me that when doing include - > > #include <string.h> - is CRT > #inlcude <string> - is C++ standard library The intention of <string.h> is for the C style string category of functions like strcpy, strlen etc. <string> is meant for the std::string class in the C++ Standard library. At least with Comeau just including <string> takes care of <string.h> also, but I am not sure if it's yet a standard behavior. Sharad
Post Follow-up to this messageIan Collins wrote: > Carmen Sei wrote: > > No, it's an obsolete C++ header. > > There isn't a "CRT", there's the C and C++ standard libraries. The > latter includes the former. > The latter includes an obsolete version of the former.
Post Follow-up to this messageSharad wrote: > "Carmen Sei" <fatwallet951@yahoo.com> wrote in message > news:js28v3to5i8qm6cfammju25gb0na4mh0is@ 4ax.com... > > The intention of <string.h> is for the C style string category of function s > like strcpy, strlen etc. <string> is meant for the std::string class in th e > C++ Standard library. At least with Comeau just including <string> takes > care of <string.h> also, but I am not sure if it's yet a standard behavior . > > Sharad > It is allowed for it to do this. It is not REQUIRED for it to do so. If you're going to need the C string functions, you need to include string.h or cstring. >
Post Follow-up to this messageCarmen Sei wrote: > it seem to me that when doing include - > > #include <string.h> - is CRT > #inlcude <string> - is C++ standard library > > Is that true those header with .h extension is CRT and those without > extension <string> is C++ standard library headers? Not always. An OS/Compiler specific header may have a .h or not, usually they do though. Most headers without an extention are part of the STL. Some headers with an .h extention are from the C routines. However, the standard C headers can be included by adding a 'c' to the front and removing the exteion. I.E. #include <string.h> becomes #include <cstring> So how would you catagorize cstring? -- Jim Langston tazmaster@rocketmail.com
Post Follow-up to this messageOn 2008-04-03 01:50:28 -0400, "Jim Langston" <tazmaster@rocketmail.com> said : > Carmen Sei wrote: > > Not always. An OS/Compiler specific header may have a .h or not, usually > they do though. > > Most headers without an extention are part of the STL. > > Some headers with an .h extention are from the C routines. > > However, the standard C headers can be included by adding a 'c' to the fro nt > and removing the exteion. I.E. > #include <string.h> > becomes > #include <cstring> > > So how would you catagorize cstring? Let me restate that. Among the headers defined in the C++ standard: Headers without an extension describe names in the C++ standard library. Headers with a .h extension describe names in the C standard library, and put those names in the global namespace. Headers with names that are the same as the C headers but with a 'c' in front and no extension put names from the C standard library into namespace std. -- Pete Roundhouse Consulting, Ltd. (www.versatilecoding.com) Author of "The Standard C++ Library Extensions: a Tutorial and Reference (www.petebecker.com/tr1book)
Post Follow-up to this messagePowered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.