Monolith vs Microservices
Let me start with an example. Imagine if we wanted to pick a machine among a list of machines that is best suited to run a CPU-heavy process. It is actually a...
Let me start with an example. Imagine if we wanted to pick a machine among a list of machines that is best suited to run a CPU-heavy process. It is actually a...
The Beginning Imagine you are an average guy who is interested in coding and building something great that solves someone’s problems. Imagine you are not really writing an interactive desktop program, but...
So you got yourself access to a Debian server (or virtual private server) and have logged into it by one way or the other. In this tutorial, we will learn how to...
A generic factory is a factory that can register any class type. It is very easy to write because we are allowed to use void pointers.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <functional> class Factory { public: Factory() {} ~Factory() {} void Register(const std::string _key, const std::function<void *()> _creator) { m_creators[_key] = _creator; } template<typename ClassType> ClassType* Get(const std::string _key) const { return static_cast<ClassType *>(m_creators.at(_key)()); } private: std::map<std::string, std::function<void *()> > m_creators; }; |
Usage:
1 2 3 4 5 6 7 8 9 |
int main() { Factory f; f.Register("Derived1", &BaseClass<Derived1>::CreateInterface); f.Register("Derived2", &BaseClass<Derived2>::CreateInterface); Derived1 *d1 = f.Get<Derived1>("Derived1"); Derived2 *d2 = f.Get<Derived2>("Derived2"); Derived1 *d2 = f.Get<Derived1>("Derived2"); // This also compiles!!! } |
As we are...
Problem statement: Find the largest sum that is possible in an array. I.e., find the maximum sub-array. Solution: From the very first this problem looks complicated because of how it is framed....
This PDF was submitted to BITS PILANI Work Integrated Learning Program 2019 Object Oriented Analysis and Design (S2_18_SSZG514) for the final assignment.
This is based on this Visual Studio 2013 for QtCreator along with my own changes. On Windows: Put the XML file in %APPDATA%/QtProject/qtcreator/styles On Linux/Unix: Put the XML file in $HOME/.config/QtProject/qtcreator/styles You...
‘C++ Traits’ is an idiom that allows a great level of abstraction at compile time which is normally possible only by a combination of inheritance and composition. It allows an algorithm to...
In my previous post, I gave the rather simple steps to install MSYS2/Mingw-w64. Now I will tell you how to install a custom library, specifically log4cxx. Before starting, lets acknowledge that there...
Okay… first of all… There are multiple packages and tutorials available to get one or the other working on Windows 10. This tutorial focuses on how to create a comfortable maintainable compiler...