template class QGATE_SPACE::QGateFactory

Quantum Gate Factory.

#include <QuantumGate.h>

template <typename ... Targs>
class QGateFactory
{
public:
    // methods

    bool registClass(
        const std::string& type_name,
        std::function<QuantumGate*(Targs&&... args)> function
        );

    QuantumGate* getGateNode(
        const std::string& type_name,
        Targs&&... args
        );

    static QGateFactory* getInstance();
};