Explicitly construct a `string_piece` when comparing to `char*`
In C++20, `operator==` candidates include rewritten candidates with reversed operand order, so this function creates infinite recursion just flipping operands back and forth. In C++17, it relies on implicit construction of a `string_piece`.
This is backwards and forwards compatible.
diff --git a/libshaderc_util/include/libshaderc_util/string_piece.h b/libshaderc_util/include/libshaderc_util/string_piece.h
index 89049d9..8d334df 100644
--- a/libshaderc_util/include/libshaderc_util/string_piece.h
+++ b/libshaderc_util/include/libshaderc_util/string_piece.h
@@ -332,7 +332,7 @@
}
inline bool operator==(const char* first, const string_piece second) {
- return second == first;
+ return second == string_piece(first);
}
inline bool operator!=(const char* first, const string_piece second) {