Implement C++17 <variant>. Patch from Michael Park!
This patch was reviewed as https://reviews.llvm.org/D23263.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@288547 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/std/utilities/variant/variant.visit/visit.pass.cpp b/test/std/utilities/variant/variant.visit/visit.pass.cpp
index 1783fe9..46d2258 100644
--- a/test/std/utilities/variant/variant.visit/visit.pass.cpp
+++ b/test/std/utilities/variant/variant.visit/visit.pass.cpp
@@ -77,16 +77,16 @@
}
static CallType last_call_type;
- static TypeID const *last_call_args;
+ static const TypeID *last_call_args;
};
CallType ForwardingCallObject::last_call_type = CT_None;
-TypeID const *ForwardingCallObject::last_call_args = nullptr;
+const TypeID *ForwardingCallObject::last_call_args = nullptr;
void test_call_operator_forwarding() {
using Fn = ForwardingCallObject;
Fn obj{};
- Fn const &cobj = obj;
+ const Fn &cobj = obj;
{ // test call operator forwarding - single variant, single arg
using V = std::variant<int>;
V v(42);
@@ -134,11 +134,11 @@
{ // single argument - value type
using V = std::variant<int>;
V v(42);
- V const &cv = v;
+ const V &cv = v;
std::visit(obj, v);
assert(Fn::check_call<int &>(Val));
std::visit(obj, cv);
- assert(Fn::check_call<int const &>(Val));
+ assert(Fn::check_call<const int &>(Val));
std::visit(obj, std::move(v));
assert(Fn::check_call<int &&>(Val));
std::visit(obj, std::move(cv));
@@ -149,7 +149,7 @@
using V = std::variant<int &>;
int x = 42;
V v(x);
- V const &cv = v;
+ const V &cv = v;
std::visit(obj, v);
assert(Fn::check_call<int &>(Val));
std::visit(obj, cv);
@@ -163,7 +163,7 @@
using V = std::variant<int &&>;
int x = 42;
V v(std::move(x));
- V const &cv = v;
+ const V &cv = v;
std::visit(obj, v);
assert(Fn::check_call<int &>(Val));
std::visit(obj, cv);
@@ -174,16 +174,16 @@
assert(Fn::check_call<int &&>(Val));
}
{ // multi argument - multi variant
- using S = std::string const &;
+ using S = const std::string &;
using V = std::variant<int, S, long &&>;
- std::string const str = "hello";
+ const std::string str = "hello";
long l = 43;
V v1(42);
- V const &cv1 = v1;
+ const V &cv1 = v1;
V v2(str);
- V const &cv2 = v2;
+ const V &cv2 = v2;
V v3(std::move(l));
- V const &cv3 = v3;
+ const V &cv3 = v3;
std::visit(obj, v1, v2, v3);
assert((Fn::check_call<int &, S, long &>(Val)));
std::visit(obj, cv1, cv2, std::move(v3));
@@ -243,7 +243,7 @@
auto test = [&](auto &&... args) {
try {
std::visit(obj, args...);
- } catch (std::bad_variant_access const &) {
+ } catch (const std::bad_variant_access &) {
return true;
} catch (...) {
}