#pragma once
#include <string>

class Impl
{
public:
	Impl(BM Num, bool Indep=false, BM P=0);

	Impl* tryGlue(Impl &a);

	bool getVal(BM Num) const;
	void ClrFlg( void );
	~Impl(void);

	bool Pw,    // Была склейка
		 Indep; // Набор не значителен
	BM  Ind,    // Вес набора
	    Num;    // Номер набора

friend bool compIndex(const Impl *a, const Impl *b);
friend bool ImplEqual(const Impl *a, const Impl *b);
	bool operator==(const Impl &a) const;
	std::string toString( int Nv ) const;
private:
	BM	P;        // Маска склейки
};

bool compIndex(const Impl *a, const Impl *b);
bool ImplEqual(const Impl *a, const Impl *b);
