Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
1

Могут ли теоретически существовать методы с неопределенным числом аргументов?

01.08.2015, 19:49. Показов 2584. Ответов 47
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разумно ли использовать va args в таких ситуациях?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2015, 19:49
Ответы с готовыми решениями:

Функция с неопределенным количеством аргументов
Доброго времени суток! Каким образом можно в Delphi создать функцию с заранее неизвестным...

Как отфильтровать сводную таблицу, если все критерии могут не существовать?
Есть код фильтра: With ActiveSheet.PivotTables("Сводная1").PivotFields("Отклонения")...

Найти все возможные треугольники, которые могут существовать. Результат вывести на экран.
Функция которая по 3 десятичным числам проверяет, могут ли числа быть сторонами треугольника. C...

Структура представления данных, где у родителя могут существовать более двух потомков
Как представить структуру в виде двоичного дерева, где у родителя могут существовать больше двух...

47
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
04.08.2015, 17:18 41
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Voivoid Посмотреть сообщение
В этой теме от тебя был только кусочек кода с примером использования C'шного printf
В этой теме был кусочек кода с функцией условно my_printf, который до появления variadic templates в C++11 на C++ и написать-то нельзя было

Типобезопасность Си++ я никак не отношу к ущербности. Если ты хотя бы читал, что я пишу, то я довольно чётко описал, что типобезопасность Си++ (как следствие программирования через шаблоны) является платой за то, что программист не может сделать так, как ему хочется, а вовсе не самоцелью. Т.е. аналог моей короткой функции, которую можно было бы поместить в *.c (но не в хидер) на Си++ до сих пор написать нельзя. Это и есть ущербность Си++
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.08.2015, 17:21 42
Цитата Сообщение от Evg Посмотреть сообщение
который до появления variadic templates в C++11 на C++ и написать-то нельзя было
Ну это не совсем честно и верно. Можно было написать, но с разумным ограничением числа шаблонных параметров (как и делали в бусте до var templates).
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
04.08.2015, 17:37 43
Цитата Сообщение от ForEveR Посмотреть сообщение
Можно было написать, но с разумным ограничением числа шаблонных параметров
Но это ведь и есть ущербность. Т.е. в boost'е люди вместо простого программирования по сути дела занимались извращениями и борьбой с Си++ (т.е. "победа над здравым смыслом", как это было красиво названо в одной из тем).
0
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
04.08.2015, 17:41 44
Цитата Сообщение от Evg Посмотреть сообщение
Т.е. аналог моей короткой функции, которую можно было бы поместить в *.c (но не в хидер) на Си++ до сих пор написать нельзя. Это и есть ущербность Си++

Как тут не вспомнить анекдот про японскую бензопилу:

Не по теме:

Купили как-то суровым сибирским лесорубам японскую бензопилу.
Собрались в кружок лесорубы, решили ее испытать.
Завели ее, подсунули ей деревце.
«Вжик» — сказала японская пила.
«У, ***...» — сказали лесорубы.
Подсунули ей деревце потолще. «Вж-ж-жик!» — сказала пила.
«Ух, ***!» — сказали лесорубы.
Подсунули ей толстенный кедр. «ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
«Ух ты, ***!!» — сказали лесорубы.
Подсунули ей железный лом. «КРЯК!» — сказала пила.
«Ага, ***!!!» — укоризненно сказали суровые сибирские лесорубы! И ушли рубить лес топорами…педалить бойлерплейт на сишечке

0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
04.08.2015, 18:08 45
Цитата Сообщение от Voivoid Посмотреть сообщение
И ушли рубить лес топорами…педалить бойлерплейт на сишечке
Какой язык лучше учить?
Хоть это и является приколом, но отчасти хорошо демонстрирует парадокс. Чем быстрее становится железо, тем больше тормозят программы. Часть этих проблем ложится на современные языки программирования высокого уровня (которые развиваются не в вакууме, а с оглядкой на развитие железа), в которых есть неявная идиология в виде того, что программист должен программировать, а не думать, потому что надо всё сделать как можно быстрее, но не качественнее

К слову говоря, precompiled headers как технологическая цепочка в чём-то похожа на кэш процессора. И то, и другое являются ни разу не естественной вещью, которые родились только для того, чтобы заниматься устранением "плохой" работы других компонент (идеология шаблонов си++ и медленно работающая память соответственно)
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
04.08.2015, 18:20 46
Цитата Сообщение от Evg Посмотреть сообщение
Но это ведь и есть ущербность. Т.е. в boost'е люди вместо простого программирования по сути дела занимались извращениями и борьбой с Си++ (т.е. "победа над здравым смыслом", как это было красиво названо в одной из тем).
просто из языка вытягивали на пределе его возможностей.
в то время, как комитет прорабатывал идею с вариадик-шаблонами.

Цитата Сообщение от Evg Посмотреть сообщение
является платой за то, что программист не может сделать так, как ему хочется
уже довольно долгое время комитет прорабатывает возможность "экспорта шаблонов".
что бы можно было писать "как программисту хочется".

если не ошибаюсь, технология не прижилась ввиду высокой сложности.
её смогли реализовать только какие то отдельные поставщики компиляторов.
в общем, экспорт шаблонов не был принят в стандарт.


в настоящее время комитет прорабатывает "модули",
"статическую рефлексию",
и ещё там какие то направления,
которые друг с другом связаны,
и потому должны учитывать особенности друг друга.

может быть когда нибудь мы все таки увидим нормальные "модули" на языке с++
и можно будет топить шаблоны в с++ так же просто, как и обычные функции.

а пока программист платит свою цену за использование шаблонов.
а комитет платит свою - за возможность создать модули,
и не потерять столь мощную систему метапрограммирования.
0
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
04.08.2015, 18:28 47
Цитата Сообщение от Evg Посмотреть сообщение
Чем быстрее становится железо, тем больше тормозят программы
"Влияние количества пиратов на глобальное потепление.jpg"
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
04.08.2015, 20:37 48
Цитата Сообщение от hoggy Посмотреть сообщение
и можно будет топить шаблоны в с++ так же просто, как и обычные функции
Как-то я даже приблизительно не могу понять, как будет выглядеть монстр, в котором одновременно есть и понятие модули, и понятие шаблона (внутри модуля), но при этом чтобы осталось то, ради чего шаблоны и изобретали (точнее, сделали их такими, какие они сейчас есть) - работа inline. Если изобретут - круто, конечно, но как-то слабо верится
0
04.08.2015, 20:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2015, 20:37
Помогаю со студенческими работами здесь

Организовать цикл с неопределенным числом итераций
Здравствуйте, есть лист со списком имя(несколько раз подряд) и число в след стобце(неск раз подряд)...

Функции с неопределенным числом фактических параметров
создать и отладить программу, которая осуществляет обработку элементов последовательности, вызывая...

Вычислить функцию с неопределенным числом параметров
Требуется вычислить функцию y = max(a, b, c, ... ) где a, b, c, ... - целые числа а y -...

Вводится строка из нескольких слов и чисел,разделенных неопределенным числом пробелов
На форме 1 кнопка,1 надпись,1 едит и 1 мемо.Вводится строка из нескольких слов и чисел,разделенных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru