0

我已经尝试了一整天没有任何运气...

这有效:

std::regex pattern ("Test");

这不起作用:

std::regex pattern_array[2] {"Test1", "Test2"};

产生错误:

mainprog.cpp:534:47: error: could not convert ‘(const char*)"Test1"’ from ‘const char*’ to ‘std::regex {aka std::basic_regex<char>}’

mainprog.cpp:534:47: error: could not convert ‘(const char*)"Test2"’ from ‘const char*’ to ‘std::regex {aka std::basic_regex<char>}’

我试图创建一个与 结构相同的类std::regex,但我无法重新创建错误(它工作得很好)。

我正在使用在 Linux 上运行的 gcc 4.7.2 进行编译。

std::regex的文档

谢谢,我非常感谢任何帮助。

卡莱

更新:

这是我的重建工作:

class testclass
{
public:
    testclass(const char* s, bool b = true);
};

testclass::testclass(const char* s, bool b)
{
    printf("Bool %d", b);
}

testclass obj1 ("Test");
testclass obj2[2] {"Test1", "Test2"};
4

1 回答 1

1

尝试这个。

std::regex pattern_array[2] = { std::regex("Test1"), std::regex("Test2") };

您需要使用构造函数显式构造,因为正则表达式类explicit在其构造函数上使用关键字。

于 2013-05-25T22:41:41.083 回答