добрый день.
натолкнулса на неск. выкладок касаемо полезности замены динамического полиморфизма на статический в мире С++ (к примеру, это достигается при помощи
Curiously recurring template pattern), и задумалса -- а как же
Most C++ features, including OOP concepts, come at zero cost: that is the beauty of C++, something Stroustrup refers to as the "zero-overhead principle".
?
нек. плюсы применения статического полиморфизма:
1. Two levels of runtime indirection saved (virtual function pointer + virtual function table).
2. static_cast calculations can be performed at compile time — no runtime cost.
3. Possibly saves on having any virtual function pointer and vtable — saving space (albeit minimal savings).
4. The base class doesn't actually need to define the method — like a pure virtual function.
5. You can call static methods and public members (both static and non-static).
не выглядит ли статический полиморфизм неким хаком/попыткой переизобрести то, что уже предусмотрено в языке С++ его создателем?
благодарю за конструктивные комментарии.
"Я женился на первой же женщине, которая обратилась ко мне по мейлу." © Л. Торвальдс