All pastes #917197 Raw Edit

Miscellany

public text v1 · immutable
#917197 ·published 2008-02-25 04:41 UTC
rendered paste body

class sbDegree {
public:
	sbDegree();
	~sbDegree();
	explicit	sbDegree( const float b );
	explicit	sbDegree( const int b );
	operator const float() const;
	operator const int () const;

	bool		operator>( const float b ) const ;
	bool		operator<( const float b ) const ;

private:
	float		val;
};

sbDegree::~sbDegree() {}
sbDegree::sbDegree() { val=0; }
sbDegree::sbDegree( const float b ) { this->val = b; }
sbDegree::sbDegree( const int b ) { this->val = (float)b; }
sbDegree::operator const int () const { return (float) val; }
sbDegree::operator const float () const { return (float) val; }
bool sbDegree::operator<( const float b) const { if (val < b) return true; return false; }

int main() {
	sbDegree ar(4);

	if (ar < 90) {
		return 0;
	}

	return 0;
}


1>------ Build started: Project: lolass, Configuration: Debug Win32 ------
1>Compiling...
1>lolass.cpp
1>.\lolass.cpp(29) : error C2666: 'sbDegree::operator <' : 3 overloads have similar conversions
1>        .\lolass.cpp(12): could be 'bool sbDegree::operator <(const float) const'
1>        or 'built-in C++ operator<(float, int)'
1>        or 'built-in C++ operator<(int, int)'
1>        while trying to match the argument list '(sbDegree, int)'
1>Build log was saved at "file://d:\lolass\lolass\lolass\Debug\BuildLog.htm"
1>lolass - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========