<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The problem I see is that + is an operator of the Standard Library and not part of the core language. I wouldn’t want + to sometimes to be a runtime operation and other times a compile-time operation. No, I really think we need strong language support here.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 16 May 2017, at 22:20, Tony Allevato via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I agree with Ben—this is something that should just work for all string literals, and those protocols shouldn't be reasons to introduce a different syntax. It would be even more confusing for users to have to understand under which contexts they could use either `+` or juxtaposition and under which contexts they could *only* use juxtaposition.<div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Tue, May 16, 2017 at 12:28 PM Ben Rimmington via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="">
&gt; On 16 May 2017, at 16:36, Gwendal Roué wrote:<br class="">
&gt;<br class="">
&gt;&gt; Le 16 mai 2017 à 16:58, Tony Allevato &lt;<a href="mailto:tony.allevato@gmail.com" target="_blank" class="">tony.allevato@gmail.com</a>&gt; a écrit :<br class="">
&gt;&gt;<br class="">
&gt;&gt; Regarding the C/Objective-C syntax, what would be the advantages over concatenating the strings with `+`?<br class="">
&gt;<br class="">
&gt; The support for ExpressibleByStringLiteral and ExpressibleByStringInterpolation protocols.<br class="">
<br class="">
Would it be possible to have compile-time concatenation of *all* string literals using the `+` operator?<br class="">
<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; // Written as:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; @available(*, unavailable, message: "Long strings can be bro" +<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ken into two or more pieces.")<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; // Compiled as:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; @available(*, unavailable, message: "Long strings can be broken into two or more pieces.")<br class="">
<br class="">
This could also be used with types such as StaticString, which don't have their own `+` operator.<br class="">
<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; // Written as:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; let s: StaticString = "Long strings can be bro" +<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "ken into two or more pieces."<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; // Compiled as:<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; let s: StaticString = "Long strings can be broken into two or more pieces."<br class="">
<br class="">
-- Ben<br class="">
<br class="">
_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</blockquote></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>