|
|
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
wstРаз одновременно зашла речь о смерти компилятора и высших порядках, все-таки вынужден запостить. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. В tuple можно передать произвольный кортеж произвольных типов сформированный во время исполнения? Что будет если auto t = tuple(5u, тут объект произвольного класса , 7l, 8.0)(rcat)(tuple(1u, 2, 3l, 4.0)); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 11:16 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВwstРаз одновременно зашла речь о смерти компилятора и высших порядках, все-таки вынужден запостить. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. В tuple можно передать произвольный кортеж произвольных типов сформированный во время исполнения? Что будет если auto t = tuple(5u, тут объект произвольного класса , 7l, 8.0)(rcat)(tuple(1u, 2, 3l, 4.0)); будет копироваться видимо тк Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 11:29 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
drsm будет копироваться видимо тк Код: plaintext 1. Это ответ на первый или на второй вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 11:38 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
В данном случае для "объекта произвольного класса" все упрется в строчку Код: plaintext 1. Собственно компилятор все это хозяйство разворачивает в цепочку вызовов << для cout. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 11:58 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
wst Собственно компилятор все это хозяйство разворачивает в цепочку вызовов << для cout. Соответственно произвольный кортеж в tuple мы не сможем передать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 12:04 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Что такое "произвольный кортеж" и откуда он возьмется? Хотелось бы увидеть пример кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 12:13 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВwstСобственно компилятор все это хозяйство разворачивает в цепочку вызовов << для cout. Соответственно произвольный кортеж в tuple мы не сможем передать? :)напиши для своего пользовательского типа оператор вывода в поток - и передавай :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 12:14 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВdrsmбудет копироваться видимо тк Код: plaintext 1. Это ответ на первый или на второй вопрос? на оба http://ideone.com/F2cHt5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 12:39 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
wstЧто такое "произвольный кортеж" и откуда он возьмется? Хотелось бы увидеть пример кода. кортеж std::tuple. Призвольный я не подсуну, должен явно в коде прописать вызов tuple(....) и компилятор на этапе компиляции должен все это развернуть... drsmЕвгенийВпропущено... Это ответ на первый или на второй вопрос? на оба http://ideone.com/F2cHt5 С оператором вывода в поток понятно. Отсутствие такого вызовет ошибку компиляции? В .NET например все объекты наследуются от одного и у всех есть метод ToString(). В С++ никто не обязывает класс иметь operator const char*(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 13:47 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВВ tuple можно передать произвольный кортеж произвольных типов сформированный во время исполнения? Что будет если auto t = tuple(5u, тут объект произвольного класса , 7l, 8.0)(rcat)(tuple(1u, 2, 3l, 4.0)); ЕвгенийВПризвольный я не подсуну, должен явно в коде прописать вызов tuple(....) и компилятор на этапе компиляции должен все это развернуть... Кто-то явно запутался в показаниях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 14:11 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВС оператором вывода в поток понятно. Отсутствие такого вызовет ошибку компиляции?конечно, в этом и смысл. Зачем пытаться распечатать то, что распечатать нельзя? ЕвгенийВВ С++ никто не обязывает класс иметь operator const char*().более того, рекомендуется его не иметь ))) а иметь оператор << если надо класс выводить в поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 14:52 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
wst Кто-то явно запутался в показаниях. Я отвечаю сам себе. Что бы было можно, язык должен поддерживать Параметрический полиморфизм высших порядков . Его к сожалению нет даже в F#, но к моему удивлению есть в scala. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 15:01 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
drsmЕвгенийВпропущено... В tuple можно передать произвольный кортеж произвольных типов сформированный во время исполнения? Что будет если auto t = tuple(5u, тут объект произвольного класса , 7l, 8.0)(rcat)(tuple(1u, 2, 3l, 4.0)); будет копироваться видимо тк Код: plaintext 1. я намекал на то, что захват аргументов в возвращаемой лямбде происходит по значению [=], те класс уже не произвольный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 15:30 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
drsmя намекал на то, что захват аргументов в возвращаемой лямбде происходит по значению [=], те класс уже не произвольный Да уж плюсы однако, даже замыкания надо описывать))) Бедные разработчики компиляторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 15:57 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВБедные разработчики компиляторов. им то глубоко фиолетово ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 16:16 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Изопропилим то глубоко фиолетово Почему? Ведь много больше работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 16:28 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВИзопропилим то глубоко фиолетово Почему? Ведь много больше работы. это кажется. лямбда в с++ - в значительной степени синтаксический сахар а то что способ захвата (по ссылке или по значению) нужно явно описывать - задачу разработчику компилятора упрощает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 16:50 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Разработчики стандарта с++ снисходят к страданиям разработчиков компиляторов только если те годами отказываются пилить какую-то фичу (export template ftw). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 17:17 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
wstРазработчики стандарта с++ снисходят к страданиям разработчиков компиляторов только если те годами отказываются пилить какую-то фичу (export template ftw). Толи дело Хейсберг! Сам придумал, сам запилил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 18:08 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Изопропиллямбда в с++ - в значительной степени синтаксический сахар а то что способ захвата (по ссылке или по значению) нужно явно описывать - задачу разработчику компилятора упрощает Все языки высокого уровня -- синтаксический сахар. ПИШИТЕ НА АсСЕМБЛЕРАХ ! (но почему-то никто не пишет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 19:06 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Испортят ведь. Расколят сообщество С++ еще на несколько лагерей. Будет консервативное крыло. И приверженцы кортежей и прочих adhoc и параметрических полиморфизмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 19:09 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
maytonИспортят ведь. Расколят сообщество С++ еще на несколько лагерей. Будет консервативное крыло. И приверженцы кортежей и прочих adhoc и параметрических полиморфизмов. Я только не понимаю. Разве вопрос был именно про C++. Я, например, вообще приводил примеры на javascript. Но можно на Scala, Haskell, Ruby, Python, Erlang etc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 19:37 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Извини. Топик живёт своей жизнью. Разумеется мой камент относится исходникам wst. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 19:49 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
MasterZivИзопропиллямбда в с++ - в значительной степени синтаксический сахар а то что способ захвата (по ссылке или по значению) нужно явно описывать - задачу разработчику компилятора упрощает Все языки высокого уровня -- синтаксический сахар. ПИШИТЕ НА АсСЕМБЛЕРАХ ! (но почему-то никто не пишет). я к тому, что реализация лямбд в с++ не требует от создателей компиляторов особых усилий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2015, 21:08 |
|
||
|
делегаты в языках программирования
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, сегодня прочитал, в целом то о чём я и думал. Читаю сейчас ещё одну статью , думаю некоторым будет интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 02:36 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39060476&tid=1340921]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 367ms |

| 0 / 0 |
