![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
Всем привет
сейчас перечитываю книжку Вандервуда по шаблонам с++ и увидел одну непривычную для себя инструкцию http://reslib.com/book/Shabloni_S____Sprav...zrabotchika#132 указатель на неименованное перечисление ColorPtr Вопрос: что можно сделать с переменной такого типа, кроме как присвоить ей значение NULL
Ну и тогда побочный вопрос, уже по книге, с той же страницы куда и ссылка Автор пишет, что нельзя использовать в качестве аргументов шаблона неименованное перечисление, только когда они определены с помощью typedef. В приведенном в книге примере используется typedef, но всё равно автор пишет, что это ошибка... Чему верить? заранее благодарен всем откликнувшимся |
|||
|
||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
выделить под неё память с помощью new, но такииииииим извращенским способом...
http://liveworkspace.org/code/7c03a8e84e25...150ce02c51f0c9c -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
в современном С++ кое-что можно http://liveworkspace.org/code/69321f31f4b2...c0a66426c614108 Добавлено через 14 минут и 26 секунд borisbn, а почему не написать просто
|
||||
|
|||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
честно говоря, что то, что это выглядит паршиво. согласны ? а вот про такую конструкцию
не знал. век живи... как говорится)) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
отличные ответы, спасибо
|
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
кто-нибудь, объясните, как это работает. я представляю то вместо auto тут должен быть decltype():
http://liveworkspace.org/code/9f1050e8f6d4...dc87286e11985cd Это сообщение отредактировал(а) boostcoder - 1.3.2012, 20:22 |
||||
|
|||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Элементарно: тип a_ptr -- ab_ptr_type ab_ptr_type -- указатель на элемент перечисления {a, b} => new auto(a) -- указатель на динамически созданное значение a из того перечисления. Обычный вывод типов, хотя тут выглядит как магия. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
для этого был создан decltype. а auto - тут как-то необычно смотрится.. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
decltype для вывода типов? auto тут вполне логично смотрится. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
а как тогда это работает ?
http://liveworkspace.org/code/f17ca1e0ea03...9b0adeb80c7e800 ну, вообще-то, да. Это сообщение отредактировал(а) borisbn - 2.3.2012, 12:44 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Точно также, только, поскольку тип слева неизвестен, то он выводится из выражения справа, в котором известен тип a - enum{a,b} Добавлено через 5 минут и 41 секунду
Судя по описанию в вике, вообще-то нет. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Почему нет-то ? "Вывод" типа или "запрос" типа - ИМХО разные названия одного и того же. И почему тогда такая конструкция не работает
а такая - работает
нет... что-то в этом new auto не так... -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Потому что "вывод типа" и "запрос типа (у выражения)" -- принципиально разные вещи. Decltype берет тип от выражения, тип которого уже известен (задекларирован). auto же вычисляет тип выражения, тип которого, заранее неизвестен. Добавлено @ 14:55
Почему не работает? Ты же выше приводил код, где работает. Это сообщение отредактировал(а) k0rvin - 4.3.2012, 14:55 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
неправда ![]() |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
истинная правда. Добавлено через 37 секунд Ну разве что точнее "заранее неопределен" -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
постыдились бы. auto, компилятор разворачивает как:
Добавлено через 1 минуту и 12 секунд это возможно только в ран-тайме. а с++ - не динамический язык. |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
"постыдились бы" http://en.wikipedia.org/wiki/Type_inference http://en.wikipedia.org/wiki/C%2B%2B11#Type_inference И никакой динамической типизации. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
так сами и прочтите о чем там пишут. Это сообщение отредактировал(а) boostcoder - 4.3.2012, 17:20 |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Я-то прочел, а ты? Добавлено через 5 минут и 21 секунду Рекомендую для понимания обратить внимание на этот пример:
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
если Вы прочли, то что же Вы этим сказать хотели?:
или Вы просто троллите? |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Я этим задал вопрос (знак вопроса '?' как бы говорит нам об этом). В вопросе содержался намек, что decltype — это не вывод типов, чтобы автор поста про decltype задумался. Это сообщение отредактировал(а) k0rvin - 4.3.2012, 17:43 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
k0rvin, в какой строчке тип заранее не известен? В С/С++ впринципе это невозможно. Просто по определению ![]() С/С++ язык со статической типизацией - и этим все сказано. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
http://stackoverflow.com/questions/6869888...to-and-decltype
или я "таво", или второе... Добавлено через 1 минуту и 38 секунд
я тоже пытался обратить его внимание на это. но после ответа, я уже начал сомневаться в себе ![]() |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Ты ведь не прочитал, что такое "Вывод типов", да? Хаскелл, *ML — тоже языки со статической типизацией. Добавлено через 1 минуту и 46 секунд
И тебе: вывод типов — это техника для статически типизированного языка Добавлено через 2 минуты и 39 секунд
т.е. ты не видишь разницу между decltype и auto? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
k0rvin, просто у auto и decltype разная семантика.
auto чудес не совершает. В любом месте где стоит ауто, компилер точно знает какой именно тип туда нужно поставить. Причем знает это он в момент компиляции. |
|||
|
||||
k0rvin |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Тип переменной a заранее не известен, он вычисляется из определения a = v[0]:
Зато тип b вычисляется из заранее типизированного выражения, decltype без всяких махинаций берет тип выражения v[0] и приписывает его переменной v. Т.е. суть в том, что тип переменной a определяется из выражения справа, а тип переменной b из выражения слева (decltype). Например, если изменить код примерно так:
то a определится как String и вообще строка с определением a будет работать, а стрка с определением b -- нет. Добавлено через 49 секунд
Хвала яйцам, кто-то это понял наконец-то. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||||
|
|||||||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
без decltype не существовало бы auto. auto реализован "поверх" decltype, с немного другой семантикой. но вывод типов - это decltype. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Да, но он вычисляет (выводит) его (тип) из выражения справа например. Это позволяет не менять часть кода, типы которого зависят от других типов и их сложно определить однозначно. + уменьшает количество синтаксического мусора. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
т.е. ты целую страницу разводил демагогию из-за того что auto несколько изменяет семантику decltype, и просто ухмылялся что мы "не разглядели моську"? минусовать тебя за это. Добавлено @ 18:19 и разумеется ты не видел этого: Это сообщение отредактировал(а) boostcoder - 4.3.2012, 18:26 |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
k0rvin, ну так и нужно было говорить именно так, согласитесь что: не совсем то, с чем можно согласиться... ![]() |
||||
|
|||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Это не вывод типов. Decltype требует явного указания выражения, от которого брать тип. Причем тип этого выражения должен быть явно определен. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
повторю в третий раз: |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Мда. Еще недавно ты не понимал как работает код на первой странице... Рекомендую переделать следующий код, чтобы он был без auto, и подумать, что будет с кодом проекта, порядка так 100к строк от подобной переделки.
Добавлено @ 18:49
Это и есть явное указание выражения. Так что ты сказать хотел? Это сообщение отредактировал(а) k0rvin - 4.3.2012, 18:50 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
так вот компилятор делает тоже самое. неявно. я об этом в самом начале написал. специально для тебя объяснил это. чтоб исключить недопонимание. ![]() ты в танке? Это сообщение отредактировал(а) boostcoder - 4.3.2012, 18:59 |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
boostcoder, если быть точным, то не разворачивает.. auto и decltype реализуются дополняя друг друга , а не одно над другим..
Добавлено через 1 минуту и 57 секунд если взять ваш пример то то по сути правильно :
Добавлено через 3 минуты и 52 секунды при том на новом стиле записи функций это явно проступает
Добавлено через 5 минут и 22 секунды т.е. auto и decltype два рычага одного механизма, а не один и тот же рычаг под разным соусом ![]() |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, называйте как угодно.
цель одна? auto выводит тип? Добавлено через 5 минут и 15 секунд нет. auto у нас нет. есть decltype и обертка над ним с несколько иной семантикой, реализующая auto. зы залезу я все же на stackoverflow... |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
нет, она говорит что для этого выражения тип будет определен позже ![]() "позже" это не рантайм )) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ок. тогда, какую же роль выполняет auto в этом примере, и справедлив ли предполагаемый мной разворот auto?: и, что же на самом деле, означает выражение?:
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
разница хороша видна на примере std::vector<auto> = f ();
куда засунуть тут declexpr ? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
не совсем, ибо упускается из виду важный механизм о котором и говорил korvin.. умение определять тип , по выражению , которое определится позже.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
зато с decltype все в порядке: http://liveworkspace.org/code/81fea29a4f58...a1711b4de18e78e
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
должен (естественно f возвращает вектор, но не значение ), но увы не компилится.. будем ждать )) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
оно не позже определяется. это компилятор вместо auto вставляет decltype с несколько иной семантикой, именно для подобных случаев. ИМХО. но я все равно завтра поспрашиваю на stackoverflow. Добавлено @ 21:28 покажите, что конкретно Вы имеете ввиду? Это сообщение отредактировал(а) boostcoder - 4.3.2012, 21:31 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
это совсем другое.. вот тут примените decltype :
Это сообщение отредактировал(а) mes - 4.3.2012, 21:31 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
а этот код точно корректный?
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
еще раз на примере функции : auto // нельзя выведать тип результата операции над аргументами, f (int i, int j) // пока не определены аргументы.. -> decltype ( i+j) // а теперь уже можно.. { } |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
мне кажется, auto в данном случае просто синтаксический сахар. ибо никакой иной роли оно выполнять не может.
по тому, я и говорю, что auto - это decltype с несколько иной семантикой, именно для подобных случаев. зы может я не правильно вопросы задаю... Это сообщение отредактировал(а) boostcoder - 4.3.2012, 21:37 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
http://www.open-std.org/jtc1/sc22/wg21/doc.../2003/n1478.pdf |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
я понимаю о чем там говорится. но я не понимаю почему..
|
|||
|
||||
mes |
|
||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
boostcoder, говорят что вывод типа и запрос типа имеют разное поведение, а не одно наследует другое.. Это сообщение отредактировал(а) mes - 4.3.2012, 21:46 |
||||||
|
|||||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
не? Добавлено через 1 минуту и 6 секунд как по мне, так запрос типа приводит к выводу типа. с несколько иной семантикой. Добавлено через 2 минуты и 1 секунду или?:
|
||||
|
|||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
отдаленно соостветсвует такая запись :
но результат будет разный... плюс наличие value_type может не быть ![]() Добавлено через 3 минуты и 19 секунд покажите теперь для примера упомянутого выше
Это сообщение отредактировал(а) mes - 4.3.2012, 21:51 |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
как его может не быть, если функция возвращает вектор?
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а что если кроме вектора ни к кому нельзя подобно применить авто ? см. пример с A ![]() Добавлено через 1 минуту и 5 секунд в случае с A<..> f () возвращает А<>.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
опять не понял.. я же показал как разрулить его. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
в случае с A<..> f () возвращает А<>..
как минимум, у Вас вместо А<int> будет А<А<int> >... |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Приведи аналог с decl. Я сейчас прочитала топик и совсем потеряла веру в бустика. Скажи, зачем хамить и поясничать перед человеком (корвин), который тебе забесплатно объясняет твою неправоту? И минусить в данном случае нужно совсем не его! -------------------- You're face to face With man who sold the world |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
хе! осталось понять, корректен ли этот код.. ньюбка, возможно ты считаешь свою веру эталоном? чтоб это назвать неправотой, нужно доказать другую правоту. а этого сделано не было. даже mes не смог. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
пример с A запустите )) те механизмы, которые вручную придется добавить по дедукции типа и есть отличие auto от decla ![]() Добавлено через 1 минуту и 1 секунду по сути да ) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
http://liveworkspace.org/code/c800847632af...cc2efeabb2c6519
так а я две страницы что утверждаю?! ![]() Добавлено через 5 минут и 4 секунды сто процентное отличие auto от decltype, проявляется только в примере ньюби. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
хмм.. это вы уже хакнули, упустив функцию... вы запустите с использование decltype (f(5)) ![]() тогда и получите вывод типа.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
я об этом и говорил, говоря что "auto i = expr;" разворачивается в "decltype(expr) i = expr;", и дополнял, "это decltype с немного иной семантикой" испорченный телефон получился. |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Арррррррггггггггххххххххх бустик, ты этот пример видел? Семантика, семантика, семантика, даже в лиспосрачах столько раз бездумно про семантику не тяфкнут.
-------------------- You're face to face With man who sold the world |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
читай выше.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Эй, господа. Вы что напали на человека?
Ну хорошо, согласен, можно придумать какой-то изворот, где синтаксически нельзя вставить decltype, а auto можно. Ну и что? Что это доказывает? Разницы между ними принципиальной нет! Тип должен быть известен и точно определен, на момент компиляции данной единицы трансляции. И никак иначе. |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
даже в таких условиях как широк простор действий ![]() Добавлено через 1 минуту и 3 секунды
дело не в извороте, а в концепции... Добавлено через 4 минуты и 20 секунд auto позволяет межеду выводом типом и запросом такая же разница как между специализацией и перегрузкой )) |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
mes,
Насчет утверждения бусткодера что ауто определяется через деклтайп, ничего говорить не буду. В принципе это внутреняя кухня компилятора, и да, скорей всего это не так, но дело в принципе не в этом. А вот с таким утверждением Согласиться не могу. Это чушь, причем абсолютная и полная. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
с чем не согласны ? что тип в левой части выражения не известен ? если говорят "позже" это не значит что в рантайме.. в режиме компиляции есть тоже позже и раньше... ![]() |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Потому что ты просто не можешь понять, что тебе говорят. Не ты один и не в первый раз. Все зависит от того, что считать под "заранее неизвестная". Если "оставим это до рантайма", как, я думаю, ты это понимаешь, конечно это чушь, маразм и вообще. Но это маразм понимающего, а не объясняющего.
-------------------- You're face to face With man who sold the world |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
volatile,, грубо, означает что тип переменной определяется ниже по тексту ..
![]() |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
щас просмотрел ваши посты, и как назло, нигде не нашел, где именно тип определяется ниже по тексту. возможно конечно что-то пропустил ![]()
Везде тип определен, и определен строго выше. (ну или в той-же самой строчке) |
||||
|
|||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
"Справа" по тексту это тоже "ниже".
-------------------- You're face to face With man who sold the world |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Подведем итоги
Итак, к чему нас привела логическая цепочка:
Замечательно! Стоило ли разводить столько шума? ![]() Добавлено через 1 минуту и 36 секунд Кто бы с этим спорил ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
определены другие типых, а наш либо запрошен до/при определении ( при decltype(expr) val = expr ) либо выведен (auto) после определения... |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Шумел тут только один благородный дон по-моему, а целая бригада врачей пыталась его успокоить.
-------------------- You're face to face With man who sold the world |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну это вопрос к тем, кто сразу шуметь начал, вместо попытки понять сказанное ![]() Добавлено через 1 минуту и 30 секунд эта логическая цепочка было определена еще в самом начале разгорания шума, однако ж от дальнейшего его развития не спасла )) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
раз я задался этим вопросом, очевидно, что я не не знаю на него ответа.
но три страницы примеров и "разговоров" которые никак не отвечают на вопрос, согласитесь, начнут раздражать любого. ибо это смотрится смешно. типа: "я умный. я тебе показываю. а ты дебил, не понимаешь." прошу прощения за грубость. но чем так "объяснять" - лучше молчать. не пришла бы ньюбка, еще бы несколько страниц вы мне "объясняли". спасибо. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
этим поставим точку в примерах с auto в качестве параметра шаблона.
еще "объяснения" будут? Это сообщение отредактировал(а) boostcoder - 5.3.2012, 09:35 |
|||
|
||||
rumit7 |
|
||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.6.2011 Репутация: 6 Всего: 7 |
C++ 2011 (draft n3290), 7.1.6.4 auto specifier:
С "new auto(a)" по стандарту вроде все нормально, а вот на счет следующего кода у меня большие сомнения.
Во всяком случае в стандарте четко указаны случаи, где можно использовать auto. А вот пункт, легализирующий выше приведенный код, я не увидел: C++ 2011 (draft n3290), 7.1.6.4 auto specifier:
|
||||||||||||
|
|||||||||||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
сколько интересного я пропустил...
а уж сколько нового узнал ![]() кстати, насчет семантики. я (простите мою склонность к обобщениям и упрощениям) понимаю decltyte(x) как - "верни(подставь) тип выражения х". тип, естественно, известный (компилятору) в этой точке. a auto x=y - как "определи-ка сам тип выражения х по выражению y", т.е. еще неизвестный компилятору, но который компилятор может вывести. поэтому и конструкция была вида p=auto(x), но не decltype() ну и несколько магический вид, конечно, привлекает еще не пойму чего на k0rvin набросились. вот в случае определения типов при использовании шаблонов говорят о выводе типа (компилятором), однако это никого не смущает, никто не кричит что С++ статически типизирован. все и так ясно. |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
я просто думаю что здесь не совсем уместно слово неизвестный. Оно сбивает с толку. Допускаю что эту терминологию придумали не здесь, а кто-то "свыше спустил", но тем не менее, Если так рассуждать, то
Разве нет? оно находится справа по тексту, значит, согласно принятой ныне терминологии, оно неизвестно. Лучше называть вещи своими именами. вычисляет выражение стоящее справа по тексту - имхо, четко и ясно. |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
rumit7,
в теме уже было написано, на текущий момент auto не предтавляет всех, тех возможностей, возложенных на него.. будем-с ждать ![]() но это не мешает рассуждать и сравнивать... спор по сути был не об auto, а о type querying и type deduction.. с отклонением на понятие "неизвестного на данный момент типа".. Добавлено через 5 минут и 2 секунды
просто когда речь касается "неизвестности типа" рассуждают с точки зрения конечного результата.. Тип же в конце концов становится известным компилятору ?значит известен.. И как аргумент приводят, ведь для вычисления все известно, значит и вычисленное заранее известно.. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
здесь (с) с заранее определенным типом (инт) инициализируется результатом функции, выбранной в результате разрешения перегрузок по двум аргументам.. Это сообщение отредактировал(а) mes - 6.3.2012, 09:44 |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
с этим никто не спорит. есть процесс вывода типа, проводимый компилятором. его может произвести и человек. когда мы пишем auto или вообще не указываем тип (в языках где это допустимо) мы просто ленимся. так же мы ленимся самостоятельно выводить новые факты из существующих фактов и правил, возлагая это на машину вывода (в БЗ, Пролог и пр.), т.е. поручаем машине черновую трудоемкую работу. везде, где отсутствует информация извне, результат заранее определен. только не всегда очевиден ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
тип будет вычислен по выражению стоящему дальше по тексту .. а раз будет, то на момент определения переменной он еще неизвестен, и подставляется чуточку позже, после того, как разберется с правостоящим выражением ![]() Это сообщение отредактировал(а) mes - 6.3.2012, 09:47 |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
mes |
|
||||||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
если рассматривать конечную точку процесса, то да.. а взглянуть на компиляцию, как на процесс то, не важно кем делается вывод, человеком и компиляцией, мы можем сказать известен те ли на определенной момент времни или нет.. при этом проблема неизвестности встречалась в С++ и раньше, задолго до auto.. только почему то та неизвестность, никого не смущала ))
сейчас начнут призывать аргументы, что написанно не на одной строчке.. так и в статически типизированных языках auto тоже может быть написано не на одной..
т.е. объявляться с неизветным типом, и приобретать его в момент определения.. в конце концов тип x будет известен и его в любом случае нельзя менять.. Добавлено @ 10:02 неа.. в данном случае речь не о лени.. мы говорим какие правила использовать.. и вот правила как раз и разные для запроса типа и выведения.. Добавлено @ 10:03 ну или переходить на языки, на которых это уже есть )) Добавлено @ 10:08 вот опять.. в выражении "неизвестный тип" сам программист совсем не при чем.. речь о том кто разбирает код.. и встретив новую переменную и запомня ее, разборщик (будь он человек или машина) не может сразу проассоциировать его с типом, а идет дальше изучать след выражение.. Добавлено @ 10:12
так почему нельзя вывести тип правого выражения ? ![]() Это сообщение отредактировал(а) mes - 6.3.2012, 14:31 |
||||||||
|
|||||||||
baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
точнее, мы знаем правила и учитываем их. правила есть и они не меняются. а про различие запроса типа и выведения не оспаривается
два ответа. 1. потому что неограниченная рекурсия 2. можно, если использовать правило приведения типов в выражении + правило приведения неизвестного типа к известному
|
||||||
|
|||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
так все таки неизвестного ? ![]() Это сообщение отредактировал(а) mes - 6.3.2012, 11:15 |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
![]()
а если взглянуть на слово "правило" шире ? ![]() Это сообщение отредактировал(а) mes - 6.3.2012, 14:50 |
||||
|
|||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
угу, а неограчиность рекурсиии твердит нам об известности типа ![]() |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Шум был не из-за этого, а из-за того, что некоторые утверждали, что "auto x = <expr>" можно однозначно заменить на "decltype(<expr>) x = <expr>". Однако нет.Пардон, пример уже приводили. Это сообщение отредактировал(а) k0rvin - 7.3.2012, 08:45 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
просто я не мог поверить, что ты таки мог придраться к этому. ибо да, auto реализован поверх decltype но с иной семантикой. http://liveworkspace.org/code/092676eb3995...319ba83e7b42001 но обратное невозможно. Это сообщение отредактировал(а) boostcoder - 7.3.2012, 09:04 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
я не фантазер и не ясновидец. то, что Вы мне приводили в пример - в с++ невозможно в рамках текущего стандарта. и не известно, изменится ли оно когда-либо. а так да, за примеры спасибо. они мне очень помогли, и главное - сэкономили мое время потраченное на объяснения невозможного ![]() Это сообщение отредактировал(а) boostcoder - 7.3.2012, 09:40 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
да фантазия тут не причем, есть два подхода для определения типа : auto i = 5 -> decltype (5); auto i = 5 -> deduct(5); и хотя они для простых случаех дают схожий результат, по сути они отличаются сильно.. и remove_ref не является сглаживателем различий.. подверждение этого явно отражено в стандарте.. Добавлено @ 10:20 а сходство между этими технологиями в следствии не развитости и ограниченности исполнения технологии.. Это сообщение отредактировал(а) mes - 7.3.2012, 10:21 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
typeid тебе тут не поможет: http://liveworkspace.org/code/ce69e09d185b...7ecd01e399e6f18 Добавлено через 14 минут и 47 секунд А еще я могу просто взять и сделать бяку (кстати, при использовании в шаблоне компилятор требовал наличие typename перед remove_ref) и изменить смысл remove_ref: http://liveworkspace.org/code/39940580c716...47cc35858fcd8ee Хотя, помнится в С++ как-то можно было запретить дописывать специализации шаблона в других единицах трансляции, пофиксишь свой код? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
разве? и тут?:
Добавлено через 6 минут и 41 секунду
да, ступил. Добавлено через 8 минут и 13 секунд а я две. разговор-то не об этом. я не знаю как... |
||||
|
|||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
[offtop]У меня одного такая фигня:
![]() ? Это при размере шрифта, отличном от 10pt. Firefox 8.0.1, WinXP SP3. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
в Опере практически вообще не работает, а в хроме - при размере 11 и 12 - такая же фигня. при остальных размерах (9,10,14) - всё норм. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
когда-то был такой баг. но на опере... шрифт моноширный - на самом деле моноширный? или какой-то другой? Добавлено через 1 минуту и 16 секунд borisbn, там используется editarea. я пытался разобраться. но увы... если кто может помочь - договоримся. Добавлено через 3 минуты и 48 секунд кстати. проверьте на тесте от "производителя": http://www.cdolivet.com/editarea/editarea/...emple_full.html на каких браузерах/ОСях бажит? |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Courier New, куда уж моноширинней, по скриншоту видно.
А тут у меня нормально отображает при любых размерах шрифта. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
хм... кажется я понял в чем дело) минут через 20ть исправлю. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
в опере - с любым размером шрифта все ок.
в firefox`е - да. подтверждаю. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Опера: ![]() Хром - всё норм. http://liveworkspace.org/code/ce69e09d185b...7ecd01e399e6f18 в Опере всё норм. В хроме ![]() у меня Windows 7 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
чудеса какие-то
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |