![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Alek86 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
потребовалось мне написать пару функций со сложной (запутанной) математикой
для того, чтобы компилятор мне высвечивал ошибку, если я в переменную длины случайно запишу значение ширины, решил использовать тайпдефы.
но оказалось, что они такое очень даже позволяют делать пришлось самому извращаться - писать подобный код:
может есть более стандартное (и распространенное) решение проблемы? |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
какая-то надуманная проблема, обычно для этого используют нотацию и прямые руки
твой подход ухудшает ясность и читаемость)) зы короче если по каждой мелочи заморачиваться то на программирование времени не останется, а любую идею можно довести до абсурда |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
как говорится, no comments... |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Вместо изобретения велосипеда лучше сделай нормальную декомпозицию объектов в своем приложении, и твоя математика перестанет быть сложной(запутанной)
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Lazin, спасибо, конечно, за заботу, но вопрос не в том был... как я понял, твой ответ - "нет распространенного решения этой проблемы (так как нет и проблемы)"
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Alek86, ничего не напоминает))
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
вот хош верь, хош не верь, но в бусте первым делом искал... кстати
ошибок не дает :( |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
я сам на этот макрос чисто случайно наткнулся, он нигде в документации не описан
может его не стоит использовать, вдруг в будущих версиях boost его уберут? |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
не стоит, ибо он мне не подходит - он чисто explicit конструктор добавляет и все
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Alek86, "Улучшенным typedef" твою проблему не решить.
Посмотри в качестве примера это: http://www.boost.org/libs/mpl/doc/tutorial...l-analysis.html |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
глубоко не вникал, но похоже как раз то, что надо
самому как-то приходилось городить классы Density, Capacity и Weight с зависимосями... спасибо |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
только как туда вписать Length и Width ты подумал, вот если длину умножить на ширину, это что получится за единица измерения |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
я все еще не разбирался (потребность в этом щас не High Priority) но, думаю, библиотечка должна быть расширяемой
иначе втопку |
|||
|
||||
| Ln78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: 13 Всего: 15 |
Alek86, или ты при изложении проблемы упростил её до неузнаваемости, или я согласен с Lazin, что проблема надумана. Собственно, смысл венгерской нотации как раз избежание подобных операций наиболее простым и понятным путём. Здесь было обсуждение и ссылка на хорошую статью по этому вопросу.
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Ln78, не упростил
именно такой typedef мне и нужен. может, та бустовская библиотека мне поможет, может нет статью читал и согласен на 100% только с примечанием переводчика(программиста). По сути сейчас я спрашиваю о "стандартной" реализации его предложения. А автор, насколько я понял, хочет руками делать то, что можно заставить делать компилятор - это кстати написано в аннотации к библиотеке "Dimensional Analysis" в бусте |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |