rostislav
https://www.youtube.com/watch?v=lO1z-7cuRYI&list=PL_AKIMJc4roXJldxjJGtH8PJb4dY6nN1D&index=1
Alexey
а std не для людей пишется, да? Гибко и всё такое, но как же неудобно
rostislav
о тут даже видно ;)
rostislav
что такое раст
Nikita
что такое раст
Что-то, что пыталось взлететь, но уже мало кому нужно
Nikita
уже?)
да, я люблю колкие подбирать частицы)
Vladislav
да, стд местами очень уж такое
Местами? Оно все такое(
Stanislav
Местами? Оно все такое(
лан, местами оно ниче еще)
Alexey
да, стд местами очень уж такое
Но зачем дальше это развивать? Почему нельзя сделать нормальную сеть?
Alexey
сделай)
Да мне-то и qt хватает, но за std обидно
Alexey
Ты сам предложил посмотреть доклады с конференции)
Dmitry
А если брать указатель на функцию в качестве параметра шаблона, то эта функция всё равно инлайниться не будет?
Dmitry
имеется ввиду функция-член
Dmitry
или проще вопрос :: если брать указатель на функцию и тут же её вызывать по указателю - инлайн спугнётся?
Dmitry
переживаю за инлайны
Andrei
Может запросто, да.
Dmitry
Dmitry
как-то слишком просто в плюсах инлайны и констекспры спугнуть
Roman
Почему?
Dmitry
я хочу жестко задавать, если не может, то пусть не собирает
Evgenii
я хочу жестко задавать, если не может, то пусть не собирает
не хватало чтобы еще из-за инлайнов не собиралось
Evgenii
как будто шаблонов мало
Evgenii
ну есть же атрибут
Evgenii
ну кому известно, а кому и не известно
Evgenii
я об __attribute__((always_inline)) если что
Anatoly
Почему?
inline - это просьба, которую компилятор может оставить без внимания
Evgenii
ну кроме того когда это ломает
Evgenii
типа рекурсий
Evgenii
Generally, functions are not inlined unless optimization is specified. For functions declared inline, this attribute inlines the function independent of any restrictions that otherwise apply to inlining. Failure to inline such a function is diagnosed as an error. Note that if such a function is called indirectly the compiler may or may not inline it depending on optimization level and a failure to inline an indirect call may or may not be diagnosed.
Evgenii
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes
Evgenii
предположу что второе
Dmitry
как его задействовать?)
Dmitry
error: unknown type name 'always_inline'
Alexey
Кланг же вроде тоже поддерживает атрибуты https://clang.llvm.org/docs/AttributeReference.html
Evgenii
Evgenii
error: unknown type name 'always_inline'
https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html#Attribute-Syntax
Dmitry
clang вроде тоже прожевал
Dmitry
с вызовом по указателю не ругнулось
Dmitry
хотя надо ассемблер смотреть
Roman
хотя надо ассемблер смотреть
Посмотришь, расскажи
Vladislav
Anatoly
с вызовом по указателю не ругнулось
неважно inline или не inline, а взятие адреса у inline функции c внешним связыванием гарантирует, что адрес будет одним во всех единицах трансляции (An inline function with external linkage shall have the same address in all translation units)
Dmitry
а нафиг тогда нужен этот ещё один инлайн?
Dmitry
обычный инлайн - это, значит, как мусор компилятору пальцем погрозил, а always_inline как путин
Dmitry
ясно
Anatoly
ну, относись к этому, как к этапам развития системы управления компилятором
Anatoly
если inline ничего не гарантирует, то программистам понадобилось средство стопроцентной встройки, разработчики компиляторов откликнулись forceinline-ом
Anatoly
другие поставщики предоставили атрибуты типа __attribute__((always_inline))
Vladislav
и теперь приходится всякое такое городить
Vladislav
// always inline #ifdef _MSC_VER # define FOLLY_ALWAYS_INLINE __forceinline #elif defined(__clang__) || defined(__GNUC__) # define FOLLY_ALWAYS_INLINE inline __attribute__((__always_inline__)) #else # define FOLLY_ALWAYS_INLINE inline #endif
Vladislav
https://github.com/facebook/folly/blob/master/folly/CPortability.h
Vladislav
а зачем FOLLY_SANITIZE_ADDRESS?
чтобы почекать, включен ли ASAN (и задизейблить его для несовместимого кода, см. FOLLY_DISABLE_ADDRESS_SANITIZER)
Anatoly
https://github.com/facebook/folly/blob/master/folly/CPortability.h
ну, это терпимо, буст не переплюнули
Vladislav
Vladislav
https://github.com/facebook/folly/blob/master/folly/experimental/Bits.h#L70
Evgenii
https://github.com/facebook/folly/blob/master/folly/experimental/Bits.h#L70
👍 понятнее не стало, но спасибо)
Igor
"Разработчиков компилятора настолько задолбали юзеры, сующие везде force_inline, что они сделали анализ его использования в коде и предусмотрели ошибку <программист не уммет пользоваться инлайном>" (С)
Berkus
где там цитата про четыре вида инлайнов в msvc ни один из который не гарантирует инлайна? )
Lisa
Подскажите, пожалуйста, как преобразовать сбалансированное дерево в дерево поиска.
Artem
это вопрос уровня "как преобразовать черный сапог в правый"
Купи
Откройте уже чат для студентов Одни и те же вопросы каждый год
Artem
ну просто если посмотреть на определения сбалансированного дерева и дерева поиска, становится понятно, что если это сбалансированное дерево не построено изначально как дерево поиска (например левый потомок меньше родителя, правый больше), то ответ - "перестроить". А если построено, то ответ "ввести операцию поиска элемента".
Artem
обратный вопрос (как сбалансировать дерево поиска) имеет смысл, там можно всякие повороты придумать
Nikolai
Ребята, чем лог на 6 гигов открыть можно? Какой редактор осилит?
Artem
less