| 866 | |
| 867 | #if (__cpp_concepts) |
| 868 | struct DrawableConcept { |
| 869 | void draw(std::ostream &out) const { |
| 870 | te::call([](auto const &self, |
| 871 | auto &out) -> decltype(self.draw(out)) { self.draw(out); }, |
| 872 | *this, out); |
| 873 | } |
| 874 | |
| 875 | auto empty() { |
| 876 | return te::call<int>( |
| 877 | [](auto &self) -> decltype(self.empty()) { return self.empty(); }, |
| 878 | *this); |
| 879 | } |
| 880 | }; |
| 881 | |
| 882 | struct Empty { |
| 883 | void draw(std::ostream &out) const { out << "Empty"; } |
nothing calls this directly
no outgoing calls
no test coverage detected