p14.cpp revision 503384f731b5abcbf870b0a5224eb920e631db0a
1// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify
2
3class NonCopyable {
4  NonCopyable(const NonCopyable&); // expected-note 2 {{implicitly declared private here}}
5};
6
7void capture_by_copy(NonCopyable nc, NonCopyable &ncr) {
8  // FIXME: error messages should talk about capture
9  (void)[nc] { }; // expected-error{{field of type 'NonCopyable' has private copy constructor}} \
10             // expected-error{{lambda expressions are not supported yet}}
11  (void)[ncr] { }; // expected-error{{field of type 'NonCopyable' has private copy constructor}} \
12             // expected-error{{lambda expressions are not supported yet}}
13}
14
15struct NonTrivial {
16  NonTrivial();
17  NonTrivial(const NonTrivial &);
18  ~NonTrivial();
19};
20
21struct CopyCtorDefault {
22  CopyCtorDefault(const CopyCtorDefault&, NonTrivial nt = NonTrivial());
23
24  void foo() const;
25};
26
27void capture_with_default_args(CopyCtorDefault cct) {
28  (void)[=] () -> void { cct.foo(); }; // expected-error{{lambda expressions are not supported yet}}
29}
30
31// FIXME: arrays!
32