class QPanda::CExpr

Overview

classical expression base class More…

#include <CExprFactory.h>

class CExpr
{
public:
    // methods

    virtual CExpr* getLeftExpr() const = 0;
    virtual CExpr* getRightExpr() const = 0;
    virtual void setLeftExpr(CExpr* left_expr) = 0;
    virtual void setRightExpr(CExpr* right_expr) = 0;
    virtual std::string getName() const = 0;
    virtual CBit* getCBit() const = 0;
    virtual bool checkValidity() const = 0;
    virtual cbit_size_t get_val() const = 0;
    virtual int getContentSpecifier() const = 0;
    virtual CExpr* deepcopy() const = 0;
    virtual void getCBitsName(std::vector<std::string>&) = 0;
};

// direct descendants

class OriginCExpr;

Detailed Documentation

classical expression base class

Methods

virtual CExpr* getLeftExpr() const = 0

Get the Left Expr pointer.

Returns:

CExpr*

virtual CExpr* getRightExpr() const = 0

Get the Right Expr pointer.

Returns:

CExpr*

virtual void setLeftExpr(CExpr* left_expr) = 0

Set the Left Expr pointer.

Parameters:

CExpr*

left expr

virtual void setRightExpr(CExpr* right_expr) = 0

Set the Right Expr pointer.

Parameters:

CExpr*

right expr

virtual std::string getName() const = 0

Get the Name object.

Returns:

std::string

virtual CBit* getCBit() const = 0

get classical bit pointer

Returns:

CBit*

virtual bool checkValidity() const = 0

check validity

Returns:

true check validity ture

false check validity false

virtual cbit_size_t get_val() const = 0

get value

Returns:

cbit_size_t

virtual int getContentSpecifier() const = 0

get specifier of this cexpr

Returns:

int

virtual CExpr* deepcopy() const = 0

deep copy this cexpr

Returns:

CExpr*

virtual void getCBitsName(std::vector<std::string>&) = 0

get all cbits name

Parameters:

std::vector<std::string>

cibts name vector