Swift 有 case _ where (bool):
,CSharp 有 case var _ when (bool):
,那么 Cpp 该怎么写呢?
(假设讨论的是 Cpp17 ,如果 Cpp17 之后的某个版本才可以的话也可以讨论。)
1
ysc3839 2023-01-31 20:27:03 +08:00 via Android
判断类型?编译期用 if constexpr std::is_same_v 。运行期用 std::variant 和 std::holds_alternative 。
|
2
ShikiSuen OP |
3
fatestigma 2023-02-01 08:31:19 +08:00
感觉像是说 Pattern Matching ,C++23 的一个提案: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1371r3.pdf
inspect (v) { pattern1 if (cond1) => { stmt1 } pattern2 => { stmt2 } // ... }; |
4
ShikiSuen OP @fatestigma 感谢您的分享。
看来 C++ 在语言特性上真的落后太多,到现在才想到要引入这种改进。 |