std.regex.regex的返回值?

std.regex.regex的返回值?,regex,d,phobos,Regex,D,Phobos,我正在尝试编写一个函数,它接受一个输入字符串、一个正则表达式(由std.regex.regex从一个rawstring生成)和一个错误消息字符串,并尝试使用正则表达式匹配输入字符串中的内容,如果没有匹配项,则显示错误消息。到目前为止,我的签名如下: string check_for_match (string input, Regex r, string error_message) 但是,正如编译器抱怨的那样,这似乎不起作用,它说: struct std.regex.Regex(Char)

我正在尝试编写一个函数,它接受一个输入字符串、一个正则表达式(由
std.regex.regex
从一个rawstring生成)和一个错误消息字符串,并尝试使用正则表达式匹配输入字符串中的内容,如果没有匹配项,则显示错误消息。到目前为止,我的签名如下:

string check_for_match (string input, Regex r, string error_message)
但是,正如编译器抱怨的那样,这似乎不起作用,它说:

struct std.regex.Regex(Char) is used as a type

那么我应该使用什么呢?

如果您将
Regex
更改为
Regex,它将被编译!字符

原因是
Regex
是一个可以使用任何字符大小的模板:
char
用于UTF-8模式,
wchar
用于UTF-16,或
dchar
用于UTF-32。编译器说您需要通过在此处传递所需的
Char
参数来创建一个类型

由于您使用的是由
char
s组成的
string
Regex!char
是要使用的类型

string check_for_match (string input, Regex!char r, string error_message) { return null; }