Commit 5dbbf899 by Jonathan Wakely Committed by Jonathan Wakely

PR libstdc++/84769 qualify std::get and std::get_if to avoid ADL

	PR libstdc++/84769
	* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
	Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.

From-SVN: r258376
parent 311735db
2018-03-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/84769
* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
src/filesystem/std-ops.cc (create_dir): Likewise.
......
......@@ -891,7 +891,7 @@ namespace __variant
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T should occur for exactly once in alternatives");
static_assert(!is_void_v<_Tp>, "_Tp should not be void");
return get<__detail::__variant::__index_of_v<_Tp, _Types...>>(__v);
return std::get<__detail::__variant::__index_of_v<_Tp, _Types...>>(__v);
}
template<typename _Tp, typename... _Types>
......@@ -900,7 +900,7 @@ namespace __variant
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T should occur for exactly once in alternatives");
static_assert(!is_void_v<_Tp>, "_Tp should not be void");
return get<__detail::__variant::__index_of_v<_Tp, _Types...>>(
return std::get<__detail::__variant::__index_of_v<_Tp, _Types...>>(
std::move(__v));
}
......@@ -910,7 +910,7 @@ namespace __variant
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T should occur for exactly once in alternatives");
static_assert(!is_void_v<_Tp>, "_Tp should not be void");
return get<__detail::__variant::__index_of_v<_Tp, _Types...>>(__v);
return std::get<__detail::__variant::__index_of_v<_Tp, _Types...>>(__v);
}
template<typename _Tp, typename... _Types>
......@@ -919,7 +919,7 @@ namespace __variant
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T should occur for exactly once in alternatives");
static_assert(!is_void_v<_Tp>, "_Tp should not be void");
return get<__detail::__variant::__index_of_v<_Tp, _Types...>>(
return std::get<__detail::__variant::__index_of_v<_Tp, _Types...>>(
std::move(__v));
}
......@@ -958,7 +958,8 @@ namespace __variant
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T should occur for exactly once in alternatives");
static_assert(!is_void_v<_Tp>, "_Tp should not be void");
return get_if<__detail::__variant::__index_of_v<_Tp, _Types...>>(__ptr);
return std::get_if<__detail::__variant::__index_of_v<_Tp, _Types...>>(
__ptr);
}
template<typename _Tp, typename... _Types>
......@@ -969,7 +970,8 @@ namespace __variant
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T should occur for exactly once in alternatives");
static_assert(!is_void_v<_Tp>, "_Tp should not be void");
return get_if<__detail::__variant::__index_of_v<_Tp, _Types...>>(__ptr);
return std::get_if<__detail::__variant::__index_of_v<_Tp, _Types...>>(
__ptr);
}
struct monostate { };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment