niktuba | |
|
(S)-Народ! Есть ли в Visual С++ 6.0 функция типа LineTo, которая позволяла бы рисовать линию только в пределах известного прямоугольника - например заданной области построения линейного графика? Заранее спасибо за любые комментарии. Это сообщение отредактировал niktuba - 07-09-2006 - 15:36 |
|
Follow the CreateRectRgn & SelectClipRgn . Прямых функций нет.
|
tetro | |||||||||
|
Наконец-то, на работе, начали переход на 2005 студию. И тут такой вопрос. Есть функция, скажем:
Передается ей референс на массив (например чтобы можно было его удалить) Есть 2 массива:
Раньше (в 2003) оба варианта
Были законны, а теперь только второй. 2005 требует наличия функции:
Об'ясните, чем это стандарту не нравится? (или это МС глюки?) |
guest_from_the_past | |||||||||||
|
2005 студия абсолютна корректна. Если по-простому: стандарт запрещает сохранять (или передавать в функцию) ссылки на неконстантные временные объекты. Т.е. (простой пример)
2003 студия на этом примере отработает правильно, у нее глюк только со ссылками на указатель, но смысл уловить можно. Откуда берется временный объект? Все просто. Поскольку функция lala у тебя одна, и только для const double*, компилятор перебирая возможные варианты преобразований создает временный объект const double* на основе double* и подставляет его в функцию. Повторю, подставляет _временный_объект_. А дальше облом - ссылку то ты получаешь неконстантную. Добавив const перед ссылкой, можно решить проблему преобразований:
Но боюсь это не то, что тебе надо. Ибо исчезнет возможность изменения значения указателя. Собственно для этого ты его и передавал по ссылке. Воспользуйся введением дополнительной функции:
Либо особенность оптимизации, которая потом выкидывает временный объект, что позволяет поступить так: (не очень хорошо)
const_cast здесь совершенно корректен. PS. я бы порекомендовал избавиться от функций изменяющих указатель, принимаемый в качестве аргумента PPS. на вопросы телезрителей исключительно из уважения к tetro отвечал GregZ, спасибо за внимание Это сообщение отредактировал guest_from_the_past - 12-09-2006 - 01:02 |
tetro | |
|
Отвечу здесь... О существовании там временного объекта я не подумал. А случай (в реальности, не кристалиизированый) - это деаллокаторы (облочки для delete, чтобы корректно удалять 1, 2, 3 и т.д. массивы). Других осмысленных использований этого метода, без организации минного поля в коде я и сам не вижу. |
-=PushPull=- | |
|
GregZ, чего с указателями решили, и почему? аналогичный выбор надо сделать... на счет каста. изврат имхо. я не могу вспомнить ни одного случая, когда мне приходилось бы кастить от родителя к потомку на этапе компиляции. только наоборот. Это сообщение отредактировал -=PushPull=- - 09-12-2006 - 13:56 |
Рекомендуем почитать также топики: Поделюсь хостингом бесплатно! Спутниковый Интернет Помогите подключить мобильник к компу Street Legal Racing: Redline Spell Forсe |