我正在测试完美转发,我不明白为什么TEST_EQ(string("olleH"), s)
编译失败,但string("olleH") == s
编译通过。如何TEST_EQ
在这里修复我的功能?
template<typename S>
static bool TEST_EQ(S&& a, S&& b)
{
return forward<S>(a) == forward<S>(b);
}
int main()
{
string s= "Hello";
cout << TEST_EQ(string("olleH"), s) << endl;
cout << (string("olleH") == s);
}