On 03/07/2011 11:16 AM, Jonathan M Davis wrote:
> On Monday, March 07, 2011 07:22:47 Wilfried Kirschenmann wrote:

>> enum deviceType {cpu, gpu}
>> auto execDeviceSuffix = [deviceType.cpu:".cpu", deviceType.gpu:".gpu"];

[...]

>> This won't compile and give the error:
>> Error: non-constant expression
>> [cast(deviceType)0:".cpu",cast(deviceType)1:".gpu"]

[...]

> The way to get what you want to work in this case is to use a module
> constructor. So, you'd do something like this:
>
> string[deviceType] execDeviceSuffix;
>
> static this()
> {
>    execDeviceSuffix[deviceType.cpu] = "cpu";
>    execDeviceSuffix[deviceType.gpu] = "gpu";
> }

This works too:

static this()
{
    execDeviceSuffix = [deviceType.cpu:".cpu", deviceType.gpu:".gpu"];
}

Ali

Reply via email to