diff --git a/_posts/2023-01-19-totw-218.md b/_posts/2023-01-19-totw-218.md index 47febbdc..7e978443 100644 --- a/_posts/2023-01-19-totw-218.md +++ b/_posts/2023-01-19-totw-218.md @@ -102,20 +102,24 @@ a friend function template in their type named `SketchyDraw` with the appropriate signature. the template overload above will use ADL to find the `SketchyDraw` function. For example, - +
class Triangle {
public:
explicit Triangle(Point a, Point b, Point c) : a_(a), b_(b), c_(c) {}
-template <typename SC> friend void SketchyDraw(SC& canvas, const Triangle&
-triangle) { // Note: This is a template, even though the only type we ever
-expect to be // passed in for `SC` is `sketchy::Canvas`. Using `sketchy::Canvas`
-directly // works, but pulls in an extra dependency that may not be used by all
-users // of `Triangle`. sketchy::Draw(canvas, sketchy::Line(triangle.a_,
-triangle.b_)); sketchy::Draw(canvas, sketchy::Line(triangle.b_, triangle.c_));
-sketchy::Draw(canvas, sketchy::Line(triangle.c_, triangle.a_)); }
+ template <typename SC> friend void SketchyDraw(SC& canvas, const Triangle&
+ triangle) { // Note: This is a template, even though the only type we ever expect to be
+ // passed in for `SC` is `sketchy::Canvas`. Using `sketchy::Canvas` directly
+ // works, but pulls in an extra dependency that may not be used by all users
+ // of `Triangle`.
+ sketchy::Draw(canvas, sketchy::Line(triangle.a_, triangle.b_));
+ sketchy::Draw(canvas, sketchy::Line(triangle.b_, triangle.c_));
+ sketchy::Draw(canvas, sketchy::Line(triangle.c_, triangle.a_));
+ }
-private: Point a_, b_, c_; };
+ private:
+ Point a_, b_, c_;
+};
// Usage:
void DrawTriangles(sketchy::Canvas& canvas, absl::Span<const Triangle> triangles) {