Здравствуйте, B0FEE664, Вы писали: BFE>Каким же образом можно протестировать метафунцию один раз, когда не известен тип? Такую функцию придётся тестировать с каждым используемым набором типов.
Наверное также как обычную функцию, для проверки, покрывают разными вариантами данных, эту придётся покрыть ещё и достаточным количеством типов.
Сергей
Re[17]: Что дает template metaprogramming (по сравнению с др
ARK>Э, нет. Это принципиальный момент. На Т4 мы генерим только 4 метода со всеми комбинациями для базовых типов данных, и всё. А все векторы-матрицы пишутся обобщенным способом.
<нахожусь где-то в первом десятке страниц обсуждения, дальше еще не читал>
Человек, который промышленный код генерит по T4, должен пройти обследование у психиатра.
Сам не без греха, на T4 у меня была генерация манифест файлов с датой релиза и прочим,
но что бы классы проекта писать — это надо быть отбитым наглухо. Прости, если задел.
Re[11]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, Pzz, Вы писали:
Pzz>Я полагаю, что на задачах типа "перелопатить 100500 коротких строк" программа на C++, которая для работы со строками честно использует std::string, сольет даже Питону.
Т.е. вы просто не знаете, как на самом деле устоен std::string, скажем, у MS.
И каждый день — без права на ошибку...
Re: Что дает template metaprogramming (по сравнению с другими яз
МР>В C++ имеется механизм template metaprogramming. В C#, Java нет какого механизма (нету ведь?). Вопрос в том какие преимущества по сравнению с C#, Java дает плюсам шаблонное метапрограммирование?
МР>Есть ли какие то конкретные задачи которые невозможно или очень трудно решить на C#, Java но сравнительно легко можно решить на плюсах?
expression templates?
особенно восхищает, как давно они появились
я думал, Тодд станет супрзвездой, а он как-то ничего такого больше не придумал
Re[15]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, Pzz, Вы писали:
Pzz>Но правильно ли иметь в языке огромный кусок, не предназначенный для 90% пользователей этого языка, но, тем не менее, им доступный?
Да, правильно. (Это утверждение верно не только для языка, а для любой сложной проффесиональной системы.) 90% пользователей могут не знать, как устроен shared_ptr, но успешно и результативно им пользоваться.
И каждый день — без права на ошибку...
Re[16]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, B0FEE664, Вы писали:
BFE>Да, правильно. (Это утверждение верно не только для языка, а для любой сложной проффесиональной системы.) 90% пользователей могут не знать, как устроен shared_ptr, но успешно и результативно им пользоваться.
Слова "сложный" и "профессиональный" не являются синонимами. В них даже букв разное количество.
Re[12]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, B0FEE664, Вы писали:
Pzz>>Я полагаю, что на задачах типа "перелопатить 100500 коротких строк" программа на C++, которая для работы со строками честно использует std::string, сольет даже Питону.
BFE>Т.е. вы просто не знаете, как на самом деле устоен std::string, скажем, у MS.
У меня была программа, которую я, правда, компилировал gcc под линухом. Вот она именно это и делала, читала некий входной файл, много думала и выплевывала из себя результаты своих раздумий в виде пары выходных файлов. И в процессе перелопачивала 100500 коротких строк. Так вот, когда я просто тупо перестал их освобождать, время работы программы снизилось с 10 секунд до полсекунды, что весьма чувствительно, надо сказать. Поскольку програграмма была "одноразовая", я так и оставил. Но выводы об эффективности C++'ного аллокатора сделал.
Re[13]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, Pzz, Вы писали:
Pzz>У меня была программа, которую я, правда, компилировал gcc под линухом. Вот она именно это и делала, читала некий входной файл, много думала и выплевывала из себя результаты своих раздумий в виде пары выходных файлов. И в процессе перелопачивала 100500 коротких строк. Так вот, когда я просто тупо перестал их освобождать, время работы программы снизилось с 10 секунд до полсекунды, что весьма чувствительно, надо сказать. Поскольку програграмма была "одноразовая", я так и оставил. Но выводы об эффективности C++'ного аллокатора сделал.
Если мне не изменяет память, то никогда в жизни мне не удавалась написать такой код, который бы не успевал отработать за время ожидания новых данных от файла с диска.
И каждый день — без права на ошибку...
Re[17]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, Pzz, Вы писали:
BFE>>Да, правильно. (Это утверждение верно не только для языка, а для любой сложной проффесиональной системы.) 90% пользователей могут не знать, как устроен shared_ptr, но успешно и результативно им пользоваться.
Pzz>Слова "сложный" и "профессиональный" не являются синонимами. В них даже букв разное количество.
Более того, понятие "сложный" не поддаётся формализации, однако трезво оглядевшись вокруг можно заметить, что всякий профессиональный инструмент сложен в своём устройстве.
И каждый день — без права на ошибку...
Re[4]: Что дает template metaprogramming (по сравнению с другими языками)?
Здравствуйте, rg45, Вы писали:
R>Для этого нужно попытаться решить какую-нибудь практическую задачу. Например, реализацию векторно матричных операций для игровых/графических движков. Например, в C++ достаточно реализовать пару тройку наблонных классов и операций между ними: >[...] R>Получается компактно и максимально эффективно.
я, в общем-то, ничего против шаблонного программирования не имею, но справедливости ради хочу заметить, что пример с игровым движком весьма неудачен.
"в реальной практической задаче" и "максимально эффективно" в случае игрового движка это примерно так:
Здравствуйте, B0FEE664, Вы писали:
Pzz>>Слова "сложный" и "профессиональный" не являются синонимами. В них даже букв разное количество. BFE>Более того, понятие "сложный" не поддаётся формализации, однако трезво оглядевшись вокруг можно заметить, что всякий профессиональный инструмент сложен в своём устройстве.
Универсальный гаечный ключ куда как более сложен в своем устройстве, чем набор качественных ключей из хорошей стали, и куда как менее профессионален.
Re[14]: Что дает template metaprogramming (по сравнению с дру
Здравствуйте, B0FEE664, Вы писали:
BFE>Если мне не изменяет память, то никогда в жизни мне не удавалась написать такой код, который бы не успевал отработать за время ожидания новых данных от файла с диска.
Ну так и запишем, пишет простые программы и поучает тех, кто пишет сложные
Re: Что дает template metaprogramming (по сравнению с другими яз
Здравствуйте, Максим Рогожин, Вы писали:
МР>В C++ имеется механизм template metaprogramming. В C#, Java нет какого механизма (нету ведь?). Вопрос в том какие преимущества по сравнению с C#, Java дает плюсам шаблонное метапрограммирование? МР>Есть ли какие то конкретные задачи которые невозможно или очень трудно решить на C#, Java но сравнительно легко можно решить на плюсах?
Только сейчас увидел интересную старую, но интересную статью на эту тему: поиск по значениям. Там цикл статей, но именно в этой про метапрограммирование.