You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi: Visual C++ 2019 Update 1 (which should be released later this year) has a completely rewritten lambda parser and one side-effect of this rewrite is that the format of the names of generated closure classes has changed (the generated name is now more similar to what gcc and clang would produce). In our internal testing of this release we have found that one of your tests is failing - specifically the first line of this test:
TEST_F(AutowiringDebugTest, IsLambdaTest) {
auto fn = [] {};
ASSERT_TRUE(autowiring::dbg::IsLambda(typeid(fn))) << "Lambda function not correctly detected";
ASSERT_FALSE(autowiring::dbg::IsLambda(typeid(CoreThread))) << "Simple class incorrectly identified as a lambda function";
ASSERT_FALSE(autowiring::dbg::IsLambda(typeid(std::vector<int>))) << "Template class incorrectly identified as a lambda function";
}
The test fails because of the code below which will not work in 2019 U1 because of the change to the generated name of the closure class:
#ifdef _MSC_VER
// On Windows, lambda functions start with the key string "class <"
bool autowiring::dbg::IsLambda(const std::type_info& ti) {
return demangle(ti)[0] == '<';
}
#else
Hi: Visual C++ 2019 Update 1 (which should be released later this year) has a completely rewritten lambda parser and one side-effect of this rewrite is that the format of the names of generated closure classes has changed (the generated name is now more similar to what gcc and clang would produce). In our internal testing of this release we have found that one of your tests is failing - specifically the first line of this test:
The test fails because of the code below which will not work in 2019 U1 because of the change to the generated name of the closure class:
If you compiled the program below with 2019 U1:
it would produce:
while Visual C++ 2019 (and earlier releases) would produce:
If you have any questions feel free to contact me.
Thanks
Jonathan Caves
The text was updated successfully, but these errors were encountered: