Комментарии 10
[del]
0
Это все что у вас есть на Lucene.Net?
+4
Есть ещё пара замечаний. Но на статью найденное не тянет. Зато встретилась эта интересная редкая ошибка и решили про это рассказать.
0
Об остальных предупреждениях, на которые стоит посмотреть, я записал им в баг трекер.
0
А зачем вообще нужен унарный плюс, кроме как для единообразия? Это же бесполезный оператор.
+2
Чтобы в Python, где нет операции инкремента, всё равно можно было писать
В Lua, кстати, унарного плюса нет.
++a
!В Lua, кстати, унарного плюса нет.
0
Зато его можно перегрузить.
На самом деле, унарный плюс втянут в C++ из C (ради совместимости), а уж оттуда и в C#.
Пара важных свойств есть (по-крайней мере для C++, но не знаю, передрали ли эту семантику в C#):
1) он делает из беззнакового целого знаковое, при этом расширяя тип:
например, если у вас "unsigned short i = 5", то "+i" имеет тип "int"
2) выражение "+i" нельзя использовать в качестве lvalue
На самом деле, унарный плюс втянут в C++ из C (ради совместимости), а уж оттуда и в C#.
Пара важных свойств есть (по-крайней мере для C++, но не знаю, передрали ли эту семантику в C#):
1) он делает из беззнакового целого знаковое, при этом расширяя тип:
например, если у вас "unsigned short i = 5", то "+i" имеет тип "int"
2) выражение "+i" нельзя использовать в качестве lvalue
+2
Интересное св-во, не знал, достаточно красиво получается вместо static_cast(), если писать на плюсах.
п.с. парсер съедает кавычки у статик каста(
п.с. парсер съедает кавычки у статик каста(
0
Класс, спасибо за разъяснение! Может спасти от гневных ругательств на компилятор (в редком случае)!
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Об одной интересной ошибке в Lucene.Net