Passing string from D to c++
monarch_dodra
monarchdodra at gmail.com
Wed Jul 31 00:48:28 PDT 2013
On Wednesday, 31 July 2013 at 05:56:13 UTC, Ali Çehreli wrote:
> On 07/30/2013 02:17 PM, JS wrote:
>
> > A C++ string is null terminated while a D string is not.
>
> I think the OP means std::string, which also is not
> zero-terminated. (On the other hand, C strings are
> zero-terminated.)
You can obtain a 0 terminated "const char*" from an std::string
in 0(1) using c_str.
While the C++98 standard doesn't mandate it, the above
requirement means that 99% of string implementations are using
arraysinternally. The C++11 standard *does* mandate that the
implementation use arrays internally. So that means you can get a
valid char* from &myString[0].
That string will not be 0 terminated, but all the major compiler
providers (AFAIK) make that guarantee as an extension.
More information about the Digitalmars-d
mailing list