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 ==========