Vsevolod
ok, теперь так: auto bar() { return 42; } auto foo() { return bar; } - тот же вопрос, будет ли тут указатель
Vsevolod
btw, это даже есть в рефренсе: Functions and references to functions are not function object types, but can be used where function object types are expected due to function-to-pointer implicit conversion.
Egor
Functions, references to functions, function object types — это три разные концепции.
Igor
std::transform и std::rotate просто квинтессенция FP, да)
Egor
Functions, references to functions, function object types — это три разные концепции.
И, в общем, все они в каком-то смысле являются функциями. Но вот завести значение можно только последних двух типов.
Igor
там есть зайчатки FP, и их даже много, но всё упирается в монумент под названием "мы не знаем что вам надо возвращать, вот вам итераторы, передавайте нам начало и конец"
Anatoly
тогда на закуску, что же ты понимаешь под "функциональным"
Vadim
Какие два типа полиморфизма существуют? *я о таком не слышал*
Ioann_
Статический(templates...etc) и динамический(virtual)
Anatoly
продолжай, чего ты остановился?
Ioann_
Я думал шаблоны и перегрузки имеют хых, буду иметь ввиду
Anatoly
тогда что ты понимаешь под "статическим" полиморфизком? CRTP, например, паттерн реализующий статический полиморфизм на шаблонах.
Anatoly
Черт, @MasterZiv прекрати отрывочно вести беседу.
Anatoly
это узко, есть специализации шаблонов - это тоже статический полиморфизм
Anatoly
Так что харе троллить
Roman
о_0
Roman
а указатель на функцию - это уже не динамика ?
Anatoly
статический
Anatoly
статический
Anatoly
ну ты сказал, что их больше двух
Anatoly
какой еще?
Roman
а почему нет ? реализация может быть разной)))))
Vsevolod
забавно, кстати: http://coliru.stacked-crooked.com/a/542c75f9ec69baef
Anatoly
насчитал два: динамический и статический
Vsevolod
все-таки is_pointer в первом случае - явно тяжелое наследие plain C
Roman
а почему виртуализация тогда в динамике?)))
Anatoly
Ilia Zviagin, [20.12.17 14:14] [In reply to Ioann V] Шаблоны к статическому полиморфизму отношения не имеют. Ilia Zviagin, [20.12.17 14:14] Ну и в С++ больше полиморфизмов, чем два...
Anatoly
на ответ @Ioann_V о динамическом и статическом полиморфизме ты сказал, что их больше двух
Roman
"Параметрический полиморфизм подразумевает исполнение одного и того же кода для всех допустимых типов аргументов, тогда как ad hoc полиморфизм подразумевает исполнение потенциально разного кода для каждого типа или подтипа аргумента." 1 - не намекает на шаблоны? не?
Roman
а 2й на виртуалку и указатель на функцию ? нет?
Roman
да и виртуалка реализована на указателях на функцию. нет?
Roman
"Параметрический полиморфизм подразумевает исполнение одного и того же кода для всех допустимых типов аргументов" - почему по вашему - шаблоны тут не подходят ?
Anatoly
тогда так и веди беседу
Anatoly
под полиморфизмом я понимаю то-то
Anatoly
а не штрыкай в пику лозунги
Anatoly
а то @Ioann_V - ну тыкнул
Anatoly
А ты в курсе, что в С++ есть полиморфные объекты?
Roman
Но они же могут. Это как в С++ написать код без объектов и говорить что он не ОО.
Roman
грубо говоря
Ivan
Почему такой гррубый?
Anatoly
Зачем? Читай стандарт
Anton
Философскими спорами балуетесь? :)
Max
бл**, я подумал уже что приложение на ведроиде полетело
Berkus
Alexander "SonnySlave"
Berkus, мб бан?
Berkus
я его кикнул и в личку написал поменять ник
Berkus
но он кажется бот - не реагирует )
Nikita
у нас есть чат по mercurial?
Nikita
спасибо, жаль)
Berkus
берите гит, не пожалеете
Nikita
не мой выбор
kitsu
берите свн, пожалеете
Vitaliy
Обменивайтесь файликами в чате, это очень даже секьюрно
Vitaliy
*рил стори*
Berkus
Обменивайтесь файликами в чате, это очень даже секьюрно
отправляйте их факсом - это гораздо более секьюрно
Berkus
каждую букву привязать к голубю и отправить
Berkus
чексумму тоже побуквенно
Berkus
отличная олимпиадная задачка кстати, посчитать вероятность что чексумма сойдется а программа будет все равно неверной
🐙 Antony
Там свеженькие идеи подъехали на https://stdcpp.ru/proposals Всех заинтересованных в C++ прошу откоментировать :)
Vsevolod
allocator traits для std::function
Vsevolod
ну аналог small string optimizations, но для кложур
🐙 Antony
ну аналог small string optimizations, но для кложур
std::function умеет аналог SSO для того, что в него складывают
Vsevolod
ну там всего 8 байт места
Vsevolod
очень редко хватает
Vsevolod
(впрочем, это мелочи, конечно)
🐙 Antony
Готво помочь с proposal, если решитсь написать :)
Vsevolod
с аллокатором для std::function?
🐙 Antony
Аллокатор просто так не получается прикрепить. Можно разве что попытаться регулировать размер внутреннего буфера у std::function
Vsevolod
у нас просто довольно экзотический случай с условным охулиардом лямбд, которые нужно засунуть в static memory layout и в huge pages (чтобы избежать лишнего гемора с thp), чтобы все было continious для прелоада
Vsevolod
конечно, своя реализация std::function работает, но, возможно, аллокатор для std::function - это хорошая идея
Vsevolod
а раз не получается, то и ладно
Nik
Там свеженькие идеи подъехали на https://stdcpp.ru/proposals Всех заинтересованных в C++ прошу откоментировать :)
Читаю пропозалы, и мечтаю, как же было бы круто, если бы это действительно было в языке из коробки
Stanislav
https://blogs.msdn.microsoft.com/vcblog/2017/12/19/c17-progress-in-vs-2017-15-5-and-15-6/
Arseny
Не могу вспомнить где, но видел недавно аналог function, который просто буфер фиксированного (параметр шаблона) размера. И static_assert на то, что присваиваемая лямбла влезает в буффер.
Vsevolod
да это легко делается руками
Vsevolod
можно еще folly::function взять - там все по уму в этом плане сделано