Richard
бери студию тогда, ставить gcc/clang на винду начинающему - боль
Почему начинающему ставить GCC в винду боль? Clang да, боль, но GCC нет же :) Качается mingw, распаковывается куда-то в C:\mingw, в системную переменную PATH дописать путь C:\mingw\bin. Все готово :).
P.S. Не берем то, что лучше делать конфигурирование таких дел через специальный батник и прочие дела. Для старта такой метод вполне норм)
Pepe 🐸
Richard
Я о случае, когда Visual Studio не ставится.
Pepe 🐸
Nikolai
Александр
Nikolai
Я уже один раз разбирал такой код, да ну его нафиг. Чувак свалил с работы, а мы потом его код 1,5 года переписывали
Anatoly
сам по себе TCHAR не мешает переходить на другую платформу, основная работа так или иначе в реализации и обрамлении ее в #ifdef/#endif
Крылатый
https://github.com/George3d6/striga
🦥Alex Fails
#repo
Дмитрий
Да простят модераторы и меня, но я бы почитал этот FAQ
🦥Alex Fails
/rules
Alignant
Народ, тут такое дело. В VS два проекта в одном солюшине. Я хочу реализовать в одном одни и те же функции/классы. У меня есть файлы foo.h и foo.cpp
Но если включать foo.h без реализации в другой проект, то оно выбивает ошибку линковки. Работает только если в foo.h ещё и реализацию впилить, но это не то. Как лучше сделать?
Berkus
линковать foo.cpp и там и там
Berkus
ну или вынести его в либу
Constantine
Constantine
Обычно это повод .dll делать
Igor
линковать foo.cpp и там и там
Вроде, еще есть какая-то магия с указанием первого проекта в References другого, и тогда он типа будет и объектники в него перетягивать... но у меня всего однажды сработало
Berkus
ну в студии конечно свои извращения, но стандартный подход делать общую либу для общей функциональности
Alignant
Народ, я слепой? Суть такая. Юзаю гуглтест.
d:\projects\googletest_proj\tests.cpp(83): error: The difference between _array[1] and 6.38619e+302 is 1.2988301524519478e+296, which exceeds error, where
_array[1] evaluates to 6.3861912988301526e+302,
6.38619e+302 evaluates to 6.3861900000000002e+302, and
error evaluates to 0.001.
Как так, разница не должна быть такая большая же?
Berkus
в 302 степени это довольно много ноликов
ep
> Как так, разница не должна быть такая большая же?
Ну, разница никому ничего не должна, она просто есть как есть. Значит что-то считаешь неправильно.
ep
6.3861912988301526e+302 - 6.3861900000000002e+302
Out[155]: 1.2988301524519478e+296
Berkus
сильно больше 1e-3 )
ep
А что ты хотел на таких порядках? Огромные числа же :)
Nikita
Alignant
ep
У тебя разница получилась вот такая (если в длинные инты переводить):
129883015245194775160376122164480457427417866353789924189149283092486783829659571800122976739301806224650928004336422124247307345926274877815197088591974816860196637897311342435537340962203760970615791769565305983726047323378307714008942126408247104795124753916737183397204955337394912198322552832
Alignant
Если вычесть 6.3861912988301526e+302- 6.38619e+302
То да, разница будет большая. Хотя я не понимаю почему. Целая часть-то 6, количество нулей одинаковое. Разница должна быть небольшой вроде. Или я что-то не так посчитал.
Alignant
А, стоп
Alignant
Да
Nikita
Alignant
Разница и должна быть большой
Alignant
Ведь если умножить на мантису, то должно быть много.
ep
> Целая часть-то 6, количество нулей одинаковое.
Целая часть там не 6. Это же экспоненциальная запись.
Nikita
ep
1.545e+3
Out[167]: 1545.0
Berkus
Alignant
А где-то есть double_eps? ну допустим в limits?
ep
Конечно. Там и смотри.
Constantine
ep
std::numeric_limits<double>::epsilon полагаю
Constantine
Просто не очевидно, что автор хочет увидеть
Alignant
Я уже нашел. DBL_EPSILON есть. Погрешность дабла.
Constantine
Просто не существует понятия "погрешность дабла"
Constantine
Constantine
Там есть денормированные случаи
Constantine
melvin
есть pro.asm?
Nikita
melvin
спасибо
melvin
отстраненный вопрос
Для отслеживания точек возврата из подпрограмм используется стек вызовов.
почему именно стек?
Nikita
melvin
деревья,очереди...
melvin
неа
melvin
не очень
melvin
melvin
а для чего существует стек на более низком уровне?
Berkus
именно для этого
Constantine
Berkus
Nikita
ниасилил, но я умею прикидывать 1.1^(10^5)
Оценка в худшем случае. Если каждый раз получаем (1.1+€)x вместо 1.1x, то итоговая относительная погрешность — ((1.1+€)/1.1)^(10^5) -1. Дальше в Тейлора разложил
Constantine
melvin
просто я не понимаю: команды из стека ведь извлекаются в обратном порядке
melvin
верно, но если мы говорим не о функции
melvin
что нибудь в духе
int x = 1;
int y = x*2;
int z = x+y;
Nikita
1.1 x -> 1.1(1+eps)x = (1.1 + 1.1eps)x
€ = 1.1 eps
melvin
ведь после трансляции тоже получим последовательность комманд