| 169 | }; |
| 170 | |
| 171 | struct SquareNoncopyable { |
| 172 | SquareNoncopyable() = default; |
| 173 | SquareNoncopyable(const SquareNoncopyable &) = delete; |
| 174 | SquareNoncopyable &operator=(const SquareNoncopyable &) = delete; |
| 175 | SquareNoncopyable(SquareNoncopyable &&) = default; |
| 176 | SquareNoncopyable &operator=(SquareNoncopyable &&) = default; |
| 177 | ~SquareNoncopyable() noexcept = default; |
| 178 | |
| 179 | void draw(std::ostream &out) const { out << "Square"; } |
| 180 | }; |
| 181 | |
| 182 | struct TriangleCopyable { |
| 183 | void draw(std::ostream &out) const { out << "Triangle"; } |
nothing calls this directly
no outgoing calls
no test coverage detected