class QPanda::Traversal¶
Overview¶
Traversing all the nodes of the linked qprog/qcircuit/control_flow_node. More…
#include <Traversal.h> class Traversal { public: // methods template <typename T, typename... Args> static void traversal( std::shared_ptr<AbstractControlFlowNode> control_flow_node, T& func_class, Args&&... func_args ); template <typename T, typename... Args> static void traversal( std::shared_ptr<AbstractQuantumCircuit> qcircuit_node, bool identify_dagger, T& func_class, Args&&... func_args ); template <typename T, typename... Args> static void traversal( std::shared_ptr<AbstractQuantumProgram> qprog_node, T& func_class, Args&&... func_args ); template <typename T, typename... Args> static void traversalByType( std::shared_ptr<QNode> node, std::shared_ptr<QNode> parent_node, T& func_class, Args&&... func_args ); };
Detailed Documentation¶
Traversing all the nodes of the linked qprog/qcircuit/control_flow_node.
Methods¶
template <typename T, typename... Args> static void traversal( std::shared_ptr<AbstractControlFlowNode> control_flow_node, T& func_class, Args&&... func_args )
Traversing qprog control flow circuit.
Parameters:
AbstractControlFlowNode* |
Control flow nodes that need to be traversed |
TraversalInterface* |
The method object needed for traversal |
Returns:
void
template <typename T, typename... Args> static void traversal( std::shared_ptr<AbstractQuantumCircuit> qcircuit_node, bool identify_dagger, T& func_class, Args&&... func_args )
Traversing qcircuit.
Parameters:
AbstractQuantumCircuit* |
QCircuit nodes that need to be traversed |
TraversalInterface* |
The method object needed for traversal |
bool |
Whether the quantum circuit needs to be transposed |
Returns:
void
template <typename T, typename... Args> static void traversal( std::shared_ptr<AbstractQuantumProgram> qprog_node, T& func_class, Args&&... func_args )
Traversing qprog.
Parameters:
AbstractQuantumProgram* |
QProg nodes that need to be traversed |
TraversalInterface* |
The method object needed for traversal |
Returns:
void
template <typename T, typename... Args> static void traversalByType( std::shared_ptr<QNode> node, std::shared_ptr<QNode> parent_node, T& func_class, Args&&... func_args )
traversalByType
Parameters:
QNode* |
nodes that need to be traversed |
parent_node* |
nodes that need to be traversed |
TraversalInterface* |
The method object needed for traversal |
Returns:
void