diff options
Diffstat (limited to 'libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp')
-rw-r--r-- | libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp index 23e477619037..3c0851e4eebe 100644 --- a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp +++ b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/robust_against_adl.pass.cpp @@ -27,8 +27,14 @@ struct Incomplete; template<class T> struct Holder { T t; }; + typedef Holder<Incomplete> *Ptr; +template<class T> +struct Callable { + void operator()() const { } +}; + Ptr no_args() { return nullptr; } Ptr one_arg(Ptr p) { return p; } Ptr two_args(Ptr p, Ptr) { return p; } @@ -37,11 +43,11 @@ Ptr four_args(Ptr p, Ptr, Ptr, Ptr) { return p; } void one_arg_void(Ptr) { } -int main(int, char**) -{ +int main(int, char**) { Ptr x = nullptr; std::function<Ptr()> f(no_args); f(); std::function<Ptr(Ptr)> g(one_arg); g(x); std::function<void(Ptr)> h(one_arg_void); h(x); + std::function<void()> i(Callable<Holder<Incomplete>>{}); return 0; } |