class QPanda::AbstractSearchData

#include <SearchDataType.h>

class AbstractSearchData
{
public:
    // methods

    virtual bool operator < (const AbstractSearchData& other) const = 0;
    virtual bool operator <= (const AbstractSearchData& other) const = 0;
    virtual bool operator > (const AbstractSearchData& other) const = 0;
    virtual bool operator >= (const AbstractSearchData& other) const = 0;
    virtual bool operator == (const AbstractSearchData&& other) const = 0;
    virtual AbstractSearchData& operator - (const AbstractSearchData& other) = 0;

    virtual QCircuit build_to_circuit(
        QVec& used_qubits,
        size_t use_qubit_cnt,
        const AbstractSearchData& mini_data
        ) const = 0;

    virtual QCircuit build_to_condition_circuit(
        QVec& used_qubits,
        QCircuit cir_mark,
        const AbstractSearchData& mini_data
        ) = 0;

    virtual size_t check_max_need_qubits() = 0;
    virtual AbstractSearchData& set_val(const char* p_val) = 0;
};

// direct descendants

class SearchDataByUInt;