OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef INLINE_CTOR_H_ | 5 #ifndef INLINE_CTOR_H_ |
6 #define INLINE_CTOR_H_ | 6 #define INLINE_CTOR_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 class InlineCtorsArentOKInHeader { | 11 class InlineCtorsArentOKInHeader { |
12 public: | 12 public: |
13 InlineCtorsArentOKInHeader() {} | 13 InlineCtorsArentOKInHeader() {} |
14 ~InlineCtorsArentOKInHeader() {} | 14 ~InlineCtorsArentOKInHeader() {} |
15 | 15 |
16 private: | 16 private: |
17 std::vector<int> one_; | 17 std::vector<int> one_; |
18 std::vector<std::string> two_; | 18 std::vector<std::string> two_; |
19 }; | 19 }; |
20 | 20 |
21 #define INLINE_CTORS_IN_A_MACRO(CLASS_NAME) \ | |
22 class CLASS_NAME { \ | |
23 public: \ | |
24 CLASS_NAME() {} \ | |
25 ~CLASS_NAME() {} \ | |
26 \ | |
27 private: \ | |
28 std::vector<int> one_; \ | |
29 std::vector<std::string> two_; \ | |
30 } | |
31 INLINE_CTORS_IN_A_MACRO(InlineCtorsBehindAMacroArentOKInHeader); | |
32 MACRO_FROM_CPP; | |
Nico
2015/12/10 14:22:35
Do we need the "macro defined in cpp file but used
Jeffrey Yasskin
2015/12/10 16:20:00
It's pretty obscure, but the inline-virtuals patch
| |
33 | |
21 class DeletedMembersInHeaderAreOKThough { | 34 class DeletedMembersInHeaderAreOKThough { |
22 public: | 35 public: |
23 DeletedMembersInHeaderAreOKThough() = delete; | 36 DeletedMembersInHeaderAreOKThough() = delete; |
24 ~DeletedMembersInHeaderAreOKThough() = delete; | 37 ~DeletedMembersInHeaderAreOKThough() = delete; |
25 DeletedMembersInHeaderAreOKThough(const DeletedMembersInHeaderAreOKThough&) = | 38 DeletedMembersInHeaderAreOKThough(const DeletedMembersInHeaderAreOKThough&) = |
26 delete; | 39 delete; |
27 | 40 |
28 private: | 41 private: |
29 std::vector<int> one_; | 42 std::vector<int> one_; |
30 std::vector<std::string> two_; | 43 std::vector<std::string> two_; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
80 | 93 |
81 // Plugin does warn about inlining four ctor/dtor calls. | 94 // Plugin does warn about inlining four ctor/dtor calls. |
82 struct FourNonTrivialMembers { | 95 struct FourNonTrivialMembers { |
83 NonTrivialStruct a; | 96 NonTrivialStruct a; |
84 NonTrivialStruct b; | 97 NonTrivialStruct b; |
85 NonTrivialStruct c; | 98 NonTrivialStruct c; |
86 NonTrivialStruct d; | 99 NonTrivialStruct d; |
87 }; | 100 }; |
88 | 101 |
89 #endif // INLINE_CTOR_H_ | 102 #endif // INLINE_CTOR_H_ |
OLD | NEW |