(C++) Compile-time Strategy Design Pattern example: DoIt
February 24, 2017 · View on GitHub
(C++) Compile-time Strategy Design Pattern example: DoIt
Compile-time Strategy Design Pattern example: DoIt is a compile-time Strategy Design Pattern.
You can also employ a run-time Strategy Design Pattern.
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 12.10 (quantal)
Qt Creator 2.5.2
- G++ 4.7.2
Libraries used:
STL: GNU ISO C++ Library, version
4.7.2
Qt project file: CppCtStrategyDesignPatternExampleDoIt.pro
TEMPLATE = app CONFIG += console CONFIG -= qt QMAKE_CXXFLAGS += -Wall -Wextra -Weffc++ -Werror SOURCES += main.cpp
main.cpp
#include <iostream> ///A compile-time Strategy Design Pattern enum Policy { A, B }; template <Policy> struct Strategy { static void DoIt(); }; template<> void Strategy<A>::DoIt() { std::cout << "Do it the A way\n"; } template<> void Strategy<B>::DoIt() { std::cout << "Do it the B way\n"; } int main() { const Strategy<A> x; x.DoIt(); const Strategy<B> y; y.DoIt(); }