Strings concatenated at compile time?
Jonathan M Davis via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu May 1 05:05:32 PDT 2014
On Thu, 01 May 2014 11:12:41 +0000
anonymous via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com>
wrote:
> On Thursday, 1 May 2014 at 10:42:36 UTC, Unwise wrote:
> > In the following example from the documentation, are strings
> > concatenated at compile time?
> >
> > template foo(string s) {
> > string bar() { return s ~ " betty"; }
> > }
> >
> > void main() {
> > writefln("%s", foo!("hello").bar()); // prints: hello betty
> > }
>
> I guess it's not guaranteed, but constant folding should take
> care of it, yes.
If you want it to be guaranteed, you'd do something like
template foo(string s)
{
enum foo = s ~ " betty";
}
void main()
{
writeln(foo!"hello");
}
I would hope that the optimizer would have optimized out the
concatenation in your example though.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list