Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Почему стандарт имеет номер 1024? Потому, что не верю, что преложенное ниже когда либо появится в C++. Экспромтом. Предлагаю добавить в C++ возможность сохранения мета данных об переменных и объектах. Что бы это дало? Возможность создания обобщенных алгоритмов для run-time работы программы. Как это могло бы выглядеть в коде? void *Object01; Object01 = (int *)malloc( sizeof( INT ) ); Заметим, что компилятор "все знает" об мета данных переменной Object01, а следовательно вполне мог бы каким-то образом сохранить мета данные об Object01. Это позволило бы при run-time работы программы получать мета данные об объектах. Например пишем некую функцию, которая как-то там работает с Object01 void Test( void *Object01 ) Так вот программист при создании кода для функции Test мог бы получить мета данные об переменной Object01 и ... /радоваться/. Синтаксис функций для получения мета данных не привожу /для обсуждения это не существенно/. PS: Повторю ранее высказанное суждение. Появится возможность создания обобщенных алгоритмов для run-time работы программ. Собственно интерпретаторы в какой-то мере так и поступают и предоставляют возможность программисту получить мета данные об объекте. Так вот приведенный выше подход позволит создавать некоторый класс а-ля скриптовых программ. Но в отличии от последних производительность бы run-time кода не уменьшалась в отличии от скриптовых языков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 21:04 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Владимир2012Object01 = (int *)malloc( sizeof( INT ) ); что характерно - от ++ даже запаха нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 21:11 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Дельфийские указатели на методы иногда сильно пригодились бы... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 21:14 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Владимир2012, авторвполне мог бы каким-то образом сохранить мета данные об Object01. таблица метеоданных в довесок к памяти автор производительность бы run-time кода не уменьшалась сомнительно, на примере обращения к таблице витальных функций гы, хотя почему бы нет. + отмена аллокаций на стеке + не обязательное освобождение памяти ( пускай уборщик мусора за нами подтирает) впрочем я где то об этом слышал от А. Хейлсберга ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 21:57 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Владимир2012Предлагаю добавить в C++ возможность сохранения мета данных об переменных и объектах. Это называется Reflection. Владимир2012Потому, что не верю, что преложенное ниже когда либо появится в C++. Уже давно внесено на рассмотрение комитета. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3996.pdf Оно пока не принято, но шансы вполне реальны. Особенно если вы, как страстно желающий эту фичу, сделаете патч к одному из мейнстримных компиляторов, добавляющий такую возможность. Сlang/gcc - опенсорсные, так что флаг в руки, начинайте. Нечего по форумам плакаться )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 22:05 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Собственно компилятору нет ни какой необходимости сохранять мета данные для всех переменных ... Как вариант они нужны для параметром функций имеющих тип void. В .Net Reflection то поддержано. Скорее всего с какими-либо ограничениями этот функционал можно было бы поддержать и для C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 22:13 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСlang/gcc - опенсорсные, так что флаг в руки, начинайте. Нечего по форумам плакаться ))Ну кое что в этом направлению ваяю, но не в виде доработки компилятора /путей к поддержке Reflection много .../ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 22:17 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
фибры, и блоки для них. например std::future<int,thread> - обычный будущий int, который при попытке получения блокирует поток. std::future<int,fiber> - будущий int, который при попытке получения блокирует фибру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2016, 23:59 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Просьба поделиться url C++ библиотек поддерживающих мета данные. В основном меня интересуют библиотеки обеспечивающие работу с мета данными не на этапе компиляции /а-ля boost/, а run-time режима работы программ. PS: Библиотек то для поддержки мета программирования валом. Но какие вам понравились? "По большому счету" нужно смотреть в сторону .Net и скриптовых языков, но вот хотелось бы иметь reflection в С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 10:52 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДельфийские указатели на методы иногда сильно пригодились бы... указатели на методы есть в с++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 12:19 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
MasterZivуказатели на методы есть в с++. Способны они указывать на разные методы разных объектов лишь бы их сигнатура совпадала?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 12:23 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovСпособны они указывать на разные методы разных объектов лишь бы их сигнатура совпадала? Да. Называются std::function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 13:26 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДа. Называются std::function А делать это без уродливых std::placeholders и std::bind?.. В том-то и смысл стандарта языка чтобы ввести в сам язык конструкцию типа Код: sql 1. 2. 3. 4. 5. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 13:53 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА делать это без уродливых std::placeholders и std::bind? Тем кому нужны шашечки - ждут, а тем кому нужно ехать, уже едут )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 14:17 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Ну так этот топик вовсе не для тех, кто уже едет. Они и обычными колбэками перебиваются. И темплейтами для "метеоданных". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 14:21 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAnatoly MoskovskyДа. Называются std::function А делать это без уродливых std::placeholders и std::bind?.. using namespace std::placeholders; имхо языковая конструкция, которая позволяет сделать нечно подобное описанному излишняя. сейчас решения довольно изящные, если правильно приготовить. язык должен быть настолько простым, насколько это возможно, и не проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 20:53 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
alexy_blackсейчас решения довольно изящные, если правильно приготовить. У нас чертовски разные понятия об изящности. Хоть убей, не могу считать изящной такую вот хрень: Код: sql 1. 2. 3. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 21:13 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А так? Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 23:24 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Указатели на функции почему-то обходятся без таких костылей... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2016, 23:48 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, К счастью, эта проблема полностью надуманная )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2016, 00:10 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Владимир2012Предлагаю добавить в C++ возможность сохранения мета данных об переменных и объектах. Что бы это дало? Возможность создания обобщенных алгоритмов для run-time работы программы. 21+Сейчас работаю на фреймворке, в котором такие метаданные можно навешивать даже динамически на объект. Они сериализуются. По сути это шаблоны на классах(для метаданных) пользователя. Возможность создания обобщённых алгоритмов присутствует. Сами объекты пусты, но могут образовывать различные иерархии между собой. Рад как слон. Но в стандарт я бы это добавлять не стал. Зачем? Иногда мне оно не надо, а оно будет сидеть в рантайме или генериться компилятором или ещё как мешаться в исходном/конечном коде. Иной способ этого достичь: интерфейсы. Все объекты наследуешь от интерфейса с методом GetMetaData(), в функции Test зовёшь этот метод. Не надо в стандарт добавлять то, что может быть просто реализовано на этом стандарте. Это избыточность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2016, 07:14 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
CEMbСейчас работаю на фреймворке,Как насчет "воды попить" ...? CEMbИной способ этого достичь: интерфейсы. Все объекты наследуешь от интерфейса с методом GetMetaData(), в функции Test зовёшь этот метод.Как вариант. Но гораздо бы проще было получать метаданные по типу sizeof( ... ) ... ... ... Пофантазируем. Можно было бы в компиляторе придумать директивы принуждающие компилятор создавать мета данные для class, переменных, ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2016, 09:39 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Владимир2012Но гораздо бы проще было получать метаданные по типу sizeof( ... ) typeid?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2016, 12:38 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovypeid?.. Для начала меня бы устроил доступ к данным переданным мне через void указатель просто как Object->Value без указания перед Object типа структуры. Т.е. при позднем связывании мне нужно средство для проверки наличия в Object свойства Value и в случае его наличия доступа к нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2016, 14:25 |
|
||
|
Что хотелось иметь в стандарте C++ 1024
|
|||
|---|---|---|---|
|
#18+
Владимир2012Для начала меня бы устроил доступ к данным переданным мне через void указатель просто как Object->Value без указания перед Object типа структуры. Т.е. при позднем связывании мне нужно средство для проверки наличия в Object свойства Value и в случае его наличия доступа к нему.Выглядит немного абстрактно. А можно попробовать написать какой-нибудь конкретный пример. Идея в целом понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2016, 06:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39246641&tid=2018502]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 457ms |

| 0 / 0 |
