| 113 | |
| 114 | template <typename Base, typename Struct> |
| 115 | struct AddStructShared |
| 116 | : public StructSharedGet<Struct, AddStructShared<Base, Struct>>, |
| 117 | public Base, |
| 118 | public virtual StructSharedPtr |
| 119 | { |
| 120 | using StructShared_t = Struct; |
| 121 | using StructSharedGet<Struct, AddStructShared<Base, Struct>>::getSh; |
| 122 | static_assert( |
| 123 | std::is_same<typename get_base_structshared_or<Base, Struct>::type, |
| 124 | typename get_super_or<Struct>::type>::value, |
| 125 | "StructShared_t needs to have 'super' member of type Base::StructShared_t"); |
| 126 | |
| 127 | template <typename... Args> |
| 128 | AddStructShared(devicert::Device &device, Args &&...args) |
| 129 | : StructSharedGet<Struct, AddStructShared<Base, Struct>>( |
| 130 | device, &_device, &_ptr), |
| 131 | Base(std::forward<Args>(args)...) |
| 132 | {} |
| 133 | }; |
| 134 | |
| 135 | // Inlined definitions //////////////////////////////////////// |
| 136 |
nothing calls this directly
no outgoing calls
no test coverage detected