2014-07-26 4 views
3

입력 문자열, 정규식 (rawstring에서 std.regex.regex으로 작성) 및 오류 메시지 문자열을 취하고 정규식을 사용하여 입력 문자열의 내용과 일치하는지 확인하고 오류 메시지를 표시하는 함수를 작성하려고합니다 if 거기에는 일치하는 것이 없습니다. 말,std.regex.regex의 반환 값은?

string check_for_match (string input, Regex r, string error_message) 

그러나,이 컴파일러는 불평으로, 작동하지 않는 것 :

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

그래서 내가 대신 무엇을 사용해야 지금까지 다음과 같은 서명을 함께했다?

답변

4

RegexRegex!char으로 변경하면 컴파일됩니다.

이유 Regex 모든 문자 사이즈를 사용할 수있는 템플릿이다이다 : UTF-32, UTF-16, UTF-8 패턴 char, wchar 또는 dchar. 컴파일러는 여기에 필요한 Char 인수를 전달하여 형식을 만들어야한다고 말합니다.

char으로 구성된 string으로 작업 중이므로 Regex!char을 사용할 유형입니다.

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