I came across this while hunting a macro replacement issue in CLion itself.
ASSERT_TRUE(root->setValue(json::parse(R"(["none"])")));
switch (0)
case 0:
default:
if (const ::testing::AssertionResult gtest_ar_ = ::testing::AssertionResult((root->setValue(json::parse(R"(["none"])")))))
;
else
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "_file_name_", 305, ::testing::internal::GetBoolAssertionFailureMessage(gtest_ar_, "root->setValue(json::parse(R"(["none"]) "))", "false", "true").c_str()) = ::testing::Message()
/mnt/c/clion/broker/test/node_test.cpp: In member function 'virtual void NodeTest_setValue_Test::TestBody()':
/mnt/c/clion/broker/test/node_test.cpp:359:214: error: expression cannot be used as a function
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "_file_name_", 305, ::testing::internal::GetBoolAssertionFailureMessage(gtest_ar_, "root->setValue(json::parse(R"(["none"]) "))", "false", "true").c_str()) = ::testing::Message();
^
/mnt/c/clion/broker/test/node_test.cpp:359:49: error: expected primary-expression before '(' token
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "_file_name_", 305, ::testing::internal::GetBoolAssertionFailureMessage(gtest_ar_, "root->setValue(json::parse(R"(["none"]) "))", "false", "true").c_str()) = ::testing::Message();
^
/mnt/c/clion/broker/test/node_test.cpp:359:207: error: expected identifier before string constant
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "_file_name_", 305, ::testing::internal::GetBoolAssertionFailureMessage(gtest_ar_, "root->setValue(json::parse(R"(["none"]) "))", "false", "true").c_str()) = ::testing::Message();
^
/mnt/c/clion/broker/test/node_test.cpp: In lambda function:
/mnt/c/clion/broker/test/node_test.cpp:359:214: error: expected '{' before ')' token
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "_file_name_", 305, ::testing::internal::GetBoolAssertionFailureMessage(gtest_ar_, "root->setValue(json::parse(R"(["none"]) "))", "false", "true").c_str()) = ::testing::Message();
^
/mnt/c/clion/broker/test/node_test.cpp: In member function 'virtual void NodeTest_setValue_Test::TestBody()':
/mnt/c/clion/broker/test/node_test.cpp:359:214: error: expression cannot be used as a function
/mnt/c/clion/broker/test/node_test.cpp:359:269: error: return-statement with a value, in function returning 'void' [-fpermissive]
return ::testing::internal::AssertHelper(::testing::TestPartResult::kFatalFailure, "_file_name_", 305, ::testing::internal::GetBoolAssertionFailureMessage(gtest_ar_, "root->setValue(json::parse(R"(["none"]) "))", "false", "true").c_str()) = ::testing::Message();
CLion shows the issue with the raw string literal (sorry for the hard to read image / and ignore the red .c_str() - that's the CLion issue I am hunting)