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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив строк и найти в нем максимальную по длине строку http://www.cyberforum.ru/cpp-beginners/thread1508370.html
Ввести массив строк и найти в нем максимальную по длине строку. Не учитывать случай, когда таких строк несколько.
C++ Работа с pdf файлом Добрый день, подскажите, можно ли стандартными средствами открыт PDF файл, для последующей работы с ним? Или есть свободные библиотеки для этого? http://www.cyberforum.ru/cpp-beginners/thread1508361.html
Заполнение вектора в цикле C++
Попробовал так (для освоения материала) #include <vcl.h> #include <vector> #include <iostream> #include <algorithm> //sort #include <functional> //greater or compare typedef vector<int> Vec; //тип для вектора из int-ов Vec MyVector(1); // один из векторов
Как заставить подфункцию выдать обработанный массив? C++
Имеется программа, суть которой - обработать массив с данными; основной рабочий кусок содержит две вложенных функции - procedure1 и procedure2: void procedure1 (параметры) { ... } void procedure2 (параметры) {
C++ В заданном слове удалить букву http://www.cyberforum.ru/cpp-beginners/thread1508341.html
Дано слово. а) удалить из него третью букву. б) удалить из него 1-ую из букв о, если такая буква есть.
C++ Правильно прочитать данные из базы данных Всем привет. Суть проблемы следующая Использую базу данных SQLLite, на кириллице и английские символы читает нормально, а вот иероглифы(китайские, японские) не читает, выводит одни знаки вопроса. sqlite3 *db; sqlite3_stmt * pStmt; int i, j, coln, rc; int b = 1; //"SELECT build, date FROM version;" подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17408 / 5646 / 354
Регистрация: 30.03.2009
Сообщений: 15,451
Записей в блоге: 26
03.08.2015, 13:10     Могут ли теоретически существовать методы с неопределенным числом аргументов?
Цитата Сообщение от Tulosba Посмотреть сообщение
Например, если поделку стандартизировать, будет ли она считаться технологией по твоему мнению?
Я уже писал выше о том, что этого в принципе сделать невозможно. Потому что форматная строка может быть сгенерирована в runtime. А потому оно так и останется на всегда доброй волей разработчиков компилятора, а никак не стандартом.

Да и работает оно, строго говоря, некорректно. Если подать формат %d, а значение подавать типа unsigned, то с точки зрения стандарта код некорректен, но по факту такая комбинация используется широко и повсеместно, из-за чего gcc'шники в подобных случаях предупреждения не выдают

C
1
2
3
4
5
6
7
#include <stdio.h>
 
void foo (unsigned x)
{
  printf ("%d\n", x);
  printf ("%ld\n", x);
}
Код
$ gcc t.c -c -Wall
t.c: In function 'foo':
t.c:6:3: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'unsigned int' [-Wformat=]
   printf ("%ld\n", x);
т.е. обе строки формально некорректны, но предупреждение выдаётся только на вторую

В технологиях, используемых в Си++ невозможно отвязать значение от типа, а потому подобные моменты там в принципе возникнуть не могут. Поэтому вариант из Си++ уже тянет на то, чтобы назвать его словом "технология"
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru