[swift-evolution] [Completing Generics]
Douglas Gregor
dgregor at apple.com
Wed Mar 9 17:57:34 CST 2016
> On Mar 9, 2016, at 4:28 AM, Erik Verbruggen <erik.verbruggen at me.com> wrote:
>
>
>> Generic constants
>>
>> let constants could be allowed to have generic parameters, such that they produce differently-typed values depending on how they are used. For example, this is particularly useful for named literal values, e.g.,
>>
>> let π<T : FloatLiteralConvertible>: T = 3.141592653589793238462643383279502884197169399
>>
>> The Clang importer could make particularly good use of this when importing macros.
>
> I assume the following will fall under "constant expression":
>
> let 2π = 2 * π
That would involve inferring that 2π is a generic constant… could certainly be something to explore, but it’s somewhat new territory.
>
> Also, how does the clang-importer handle:
>
> #define M_DOUBLE_PI (2 * M_PI)
>
> Or rephrasing, this is specifically for the case where the initialiser only consists of a single literal token?
I was thinking of it in terms of a single literal token, but I’m pointing out the feature as a possibility, not doing the detailed design work that would be involved in making it real. It’s possible we could make the importer smarter in this regard.
- Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160309/384587c5/attachment.html>
More information about the swift-evolution
mailing list