![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
есть интерес, наваять compile-time библиотеку для работы с типами с плавающей точкой. но тут встает проблема невозможности специализации шаблонов значениями типа double.
т.е. такой пример компилиться не будет:
http://liveworkspace.org/code/86e039b8f370...78ff61149dee226 кто-то задумывался над решением подобной задачи? как вариант, вместо double типа создать шаблон complex<int, int> в общем, интересует мнение более знающих в этом вопросе. Добавлено через 8 минут и 18 секунд еще непонятно, каким образом при использовании complex для целых, передать значение 1.0059 Добавлено через 8 минут и 57 секунд либо это должен быть не complex, а шаблон с переменным числом значений типа char |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
вот еще что на хабре нашел: http://habrahabr.ru/blogs/cpp/124963/
вот в виде компилябильного примера: http://liveworkspace.org/code/fcc2d54c4a0a...27bf73de5c42fd5 к примеру, реализацию банального sqrt() ;) |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, хотя да, constexpr в большинстве случаев решает проблему.
|
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
AFAIK оптимизирующий компилятор и без constexpr вычислит практически все, что можно, во время компиляции.
Добавлено через 1 минуту и 15 секунд Не перестаю удивляться бусткодеру, вечно пытающемуся усложнить себе жизнь ) -------------------- You're face to face With man who sold the world |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| newbee |
|
||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Вот как чувствовала, сейчас годость какую-нибудь напишешь ;) фу на тебя) Добавлено через 3 минуты и 24 секунды
-------------------- You're face to face With man who sold the world |
||||
|
|||||
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
возможно, стиль такой..
если шаблон зовется sqrt() и используется он как sqrt(42), то что же тут непонятного? никто же не заставляет зубрить его реализацию. но хорошо что она есть, и если интересно, то есть что зазубрить ;) это только так кажется. но такова суровая реальность. предпочитаю банальные задачи писать на пайтоне. понятней некуда ;) Добавлено @ 22:06 эм.. относительно кого? Добавлено через 8 минут и 18 секунд не-не-не! он того не стОит Это сообщение отредактировал(а) boostcoder - 28.12.2011, 22:07 |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
собственно вот реализация компайл-тайм sqrt() без единого шаблона.
http://liveworkspace.org/code/c12e6d1eb1fb...9639a14662ab727 будут предложения по улучшению? Добавлено через 2 минуты и 13 секунд хм.. не понимаю как в этот код добавить проверку на nan аргумент %) |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, это я опять в дебри какие-то себя затащил
http://liveworkspace.org/code/68e77aa2c260...81d11ac4313f7c4 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |