+34
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
class A
{
public:
unsigned int m_value;
inline bool operator != ( const A & value )
{
unsigned int temp;
temp = 0 != ( m_value != value.m_value );
return 0 == temp;
}
inline bool operator == ( const A & value )
{
unsigned int temp;
temp = 0 != ( m_value == value.m_value );
return 0 != temp;
}
};
Фрагмент кода одной коммерческой библиотеки. Имя класса изменено, 100500 прочих методов вырезано, но они похожи на эти.
Я не буду акцентировать внимание на том, что операторы невозможно использовать для константных объектов, даже не буду говорить о странном способе сравнения целых чисел... Но я упомяну о том, что 'operator !=' работает немножко не так, как руссо-индусы ожидали.
Запостил:
Little-Horny,
24 Июня 2013
Совсем немножко ;)
P.S. Автор кода, видимо, пришел с сишки и не знал про бул.
Оно будет медленнее.
http://ru-an.info/news_content.php?id=2159