Egor
То есть pair<const Key, Value>. А ещё лучше — то же самое по константной ссылке.
Egor
Да и захватывать лучше по ссылке.
Egor
Если это большие переменные
Anonymous
понято, спасибо
Anonymous
сейчас попробую
Anonymous
спасибо, заработало
Anonymous
code
🦥Alex Fails
Как вы такую разметку делаете?
я же писал в подсказке
🦥Alex Fails
#onlinecode
🦥Alex Fails
пункт 1
Dmitrii
code
Dmitrii
У меня обычным текстом выводится. Так-то знал про три backtick'а.
Dmitrii
Что-то пошло не так.
🦥Alex Fails
хм, странно
Dmitrii
Раньше вроде работало, но внешний вид был как и у однострочных блоков. А сейчас вижу, что даже фоном выделяется -- подумал, что новая фича какая-то появилась. Ну, да ладно.
Berkus
один backtick для текста в строке, три бэктика для простыни кода
Oleh
Ребята,подскажите пожалуйста каким образом можно передать лямбду в другую функцию
Oleh
а вот и сама функция
Vladislav
а вот и сама функция
а зачем там std::function<T>, а не просто T?
Oleh
компилятор ругается о том, что не нашел подходящую функцию: error: no matching function for call to ‘methodIter(main()::<lambda(int)>&, float, double)’ cout « "x = " « ApproximateCalc::methodIter(fx, 7.f , 0.00001) « endl; ^
Vladislav
Ребята,подскажите пожалуйста каким образом можно передать лямбду в другую функцию
так правильно, правда лямбда у тебя принимает int, а передаешь ты в нее double
Александр
а вот и сама функция
лучше T f(std::function<T(T)>, T x, T eps)
Vladislav
ну и еще T надо явно передать, так как он его заинферрить не может в данном случае
Vladislav
лучше T f(std::function<T(T)>, T x, T eps)
еще лучше template <class T, class F> T methodIter(F fx, T x, T eps)
Александр
еще лучше template <class T, class F> T methodIter(F fx, T x, T eps)
зачем? мой вариант построже будет, а в функции и так всё приводится
Vladislav
зачем? мой вариант построже будет, а в функции и так всё приводится
твой вариант не сможет заинлайнить вызов fx, скорее всего
Vladislav
из-за промежуточного std::function
Vladislav
хотя надо затестить
Александр
твой вариант не сможет заинлайнить вызов fx, скорее всего
ну почему, буквально недавно проверяли - шланг оптимизирует вызов через std::function, а вот gcc - нет
Vladislav
ну вот в gcc будет хуже, значит)
Александр
тогда надо внутри функции расставить static_assert на принимаемый и возвращаемый тип F
Vladislav
а строгость можно придать static_assert'ом, если очень хочется
Vladislav
Это не компилит(
можно код на ideone положить?
Oleh
https://ideone.com/3ixgSW
Alexander "SonnySlave"
https://ideone.com/3ixgSW
https://ideone.com/GCa0Vg
Alexander "SonnySlave"
float != double
Pavel
float != double
Проверь с fastmath
Oleh
Спасибо всем!)
Alexander "SonnySlave"
Проверь с fastmath
как опция компиляции влияет на систему типов языка?
Vladislav
Проверь с fastmath
проверил, все равно не равны https://godbolt.org/g/H423Zh
Max
float != double
вообще лучше сравнивать с погрешностью bool AreSame(double a, double b) { return fabs(a - b) < EPSILON; }
Max
типы? o_O
я сишник ))))
Крылатый
типы? o_O
fuzzy types
Nikita
типы? o_O
float looks like double
Nikita
я сишник ))))
И чему равен (double-float)² в си?
Alexander "SonnySlave"
вообще лучше сравнивать с погрешностью bool AreSame(double a, double b) { return fabs(a - b) < EPSILON; }
Я про систему типов, а не значения переменных этих типов
Александр
И чему равен (double-float)² в си?
double double - float double - double float + float float, очевидно же
Nikita
А float и double точно коммутируют?
Александр
громкое заявление, я бы не стал утверждать
Alexander "SonnySlave"
Вакансии в личку @AlexFails
Anonymous
коллеги, у меня еще один вопрос у меня есть boost::posix_time::ptime и мне надо его округлить до минут. Как это лучше сделать?
Anonymous
нет
Aidar
нет
Легко работать с точками времени и промежутками, но нельзя нормально получить из человекочитаемого вида и перевести в него
Anonymous
http://en.cppreference.com/w/cpp/chrono/time_point/time_point_cast типа этого?
Aidar
http://en.cppreference.com/w/cpp/chrono/time_point/time_point_cast типа этого?
У тебя время относительно или абсолютно?
Anonymous
абсолютное
Aidar
абсолютное
Чему равно оно когда оно 0?
Aidar
Если ты знаешь чему то оно относительно
Anonymous
у меня время отсчитавается от 1970.1.1 поэтому хз чему оно там равно
Aidar
time_point ты не переведёшь в человеческий вид без силибы
Aidar
Только duration
Alexander "SonnySlave"
Aidar
Ждём тот кусок std с с++ аналогом localtime
Anonymous
коллеги, еще вопрос using TransactionPair = std::pair<uint256, XBridgeTransactionDescrPtr>; std::map<uint256, XBridgeTransactionDescrPtr> trList; auto cmp = [timestamp](const TransactionPair &a, const TransactionPair &b) { return timestamp(a.second->created) < timestamp(b.second->created); }; std::sort(trList.begin(), trList.end(), cmp);
Anonymous
/usr/include/c++/6/bits/stl_algo.h:1966: ошибка: no match for ‘operator-’ (operand types are ‘std::_Rb_tree_iterator<std::pair<const uint256, boost::shared_ptr<XBridgeTransactionDescr> > >’ and ‘std::_Rb_tree_iterator<std::pair<const uint256, boost::shared_ptr<XBridgeTransactionDescr> > >’) std::__lg(__last - __first) * 2,
Anonymous
шо опять не так?
Berkus
operator - для итератора не нашелся
Anonymous
это понятно, непонятно что с этим делать
Alexander
map и так упорядоченный контейнер
Anonymous
да
Anonymous
только по ключам