@ProCxx

Страница 961 из 2477
Alexey
14.06.2017
19:44:46
да, стд местами очень уж такое
Но зачем дальше это развивать? Почему нельзя сделать нормальную сеть?

Alexey
14.06.2017
19:45:28
сделай)
Да мне-то и qt хватает, но за std обидно

Alexander
14.06.2017
19:45:35
снова поднимаете вопросы об убогости СТЛ? ну не провоцируйте, а:)

Google
Alexey
14.06.2017
19:46:01
Ты сам предложил посмотреть доклады с конференции)

reagentoo
14.06.2017
20:37:14
А если брать указатель на функцию в качестве параметра шаблона, то эта функция всё равно инлайниться не будет?

имеется ввиду функция-член

или проще вопрос :: если брать указатель на функцию и тут же её вызывать по указателю - инлайн спугнётся?

переживаю за инлайны

Andrei
14.06.2017
20:42:41
Может запросто, да.

reagentoo
14.06.2017
20:44:47
как-то слишком просто в плюсах инлайны и констекспры спугнуть

Alexander
14.06.2017
20:45:17
инлайны вообще на усмотрение компилятора

Роман
14.06.2017
20:45:35
Почему?

reagentoo
14.06.2017
20:45:56
я хочу жестко задавать, если не может, то пусть не собирает

Evgeniy
14.06.2017
20:46:55
я хочу жестко задавать, если не может, то пусть не собирает
не хватало чтобы еще из-за инлайнов не собиралось

Google
Evgeniy
14.06.2017
20:47:06
как будто шаблонов мало

Anatoly
14.06.2017
20:47:26
Evgeniy
14.06.2017
20:47:30
Alexander
14.06.2017
20:47:41
ну есть же атрибут
его могут отменять

это ж известно

это рекомендация, а не правило

есть ещё force_inline

Evgeniy
14.06.2017
20:48:11
его могут отменять
ну кому известно, а кому и не известно

я об __attribute__((always_inline)) если что

Anatoly
14.06.2017
20:48:59
Почему?
inline - это просьба, которую компилятор может оставить без внимания

Alexander
14.06.2017
20:49:33
я об __attribute__((always_inline)) если что
что-то мне кажется, что он нифига не always

но тут мне читать надо уже, да

Evgeniy
14.06.2017
20:49:46
что-то мне кажется, что он нифига не always
ну кроме того когда это ломает

типа рекурсий

Alexander
14.06.2017
20:50:06
где можно глянуть?

так, это стандартный атрибут?

или просто расширение для гнутого компила?

Evgeniy
14.06.2017
20:50:42
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.

https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes

Alexander
14.06.2017
20:51:00
ааа, про гнутый атрибут знаем

Google
Evgeniy
14.06.2017
20:51:06
так, это стандартный атрибут?
предположу что второе

Alexander
14.06.2017
20:51:15
я думал, такой атрибут в стандарт закинули уже

reagentoo
14.06.2017
20:52:39
как его задействовать?)

Evgeniy
14.06.2017
20:52:52
reagentoo
14.06.2017
20:53:26
error: unknown type name 'always_inline'

Alexander
14.06.2017
20:55:02
error: unknown type name 'always_inline'
1) юзать gcc 2) писать атрибут)

Alexey
14.06.2017
20:56:51
Кланг же вроде тоже поддерживает атрибуты https://clang.llvm.org/docs/AttributeReference.html

Evgeniy
14.06.2017
20:56:58
error: unknown type name 'always_inline'
__attribute__((always_inline))

error: unknown type name 'always_inline'
https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html#Attribute-Syntax

reagentoo
14.06.2017
20:59:41
clang вроде тоже прожевал

с вызовом по указателю не ругнулось

хотя надо ассемблер смотреть

Роман
14.06.2017
21:04:05
хотя надо ассемблер смотреть
Посмотришь, расскажи

Vladislav
14.06.2017
21:08:36
Anatoly
14.06.2017
21:47:05
с вызовом по указателю не ругнулось
неважно inline или не inline, а взятие адреса у inline функции c внешним связыванием гарантирует, что адрес будет одним во всех единицах трансляции (An inline function with external linkage shall have the same address in all translation units)

reagentoo
14.06.2017
21:49:02
а нафиг тогда нужен этот ещё один инлайн?

обычный инлайн - это, значит, как мусор компилятору пальцем погрозил, а always_inline как путин

ясно

Anatoly
14.06.2017
21:52:57
ну, относись к этому, как к этапам развития системы управления компилятором

если inline ничего не гарантирует, то программистам понадобилось средство стопроцентной встройки, разработчики компиляторов откликнулись forceinline-ом

Google
Anatoly
14.06.2017
21:54:56
другие поставщики предоставили атрибуты типа __attribute__((always_inline))

Vladislav
14.06.2017
21:56:21
и теперь приходится всякое такое городить

// 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

Admin
ERROR: S client not available

Evgeniy
14.06.2017
22:03:24
Vladislav
14.06.2017
22:06:23
https://github.com/facebook/folly/blob/master/folly/CPortability.h

Evgeniy
14.06.2017
22:09:21
Vladislav
14.06.2017
22:10:10
а зачем FOLLY_SANITIZE_ADDRESS?
чтобы почекать, включен ли ASAN (и задизейблить его для несовместимого кода, см. FOLLY_DISABLE_ADDRESS_SANITIZER)

Anatoly
14.06.2017
22:11:37
https://github.com/facebook/folly/blob/master/folly/CPortability.h
ну, это терпимо, буст не переплюнули

Vladislav
14.06.2017
22:14:17
ну вопрос был скорее "что за несовместимый код?"
хрен его знает, что-то в недрах hhvm

https://github.com/facebook/folly/blob/master/folly/experimental/Bits.h#L70

Evgeniy
14.06.2017
22:16:22
https://github.com/facebook/folly/blob/master/folly/experimental/Bits.h#L70
? понятнее не стало, но спасибо)

Igor
15.06.2017
05:40:40
есть ещё force_inline
"Разработчиков компилятора настолько задолбали юзеры, сующие везде force_inline, что они сделали анализ его использования в коде и предусмотрели ошибку <программист не уммет пользоваться инлайном>" (С)

Berkus
15.06.2017
06:42:55
это ж из буста либа

что-то мне кажется, что он нифига не always
где там цитата про четыре вида инлайнов в msvc ни один из который не гарантирует инлайна? )

F.L
15.06.2017
10:52:12
#supapro

Group Butler [beta]
15.06.2017
10:52:12
#supapro
Чат supapro.cxx: https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w

Lisa
15.06.2017
10:52:39
Подскажите, пожалуйста, как преобразовать сбалансированное дерево в дерево поиска.

Google
Artem
15.06.2017
10:55:16
это вопрос уровня "как преобразовать черный сапог в правый"

Alexander
15.06.2017
10:55:34
Подскажите, пожалуйста, как преобразовать сбалансированное дерево в дерево поиска.
Организуй какое-нибудь свойство, чтобы по нему искать можно было. Например, в левом сыне все значения меньше того, что в родителе, справа - те, что больше. И будешь искать свои значения простым спуском по дереву

F.L
15.06.2017
10:56:40
Откройте уже чат для студентов Одни и те же вопросы каждый год

Lisa
15.06.2017
10:56:54
Artem
15.06.2017
11:00:42
ну просто если посмотреть на определения сбалансированного дерева и дерева поиска, становится понятно, что если это сбалансированное дерево не построено изначально как дерево поиска (например левый потомок меньше родителя, правый больше), то ответ - "перестроить". А если построено, то ответ "ввести операцию поиска элемента".

обратный вопрос (как сбалансировать дерево поиска) имеет смысл, там можно всякие повороты придумать

F.L
15.06.2017
11:09:45
Чат supapro.cxx: https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w
@showmelifeandworld всё-таки тебе сюда

Evgeniy
15.06.2017
11:15:02
на эти деньги можно весь год жить

с двух сессий

F.L
15.06.2017
11:15:30
Как?

Я б помогал

Страница 961 из 2477