Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Результат работы Код: plaintext 1. Возможно ли создание такого чудного класса на плюсах? Если да, то как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:35 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumix, Код: plaintext 1. имхо, только так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:56 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
egorychLumix, Код: plaintext 1. имхо, только так По-моему вы не поняли задачу. Или я путанно объяснил. Посмотрите ещё раз на результат работы. Может вот так понятнее будет. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 16:38 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixИли я путанно объяснил. Ты вообще ничего не объяснил. Твой пример будет работать после модификации на ровно одно слово: Код: sql 1. 2. 3. 4. Но ты как партизан молчишь почему тебе не хочется так сделать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 16:43 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНо ты как партизан молчишь почему тебе не хочется так сделать. Тут дело не в партизанстве, а это задача такая. Создание объекта, который является глобальным, но ведет себя локально в зависимости от места использования. Крейзи вариант этого задачи я пока не оглашаю, чтобы не нервировать людей, но наверное и так все догадались, что этот чудообъект нужен для рекурсивного алгоритма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 17:18 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixТут дело не в партизанстве, а это задача такая. Создание объекта, который является глобальным, но ведет себя локально в зависимости от места использования. Уволить к чертям того, кто такую задачу поставил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 17:22 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyLumixТут дело не в партизанстве, а это задача такая. Создание объекта, который является глобальным, но ведет себя локально в зависимости от места использования. Уволить к чертям того, кто такую задачу поставил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 17:34 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixВозможно ли создание такого чудного класса на плюсах? Если да, то как?Невозможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 17:46 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixТут дело не в партизанстве, а это задача такая. Создание объекта, который является глобальным, но ведет себя локально в зависимости от места использования. Крейзи вариант этого задачи я пока не оглашаю, чтобы не нервировать людей, но наверное и так все догадались, что этот чудообъект нужен для рекурсивного алгоритма. Оглашай крейзи вариант уже. А то что значит, что "ведёт он себя локально" -- не ясно. Также не забудь написать, что делает великолепная функция 'print'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 18:06 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Переход через границу функции туда и сюда надо как-то отслеживать по-любому. Это возможно, но автоматом это сделать не получится, надо создавать какой-то объект. После этого все остальные части задачи будут уже легкорешаемы. Создание объекта можно будте завуалировать после этого в каких-то макросах. типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. При этом конечно же END_FUNCTION(foo); только для красоты, для функционала нужен только START_FUNCTION. Имя тоже не нужно (оно есть в стандартных и не очень стандартных предопределённых макросах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 18:11 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixМожет вот так понятнее будет.да я понял, чё тут было не понятного. LumixСоздание объекта, который является глобальным, но ведет себя локально в зависимости от места использованиятакая задача не решается. Надо просто поменять её постановку, или описать изначальную задачу. Видимо, она как-то связана с вашими последними топиками в программировании, но сил нет додумывать её самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 18:15 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
MasterZivПереход через границу функции туда и сюда надо как-то отслеживать по-любому. Это возможно, но автоматом это сделать не получится, надо создавать какой-то объект. После этого все остальные части задачи будут уже легкорешаемы. Ручной вариант уже рассматривали Код: plaintext 1. 2. но с локальной переменной получается проще Код: plaintext 1. 2. MasterZivТакже не забудь написать, что делает великолепная функция 'print'. В данном случае это абсолютно неважно, я просто привел её в качестве дампера, чтобы всем было понятно где на каком этапе какой значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 18:21 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
egorychНадо просто поменять её постановку, или описать изначальную задачу. Видимо, она как-то связана с вашими последними топиками в программировании, но сил нет додумывать её самостоятельно. Эта тема никак не связана с другими темами. Она сама по себе. Я в принципе понимаю, ответ на мой вопрос: <b>нет</b>, но задал уж так может есть в плюсах какие-то глубокие фишки для таких случаев, тем более щас появился С++11 и я пока толком не знаю всей его глубины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 18:24 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumix Код: plaintext 1. 2. 3. Результат работы Код: plaintext 1. Возможно ли создание такого чудного класса на плюсах? Если да, то как? гуглить operator=(....); operator int(); Но с принтЭфом и прочими функциями с переменным количестом аргументов без явного приведения к типу ИМХО(вроде не приснилось) работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 19:08 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixЯ в принципе понимаю, ответ на мой вопрос: <b>нет</b>, но задал уж так может есть в плюсах какие-то глубокие фишки для таких случаев, тем более щас появился С++11 и я пока толком не знаю всей его глубины. ответ да , но с определенным количество нетривиальных ограничений . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 19:10 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
ДохтаР, Операторы никакие не помогут, тут надо ловить переход через границу функции, это надо каких-то акторов или CLOS pre- post- методов. В С++ этого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 19:16 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumix, pre/post можно добавить как-нибудь так Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 20:48 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
pre-post, имхо те же яйца только сбоку. Получается, что единственный инструмент "из коробки" для таких случае это только локальная переменная. Видимо для таких целей была придумана шняга под названием аспектно-ориентированное программирование, но что-то она больно мозги в трубочку сворачивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 21:30 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Чего-то я никак не пойму. А зачем это все? Можно более-менее реальный пример когда подобные трюки могут быть полезны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 22:12 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
White OwlЧего-то я никак не пойму. А зачем это все? Можно более-менее реальный пример когда подобные трюки могут быть полезны? На этом форуме очень много реально и нереально крутых спецов. Но к сожалению, есть ещё дохера всяких школотроллей, которые как мошки на болоте облепляют. Поэтому когда у меня возникает желание обратится к крутым спецам по какому-то вопросу, то я стараюсь из всей задачи выделить только самую-самую суть, сформулировать её в виде самой самой маленькой какой только возможно маленькой формы, чтобы у тролломошек просто не хватло бы за что можно уцепиться. Например, по вопросу заданному в этой теме крутые спецы посмотрели и сказали, что автоподкапотных шняг тут замутить не получится. Мне этого вердикта достаточно и я благодарен им за то, что уделили время и свою квалификацию. Теперь я буду знать, что ничего кроме локальной переменной в данном случае не поможет и что локальная переменная это единственный "автоматический" механизм маркирования атомарных подпространств. В реальном проекте принято решение остановиться на вариенте с автоуниками, которые маркируют подпространства, то есть тот пример, где я показал chudo(i) = 1, chudo(i)++, chudo(i).func(), ... Ещё раз спасибо всем, кто отписался в теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 22:21 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
[quo]сформулировать её[/quot] в этом основная проблема на мой взгляд )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 23:07 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixВ реальном проекте такой херью не стадают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 23:09 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixТут дело не в партизанстве, а это задача такая. Создание объекта, который является глобальным, но ведет себя локально в зависимости от места использования.Глобально какой нужен функционал? Получаем доступ ко всем локальным объектам: Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 05:37 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumix, Почему собственно "локальная" подразумевается на уровне функции? В С++ концепция локальности несколько шире. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 09:44 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Малыхин Сергей[quo]сформулировать её в этом основная проблема на мой взгляд ))[/quot] Проблема не в том, чтобы сформулировать задачу, а в том, чтобы сформулировать её troll-safe. Например, даже при формулировании такой малюсенькой задачки, некоторые персонажи подумали, что это задача про перегрузку операторов и стали активно отвлекать внимание именно на этом аспекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 11:06 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 11:13 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
m_SlaГлобально какой нужен функционал? Получаем доступ ко всем локальным объектам: Нет смысла обсуждать что-то глобально, если вы даже не поняли такой малюсенькой задачки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 11:15 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
?Lumix, Почему собственно "локальная" подразумевается на уровне функции? В С++ концепция локальности несколько шире. Это ещё один пример отхода от темы с целью создания объема обсуждений. Да функции в плюсах не исчерпывают понятие локальности, но задача была не об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 11:17 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumix, Не он один нифига не понял, думаю, многим было непонятно. На исходный вопрос ты ответ получил, думаю, теперь можно было бы озвучить исходную сверхзадачу, может в этом разрезе тебе было бы больше помощи. Картинки больше не пости, юмор, мы понимаем, но это не ПТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 12:18 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumix, Глобальные переменные нельзя менять в алгоритмах. Их можно устанавливать только при инициализации/перезагрузке конфига приложения, и они должны действовать на все части приложения без исключения. Если же какому-то алгоритму требуются модификация, то делаете копию глобальной переменной и передаете ее аргументом в алгоритм, как это было показано в первом сообщении от egorych. Все остальное - несопровождаемая ересь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 12:26 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Ну ладно уж.... Куча схем проектирования приложений завязана именно на глобальные переменные и неявный контекст. Начиная с самой прикольный глобальной переменной — стека вызовов функций — , через стандартные потоки ввода-вывода, и кончая просто переменными, которые неудобно передавать в каждую функцию. не всегда все так однозначно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 12:36 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
MasterZivкончая просто переменными, которые неудобно передавать в каждую функцию. Если вам не удобно передавать в функцию аргументы, и вы используете глоальные вместо этого, то вы отказываетесь от многопоточности и рекурсии. Пока вы помните об этом - ок. Но потом вы увольняетесь и новый сотрудник уже не знает об этом. Вот я и говорю: несопровождаемая ересь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 12:51 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixПроблема не в том, чтобы сформулировать задачу, а в том, чтобы сформулировать её troll-safeСпециально сформулировать так, чтобы было ничего непонятно, а потом всем отвечать "нет, вы неправильно поняли" - это ли не троллинг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 13:58 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
возможно доработка глобальной переменной 13206814 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 14:17 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
MasterZivНе он один нифига не понял, думаю, многим было непонятно. Ой, да ладно! Кому надо было все поняли задачу, особенно это вас касается. Вы же сразу поняли, что это задача про маркеры атомарных обработчиков с единым общим репо. Ещё до начала темы я знал, что эта задача имеет решение через локальные переменные, а вопрос этой темы был существуют ли в плюсах автоматические средства для подобных маркеров. Ответ оказался не существует. MasterZivНа исходный вопрос ты ответ получил, думаю, теперь можно было бы озвучить исходную сверхзадачу, может в этом разрезе тебе было бы больше помощи. Мне реально не хочется выкладывать сюда всю задачу, потому что опыт общения на этом форуме и на других айтишных тусовках показывает, что тролли победят, что когда дело доходит до очень оригинальных задач, то у многих включаются слишком большие эмоции и людям становится сложно сосредоточится на главных вещах и отказаться от исследования второстепенных, например, как чуть выше кто-то начал объяснять что локальная область видимости не исчерпывается только функцией. Да, это так, но в контексте поставленной задачи это второстепенный и соответственно неважный аспект (по крайней мере до тех пор, пока он не станет источником для решения основной задачи, а я более чем уверен, что автор того замечания просто хотел побравировать своей квалификацией ничего не предлагая взамен для решения основной задачи). Так вот если даже в такой малюсенькой задачке было столько "отклонений", то если вывалить сюда всю задачу, то это просто начнется срач, который 100% потом передет на личности. Что касается более навороченного варианта этой задачи, то он связан рекурсией. Ведь очевидно, что в данном случае был соблазн решить задачу вот так, хотя это и суперкриво, но зато формально это с использованием "автоматических" средств языка Код: plaintext 1. 2. Ну а к переходу к рекурсии, этот вариант сразу отсосет по полной и задача перестанет решаться. Код: plaintext 1. Но на автоуниках она решается (это опять же очень условный сильно пожатый пример) Код: plaintext 1. Сейчас ещё ведутся исследования по поводу замены рекурсивного алгоритма на циклический алгоритмом, потому что кое-то шептнул, что единственное отличие рекурсии от цикла - это наличие стека, а стек можно всегда замутить самому. В какой-то мере мой вопрос этой темы можно было даже так сформулировать: предоставляют ли плюсы доступ к своему стеку для навешивания на него логики. Вроде как ответ: не предоставляют , а ещё точнее локальные переменные это и есть инструмент который плюсы предоставляют для доступа к стеку на навешивания логики, и при этом, этот инструмент единственный - - - - - - - - - - - - - - - - - - - - - - - - - - - - Если мне задали вопрос: а чего ты хотел в принципе увидеть в случае, если бы на вопрос твоей темы ответ бы да? . То я бы ответил, что ожидал что-то типа Код: 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. MasterZivКартинки больше не пости, юмор, мы понимаем, но это не ПТ. Это не юмор. С моей точки зрения это адекватная реакция на "выподы" некоторых участников в стиле: такой херью не страдают, за такие задачи надо увольнять архитекторов и т.д. Я этими картинками вношу нонсенс в ветку диалога ("выпад") тем самым усиливаю маразм и отбиваю желание продолжать это ответвление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 14:43 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
?LumixПроблема не в том, чтобы сформулировать задачу, а в том, чтобы сформулировать её troll-safeСпециально сформулировать так, чтобы было ничего непонятно, а потом всем отвечать "нет, вы неправильно поняли" - это ли не троллинг? Вот как раз из-за таких Guest'ов я и не хочу выкладывать сюда всю задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 15:00 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЕсли вам не удобно передавать в функцию аргументы, и вы используете глоальные вместо этого, то вы отказываетесь от многопоточности и рекурсии. Да, потеря профита в циклическом алгоритме - это основной минус, почему никто не хочет уходить в цикл и все ищут вариант именно с рекурсией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 15:02 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyLumix, Глобальные переменные нельзя менять в алгоритмах. Их можно устанавливать только при инициализации/перезагрузке конфига приложения, и они должны действовать на все части приложения без исключения. Если же какому-то алгоритму требуются модификация, то делаете копию глобальной переменной и передаете ее аргументом в алгоритм, как это было показано в первом сообщении от egorych. Формально вы правы. Но если посмотреть на ситуацию очень сверху, то речь не про глобальное или локальное, а про методы разграничения пространств. Какие ключевые проблемы бывают при работе параллельных воркеров - это запись в одно и то же место или отставание синхронизации, когда один из воркеров принимает решение на основе информации, которая уже устарела. Эти две задачи легко решаемы, если найти критерий разграничения пространств ответственности между параллельным воркерами и свести точки синхронизации со всего поля в спецпространства (это что-то типа концепции индексов в базах данных, когда для управления чем-то большим используется нечто более маленькое, но сохраняющее уникальные признаки). Приведу пример задачи. Как параллельными воркерами распарсить сериализованную сетку. Это можно сделать за счет разграничения сферы ответственности. А это значит, что решение сводится к нахождению формата (структуры данных) пригодных для параллельного вычисления. Так вот если этот формат уже будет содержать в самом себе разграничение (распараллеливание), тогда и появляется возможность безопасно хранить и параллельно обрабатывать это репо глобально. Под глобально здесь подразумевается, не синтактическая глобальная переменная, а "общая переменная" для некого множества разных функций. При этом множеством разных функций может быть одна единственная функция, но рекурсивная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 15:16 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Lumixэто задача про маркеры атомарных обработчиков с единым общим репоЭкземпляр некоего класса в каждом обработчике, статические мемберы этого класса для общего репо??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 16:37 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixMasterZivНе он один нифига не понял, думаю, многим было непонятно. Ой, да ладно! Кому надо было все поняли задачу, особенно это вас касается. Вы же сразу поняли, что это задача про маркеры атомарных обработчиков с единым общим репо. Он великий телепат. Он понял даже то, чего мой мозг не воспринял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 17:22 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixКому надо было все поняли задачуLumixэто задача про маркеры атомарных обработчиков с единым общим репо. Товарищи, кто понял, объясните, пожалуйста, мне, что такое "маркеры атомарных обработчиков с единым общим репо". Или сбросьте хотя бы ссылку, доходчиво рассказывающую, что это за зверь и зачем он нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 21:11 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Автор утверждает что это защита от троллей. Но мне сильно кажется что он не прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 22:20 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
MozokLumixКому надо было все поняли задачуLumixэто задача про маркеры атомарных обработчиков с единым общим репо. Товарищи, кто понял, объясните, пожалуйста, мне, что такое "маркеры атомарных обработчиков с единым общим репо". Или сбросьте хотя бы ссылку, доходчиво рассказывающую, что это за зверь и зачем он нужен. Если совсем по-тупому объяснять, то представь, что запрещено вообще пользоваться переменными внутри функции. Как тогда работать с данными? Только через общее хранилище. А как определить к какому обработчику относится та или иная запись? С помощью маркеров. Надеюсь теперь понятнее стало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 22:49 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 22:57 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Кстати, разделение Степанова на контейнеры, итераторы и алгоритмы это "песня из этого же альбома". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 22:58 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Есть такие шняги называются чистые фукнции. Это функции без побочных эффектов. Так вот им в противоположность есть тотально нахер грязные функции, которые состоят из одних сплошных побочных эффектов, то есть они получают все сами и отдают все сами минуя официальный вход (аргументы) и официальный выход (возврат значения). На плюсах оказалось, что особенно в случае рекурсий тотально грязная функция невозможна и что как минимум придется использовать хотя бы один локальный маркер. Чтобы сэмулировать рекурсию в цикле, придется самому мутить стек, но тут теряются плюшки с многопоточностью (параллельной обработкой). В общем сложная эта тема и страшно её обсуждать в условиях форумной среды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 23:07 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixЕсли совсем по-тупому объяснять, то представь, что запрещено вообще пользоваться переменными внутри функции. Как тогда работать с данными? Только через общее хранилище. А как определить к какому обработчику относится та или иная запись? С помощью маркеров. Надеюсь теперь понятнее стало. А теперь объясни еще почему (и главное кем!) запрещено пользоваться переменными внутри функции? LumixЕсть такие шняги называются чистые фукнции. Это функции без побочных эффектов.Это тебе, друг мой, надо идти в функциональные языки. Хаскел там или ОКамл какой... Писать используя функциональную парадигму на С++ возможно, хоть и не удобно. Но возможно. Потренируешься в чисто функциональном языке - тогда и поймешь как это сделать в С++. LumixТак вот им в противоположность есть тотально нахер грязные функции, которые состоят из одних сплошных побочных эффектов, то есть они получают все сами и отдают все сами минуя официальный вход (аргументы) и официальный выход (возврат значения).Ну можно и так писать. Очень это не рекомендуется, но возможно. Хотя если использовать этот подход ты быстро обнаружишь что для написания настолько "грязной" функции тебе придется всю программу в нее запихать. Иначе настоящей грязи не получится :) LumixНа плюсах оказалось, что особенно в случае рекурсий тотально грязная функция невозможна и что как минимум придется использовать хотя бы один локальный маркер.Да она ни на каком языке не возможна. Если ты конечно не задался целью написать бессмысленную функцию... А реальные, делающие полезную работу, рекурсивные функции абсолютно грязными быть не могут. LumixЧтобы сэмулировать рекурсию в цикле, придется самому мутить стек, но тут теряются плюшки с многопоточностью (параллельной обработкой).Это почему это вдруг? Если ты даже решил свой стек делать (что, кстати, не обязательно), то что мешает твоим потокам создавать себе собственные стеки? LumixВ общем сложная эта тема и страшно её обсуждать в условиях форумной среды.Ну да, когда тема подается вся такой загадочной и запутанной - ее обсуждать действительно сложно. Зря ты боишься троллей. В этой теме пока что тролль всего один, Lumix'ом представляется. Знаешь такого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 00:30 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixПроблема не в том, чтобы сформулировать задачу, а в том, чтобы сформулировать её troll-safe. Например, даже при формулировании такой малюсенькой задачки, некоторые персонажи подумали, что это задача про перегрузку операторов и стали активно отвлекать внимание именно на этом аспекте. вы на меня намекаете? будьте добры расскажите как компилятор это съест ? Код: plaintext 1. 2. взято отсюда 14611994 А это 14612735 Код: plaintext 1. вобще не С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 01:27 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixЧтобы сэмулировать рекурсию в цикле, придется самому мутить стек, но тут теряются плюшки с многопоточностью (параллельной обработкой). Я не вижу проблем потери плюшек. Вы хотите в рекурсии плодить нити ? Да не вопрос , плодите на здоровье , эти нити будут иметь свои стеки что в цикле , что в рекурсии вы получите количество автоматических стеков равное количеству нитей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 01:40 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
White OwlА теперь объясни еще почему (и главное кем!) запрещено пользоваться переменными внутри функции? Ну вот началось! Это ведь очередная вариация на тему "таких надо увольнять", "такого в реальных проектах не бывает" и т.п. Чё опять какую-нибудь картинку тупую запостить? White OwlLumixЕсть такие шняги называются чистые фукнции. Это функции без побочных эффектов.Это тебе, друг мой, надо идти в функциональные языки. Хаскел там или ОКамл какой... Писать используя функциональную парадигму на С++ возможно, хоть и не удобно. Но возможно. Потренируешься в чисто функциональном языке - тогда и поймешь как это сделать в С++. Именно поэтому я и не хочу открывать всю задачу, что человек подумал, что это задача про чистые функции. То есть многие люди на форуме просто как парсер реагируют на термины не пытаясь сначала осмыслить их в контексте. Ну при чем тут хаскель??? Кто вообще тут собирался использовать функциональную парадигму на с++??? Зачем эти фантазии??? Вот почему я не хочу выкладывать сюда задачу. White OwlНу можно и так писать. Очень это не рекомендуется, но возможно. Хотя если использовать этот подход ты быстро обнаружишь что для написания настолько "грязной" функции тебе придется всю программу в нее запихать. Иначе настоящей грязи не получится :) Это тоже вариация на тему "так не делают", "за это надо увольнять" и т.п. Я не хочу публиковать задачу, чтобы в ответ услышать очередную миллионную вариацию "за это надо увольнять". White OwlДа она ни на каком языке не возможна. Если ты конечно не задался целью написать бессмысленную функцию... А реальные, делающие полезную работу, рекурсивные функции абсолютно грязными быть не могут. Какой смысл публиковать задачу для дискуссии, если человек своими словами повторяет то, что и так в теме уже несколько раз было сформулировано. White OwlЭто почему это вдруг? Если ты даже решил свой стек делать (что, кстати, не обязательно), то что мешает твоим потокам создавать себе собственные стеки? Отсутствие критерия или даже метода попила действующего алгоритма на треды. White OwlНу да, когда тема подается вся такой загадочной и запутанной - ее обсуждать действительно сложно. Зря ты боишься троллей. В этой теме пока что тролль всего один, Lumix'ом представляется. Знаешь такого? Ну вот собственно говоря ещё раз сказал себе спасибо, что не стал публиковать задачу. Вы продемонстрировали типичное "форумное" поведение и отношение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 09:21 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
ДохтаРА это 14612735 Код: plaintext 1. вобще не С++ Фейспалм. ДохтаРВы хотите в рекурсии плодить нити ? Да не вопрос , плодите на здоровье , эти нити будут иметь свои стеки что в цикле , что в рекурсии вы получите количество автоматических стеков равное количеству нитей. Фейспалм. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Короче, ещё раз всем спасибо, кто отписался в теме, я с этой темы сваливаю. То, что я хотел и ради чего я открывал тему я уже получил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 09:26 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixWhite OwlА теперь объясни еще почему (и главное кем!) запрещено пользоваться переменными внутри функции? Ну вот началось! Это ведь очередная вариация на тему "таких надо увольнять", "такого в реальных проектах не бывает" и т.п. Чё опять какую-нибудь картинку тупую запостить? Троллинг детектед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 09:32 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
LumixВот я нарисовал, чтобы понятнее было.Понятней вот от этого? Фейспалм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 09:36 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
будьте добры расскажите как компилятор это съест ? Код: plaintext 1. 2. 3. 4. А это Код: plaintext 1. вобще не С++ функция или функциональный объект возвращает ссылку на что-то , этому чему-то присваивается 1. Вообще, С++ не занимается разборами что там и как, в принципе это допустимая конструкция. chudo(i) = 1 -- выражение, присваивание (1) этому, это -- ( chudo(i) ) . В зависимости от того, что такое chudo(i), это может иметь или не иметь смысл. Но всё вполне валидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:42 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Тему предлагаю прикрыть. Далее идёт неконструктив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:44 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
MasterZivА это Код: plaintext 1. вобще не С++ функция или функциональный объект возвращает ссылку на что-то , этому чему-то присваивается 1. Вообще, С++ не занимается разборами что там и как, в принципе это допустимая конструкция. chudo(i) = 1 -- выражение, присваивание (1) этому, это -- ( chudo(i) ) . В зависимости от того, что такое chudo(i), это может иметь или не иметь смысл. Но всё вполне валидно. Прошу прощения ,у меня остался не высненным следующий вопрос. Судя по сингнатурами chudo(i) есть некий Код: plaintext 1. То есть функция-метод. Я не нашел в стандарте, что функция-метод может быть L-value для данного случая. Давайте расставим точки над Ё для понимания. согласен посыпать голову пеплом, если в стандарте найдется разрешение функции-методу быть L-value при операциях присвоения из константы. А еще лучше, если там будет описан механизм создания всяких автоматических переменных, вызовов конструкторов копирования...... итд тп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2013, 19:29 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
ДохтаРесть некий Код: plaintext 1. То есть функция-метод. Я не нашел в стандарте, что функция-метод может быть L-value для данного случая. Давайте расставим точки над Ё для понимания. ... если в стандарте найдется разрешение функции-методу быть L-value при операциях присвоения из константы. А еще лучше, если там будет описан механизм создания всяких автоматических переменных, вызовов конструкторов копирования...... итд тп Давай пойдём от обратного ... Где в стандарте написано, что это НЕЛЬЗЯ делать? Любая функция (кроме специальных) может возвращать всё, что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 01:11 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
MasterZivДохтаРесть некий Код: plaintext 1. То есть функция-метод. Я не нашел в стандарте, что функция-метод может быть L-value для данного случая. Давайте расставим точки над Ё для понимания. ... если в стандарте найдется разрешение функции-методу быть L-value при операциях присвоения из константы. А еще лучше, если там будет описан механизм создания всяких автоматических переменных, вызовов конструкторов копирования...... итд тп Давай пойдём от обратного ... Где в стандарте написано, что это НЕЛЬЗЯ делать? Любая функция (кроме специальных) может возвращать всё, что угодно. возвращать то может, но Rvalue , а я про Lvalue говорю и спрашиваю , давайте это не путать. Можете в качестве доказательства своей правоты привести компилируемый пример. Class Chudo {} ; chudo; chudo(i) = 1; Что бы компилятор съел такую конструкцию где функция-метод является Lvalue . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 10:14 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
ДохтаР, ну ты даешь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 10:44 |
|
||
|
Автоматическая локальная переменная
|
|||
|---|---|---|---|
|
#18+
Анатолий ШироковДохтаР, ну ты даешь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Согласен , убедили , посыпаю голову пеплом . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2013, 11:30 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2020063]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 279ms |
| total: | 442ms |

| 0 / 0 |
