properly passing strings to functions? (C++ vs D)
Ola Fosheim Grøstad
ola.fosheim.grostad at gmail.com
Mon Jan 11 15:25:58 UTC 2021
On Monday, 11 January 2021 at 15:23:23 UTC, Ola Fosheim Grøstad
wrote:
> On Monday, 11 January 2021 at 14:12:57 UTC, zack wrote:
>> A beginner question: How to pass strings properly to functions
>> in D?
>> Is there any allocation going on if just use a function as
>> "myPrint"? In C++ I have often seen calls where one just
>> passes a reference/const reference to a string to avoid
>> allocation.
>
> C++ strings are reference counted, I think, so it is more to
> avoid a reference count increment than to avoid a collection.
I meant allocation... The following prints "1", so no allocation.
#include <iostream>
#include <string>
std::string a("hello world");
void f(std::string b){
std::cout << (b.data() == a.data()) << std::endl;
}
int main()
{
f(a);
}
More information about the Digitalmars-d-learn
mailing list