Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Ferrari F1
Форумчанин
459 / 355 / 82
Регистрация: 27.01.2015
Сообщений: 2,134
Записей в блоге: 1
Завершенные тесты: 1
#1

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

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

Разумно ли использовать va args в таких ситуациях?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2015, 19:49     Могут ли теоретически существовать методы с неопределенным числом аргументов?
Посмотрите здесь:

Функции с переменным числом аргументов C++
Шаблоны с переменным числом аргументов C++
C++ Теоретически понимаю, а как записать - непойму
C++ Шаблон с переменным числом аргументов, и возвращаемое значение функции
C++ Инициализация std::tuple переменным числом аргументов
C++ Как изменить значение переменной, переданной в списке с переменным числом аргументов
C++ GCC и функции с переменным числом аргументов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17014 / 5419 / 335
Регистрация: 30.03.2009
Сообщений: 14,666
Записей в блоге: 26
04.08.2015, 17:18     Могут ли теоретически существовать методы с неопределенным числом аргументов? #41
Цитата Сообщение от Voivoid Посмотреть сообщение
В этой теме от тебя был только кусочек кода с примером использования C'шного printf
В этой теме был кусочек кода с функцией условно my_printf, который до появления variadic templates в C++11 на C++ и написать-то нельзя было

Типобезопасность Си++ я никак не отношу к ущербности. Если ты хотя бы читал, что я пишу, то я довольно чётко описал, что типобезопасность Си++ (как следствие программирования через шаблоны) является платой за то, что программист не может сделать так, как ему хочется, а вовсе не самоцелью. Т.е. аналог моей короткой функции, которую можно было бы поместить в *.c (но не в хидер) на Си++ до сих пор написать нельзя. Это и есть ущербность Си++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
04.08.2015, 17:21     Могут ли теоретически существовать методы с неопределенным числом аргументов? #42
Цитата Сообщение от Evg Посмотреть сообщение
который до появления variadic templates в C++11 на C++ и написать-то нельзя было
Ну это не совсем честно и верно. Можно было написать, но с разумным ограничением числа шаблонных параметров (как и делали в бусте до var templates).
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17014 / 5419 / 335
Регистрация: 30.03.2009
Сообщений: 14,666
Записей в блоге: 26
04.08.2015, 17:37     Могут ли теоретически существовать методы с неопределенным числом аргументов? #43
Цитата Сообщение от ForEveR Посмотреть сообщение
Можно было написать, но с разумным ограничением числа шаблонных параметров
Но это ведь и есть ущербность. Т.е. в boost'е люди вместо простого программирования по сути дела занимались извращениями и борьбой с Си++ (т.е. "победа над здравым смыслом", как это было красиво названо в одной из тем).
Voivoid
 Аватар для Voivoid
593 / 269 / 12
Регистрация: 31.03.2013
Сообщений: 1,328
04.08.2015, 17:41     Могут ли теоретически существовать методы с неопределенным числом аргументов? #44
Цитата Сообщение от Evg Посмотреть сообщение
Т.е. аналог моей короткой функции, которую можно было бы поместить в *.c (но не в хидер) на Си++ до сих пор написать нельзя. Это и есть ущербность Си++

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

Не по теме:

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

Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17014 / 5419 / 335
Регистрация: 30.03.2009
Сообщений: 14,666
Записей в блоге: 26
04.08.2015, 18:08     Могут ли теоретически существовать методы с неопределенным числом аргументов? #45
Цитата Сообщение от Voivoid Посмотреть сообщение
И ушли рубить лес топорами…педалить бойлерплейт на сишечке
Какой язык лучше учить?
Хоть это и является приколом, но отчасти хорошо демонстрирует парадокс. Чем быстрее становится железо, тем больше тормозят программы. Часть этих проблем ложится на современные языки программирования высокого уровня (которые развиваются не в вакууме, а с оглядкой на развитие железа), в которых есть неявная идиология в виде того, что программист должен программировать, а не думать, потому что надо всё сделать как можно быстрее, но не качественнее

К слову говоря, precompiled headers как технологическая цепочка в чём-то похожа на кэш процессора. И то, и другое являются ни разу не естественной вещью, которые родились только для того, чтобы заниматься устранением "плохой" работы других компонент (идеология шаблонов си++ и медленно работающая память соответственно)
hoggy
5715 / 2306 / 417
Регистрация: 15.11.2014
Сообщений: 5,149
Завершенные тесты: 1
04.08.2015, 18:20     Могут ли теоретически существовать методы с неопределенным числом аргументов? #46
Цитата Сообщение от Evg Посмотреть сообщение
Но это ведь и есть ущербность. Т.е. в boost'е люди вместо простого программирования по сути дела занимались извращениями и борьбой с Си++ (т.е. "победа над здравым смыслом", как это было красиво названо в одной из тем).
просто из языка вытягивали на пределе его возможностей.
в то время, как комитет прорабатывал идею с вариадик-шаблонами.

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

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


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

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

а пока программист платит свою цену за использование шаблонов.
а комитет платит свою - за возможность создать модули,
и не потерять столь мощную систему метапрограммирования.
Voivoid
 Аватар для Voivoid
593 / 269 / 12
Регистрация: 31.03.2013
Сообщений: 1,328
04.08.2015, 18:28     Могут ли теоретически существовать методы с неопределенным числом аргументов? #47
Цитата Сообщение от Evg Посмотреть сообщение
Чем быстрее становится железо, тем больше тормозят программы
"Влияние количества пиратов на глобальное потепление.jpg"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2015, 20:37     Могут ли теоретически существовать методы с неопределенным числом аргументов?
Еще ссылки по теме:

C++ Чем могут отличаться формальные параметры функции от ее аргументов?
C++ Как теоретически (не программно) посчитать количество сравнений и обменов в пузырьковой сортировке?
C++ Функция с неуказанным числом аргументов
C++ Функция с переменным числом аргументов (через шаблоны)
Шаблонная функция с переменным числом аргументов C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17014 / 5419 / 335
Регистрация: 30.03.2009
Сообщений: 14,666
Записей в блоге: 26
04.08.2015, 20:37     Могут ли теоретически существовать методы с неопределенным числом аргументов? #48
Цитата Сообщение от hoggy Посмотреть сообщение
и можно будет топить шаблоны в с++ так же просто, как и обычные функции
Как-то я даже приблизительно не могу понять, как будет выглядеть монстр, в котором одновременно есть и понятие модули, и понятие шаблона (внутри модуля), но при этом чтобы осталось то, ради чего шаблоны и изобретали (точнее, сделали их такими, какие они сейчас есть) - работа inline. Если изобретут - круто, конечно, но как-то слабо верится
Yandex
Объявления
04.08.2015, 20:37     Могут ли теоретически существовать методы с неопределенным числом аргументов?
Ответ Создать тему
Опции темы

Текущее время: 20:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru