Здравствуйте, niXman, Вы писали:
X>стОит отметить, что выражение типа: X>
X>int v = 0;
X>((void)v);
X>
X>не означает, что v станет типом void. это просто "посыл" компилятору о том, что если v не используется, чтоб он не сообщал об этом.
Как раз означает. Просто у нас не так много возможностей напрямую пообщаться с этим недотипом, не получив ill-formed программу.
Это return в шаблонах и лямбдах с выводом возвращаемого типа, а ещё старый добрый оператор запятая.
На самом деле, с таким же успехом можно любое выражение, содержащее v, написать. Лишь бы побочных эффектов у него не было.
int v = 0;
v; // так
v*0; // или такsizeof(v); // или так
Но компилятор на это может сказать варнинг: "результат выражения никуда не использован".
Для функций делается попущение
template<class T>
int unused(T const&) { return 0; } // мы-то знаем, что эта функция ничего не делаетvoid f() {
int v = 123;
unused(v); // компилятор не расстраивается, что мы не использовали этот 0
printf(""); // ведь здесь мы не использовали результат вычисления printf, а он там есть...
Здравствуйте, Abyx, Вы писали:
A>и тебя в гугле забанили? попробуй тогда какой-нибудь яндекс или поиск мейл.ру
учись у Кодта объяснять а не гнать людей отсюда
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Кодт, Вы писали:
К>Как разворачиваются: берётся серия аргументов (параметров шаблона, аргументов функции) и подставляется одним махом.
Похоже на обычные кортежи времени компиляции (tuples) в свойственной С++ извращенной манере
И раскрытие этих "пакетов параметров", как я понимаю, только или пакетом (сразу все) или рекурсивно?
К> int xs[] = { f<Args>()... }; // подставили каждый элемент Args в выражение — например, в шаблон функции
тут получается массив из результатов вызовов
Здравствуйте, x-code, Вы писали:
XC>Похоже на обычные кортежи времени компиляции (tuples) в свойственной С++ извращенной манере XC>И раскрытие этих "пакетов параметров", как я понимаю, только или пакетом (сразу все) или рекурсивно?
Вот в этом-то и услада, что сразу всё, а не рекурсивно, как в былые времена.
Плюс, можно делать вещи, которые на рекурсии в принципе невозможны. Массив создать, например. Или функцию с кучей параметров вызвать.
Не, раньше тоже выкручивались, генерировали достаточное количество перегрузок на все разумные случаи арности.
Но это хорошо, когда у тебя есть буст, а у буста есть соответствующие решения.
А тут без буста можно, сразу.
Здравствуйте, Hard_Club, Вы писали:
К>> int xs[] = { f<Args>()... }; // подставили каждый элемент Args в выражение — например, в шаблон функции H_C>тут получается массив из результатов вызовов
H_C>А что значит это: H_C>void f(...)
А это значит, что неплохо бы освежить основы языка Си.
printf видел?
int printf(const char* format, ...);
Функция, которая способна принять произвольное количество аргументов, — единственно, она не знает типы этих аргументов и лишь надеется на то, что вызывающая сторона положила туда нужные данные нужных типов в нужном количестве.
Но для функции-заглушки, которая ничего не делает, на содержимое пофиг.
Здравствуйте, x-code, Вы писали:
К>>Да любым способом утилизировать произвольное количество аргументов.
XC>Что-то эта тема (шаблоны с переменным числом аргументов) как-то вообще мимо меня прошла XC>Вы можете рассказать хоть что-то поподробнее, как оно вообще работает? XC>Как такие шаблоны разворачиваются в компиляторе? XC>Какие есть вообще способы с ними работать?
Здравствуйте, niXman, Вы писали:
X>может быть ты уже хоть раз прочтешь книжку?!
А может ты перестанешь посылать людей читать книжку? Лень отвечать на простой (для тебя) вопрос, пройди мимо. В чем проблема?
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, x-code, Вы писали:
XC>>Что-то эта тема (шаблоны с переменным числом аргументов) как-то вообще мимо меня прошла XC>>Вы можете рассказать хоть что-то поподробнее, как оно вообще работает? XC>>Как такие шаблоны разворачиваются в компиляторе? XC>>Какие есть вообще способы с ними работать?
A>и тебя в гугле забанили? попробуй тогда какой-нибудь яндекс или поиск мейл.ру
А в гугле/яндексе как эта информация появилась? Кто-то спросил, ему ответили. Почему нельзя спрашивать здесь?
Вообще странно, раньше RSDN был более дружественным, счас народ изменился
LD>А в гугле/яндексе как эта информация появилась? Кто-то спросил, ему ответили. Почему нельзя спрашивать здесь?
LD>Вообще странно, раньше RSDN был более дружественным, счас народ изменился :)
Здравствуйте, Lonely Dog, Вы писали:
LD>А в гугле/яндексе как эта информация появилась? Кто-то спросил, ему ответили. Почему нельзя спрашивать здесь?
нет, начала написали пропозалы, потом Струструп написал C++11 FAQ, потом это скопировали в википедию на 100 языках,
а потом набежала толпа ленивых нубов, и они начали задавать вопросы, ответы на которые написаны в википедии/FAQ
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, Lonely Dog, Вы писали:
LD>>А в гугле/яндексе как эта информация появилась? Кто-то спросил, ему ответили. Почему нельзя спрашивать здесь?
A>нет, начала написали пропозалы, потом Струструп написал C++11 FAQ, потом это скопировали в википедию на 100 языках, A>а потом набежала толпа ленивых нубов, и они начали задавать вопросы, ответы на которые написаны в википедии/FAQ
RSDN ценен контентом, а не ответами в стиле "ищи в гугле". Жаль, что ты этого не понимаешь
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Lonely Dog, Вы писали:
LD>>А может ты перестанешь посылать людей читать книжку? X>нэд.
Печалька
Ну да ничего, может пройдет со временем
Здравствуйте, Lonely Dog, Вы писали:
LD>RSDN ценен контентом, а не ответами в стиле "ищи в гугле". Жаль, что ты этого не понимаешь
понимать это должны те, кто с этого что-то получает
мне, и еще многим, на rsdn просто нас****, ибо выбор огромен
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Lonely Dog, Вы писали:
LD>>RSDN ценен контентом, а не ответами в стиле "ищи в гугле". Жаль, что ты этого не понимаешь X>понимать это должны те, кто с этого что-то получает X>мне, и еще многим, на rsdn просто нас****, ибо выбор огромен
Я редко что-то спрашиваю на RSDN, но часто попадаются интересные дискуссии. Даже на тривиальные вопросы . Т.ч. да, я получаю.
Но дело в не том, не понимаю людей, которые не поленились и ответили в стиле "иди, читай книжки"