gpt4 book ai didi

templates - 一个专用 D 模板中的多种类型

转载 作者:行者123 更新时间:2023-12-03 14:46:31 24 4
gpt4 key购买 nike

说我必须处理ushortuint某种方式,但是 string不同。所以我想我需要一个专门用于 string 的模板和其他两者 ushortuint .是吗?


// for most
void func(T)(T var) { ... }

// for uint and ushort
void func(T: uint, ushort)(T var) { ... }


这就是想法,尽管代码无法编译。它是有效的还是非常糟糕的?

最佳答案

尝试这个:

void func(T)(T var) if ( is(T : uint) || is(T : ushort) )
{
...
}

void func(T : string)(T var)
{
...
}

您也可以在一个函数中执行此操作:
void func(T)(T var)
{
static if ( is(T : uint) || is(T : ushort) )
{
...
}
else if ( is(T : string) )
{
...
}
else
{
// handle anything else
}
}

关于templates - 一个专用 D 模板中的多种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com