0

「Modern C++ Design」を読み
ましたが、そのサンプル コードについて質問があります。

MutilMethods.h に BasicDipatcher::AddおよびBasicDispatcher::Go
という本がない場合は、p278 p279 で、または Loki のソースを参照してください。

ページp278の下からp279
の上に、サンプルコードがあります

typedef BasicDispatcher<Shape> Dispatcher;
void HatchRectanglePoly(Shape& lhs, Shape& rhs) {...}
Dispatcher disp;
disp.Add<Rectangle, Poly>(HatchRectanglePoly);

関数 Go で見つけました。その引数は BaseLhs&、BaseRhs&
であり、この場合はShape&、Shape&である必要があります。

関数 Add では、その引数は SomeLhs&、SomeLhs& で
あり、この場合はRectangle&、Poly&である必要があります。

キーが異なるため、とにかくキーが一致しません

したがって、コールバック(HatchRectanglePoly) は呼び出されず
(同じコードに disp.Go.... を追加すると)、
代わりに std:runtime_error がスローされます。

私は正しいですか??

ありがとう

4

1 に答える 1