Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
1

Вывод типа для initializer_list

03.09.2015, 15:57. Показов 1145. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Объясните мне почему здесь ошибка компиляции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <set>
#include <initializer_list>
 
template <typename Cont, typename... Args>
void foo(const Cont &c, Args &&... args)
{
   std::initializer_list<typename decltype(c)::key_type> l = {args...}; // Error
}
 
int main()
{
   std::set<int> s{1,2,3,4,5,6,7};
 
   std::initializer_list<decltype(s)::key_type> l{1,5,9,3,-4,9}; // Ok
   foo(s, 1,2,3);
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2015, 15:57
Ответы с готовыми решениями:

Initializer_list constructor
Всем привет! У меня имеется некое упрощенное подобие std::vector: #ifndef VECTOR_H #define...

Итератор (initializer_list)
template &lt;typename T&gt; MyStack&lt;T&gt;::MyStack (initializer_list&lt;T&gt; l) { first=NULL; ...

Программа для начинающих - работа с переменными типа int и вывод строки
Помогите выполнить задание из книжки(не знаю када че использовать и как): Предлжите пользователю...

Std::initializer_list wchar_t
Подскажите, не удаётся сделать функцию добавления в массив wchar_t template&lt;class T0, class T1&gt;...

10
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
03.09.2015, 16:12 2
Лучший ответ Сообщение было отмечено DiffEreD как решение

Решение

C++
1
std::initializer_list<typename std::remove_reference<decltype(c)>::type::key_type> l = { args... };
1
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,507
Записей в блоге: 6
03.09.2015, 16:15 3
Скорее потому, что компилятор не знает кто есть c.
C++
1
std::initializer_list<typename Cont::key_type> l = {args...};
Добавлено через 2 минуты
Croessmah, std::remove_reference<decltype(c)>::type это тип поэтому в него можно "залесть". Для объекта по-видимому это не так.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
03.09.2015, 16:17 4
Цитата Сообщение от Ilot Посмотреть сообщение
std::remove_reference<decltype(c)>::type это тип поэтому в него можно "залесть". Для объекта по-видимому это не так.
не понял мысли
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.09.2015, 16:17 5
Ilot, Че это не знает-то? decltype же.
0
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,507
Записей в блоге: 6
03.09.2015, 16:24 6
Цитата Сообщение от Croessmah Посмотреть сообщение
не понял мысли
Мой косяк...
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
03.09.2015, 16:26 7
Цитата Сообщение от Ilot Посмотреть сообщение
Мой косяк...
наркоман?
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
03.09.2015, 16:40 8
Цитата Сообщение от Croessmah Посмотреть сообщение
Цитата Сообщение от Ilot Посмотреть сообщение
Мой косяк...
наркоман?
Строитель-отделочник? Журавль?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
03.09.2015, 16:41 9
Цитата Сообщение от gru74ik Посмотреть сообщение
Строитель-отделочник? Журавль?
надейся на лучшее, готовься к худшему
0
Ilot
03.09.2015, 16:56
  #10

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
наркоман?
Что я слушаю при кодинге http://zv.fm/song/1614099....

0
Croessmah
03.09.2015, 17:05     Вывод типа для initializer_list
  #11

Не по теме:

Ilot, я сейчас как старая бабка у подъезда, да?
- вот наркоман пошел. И этот наркоман. А эта проститутка :gmad:
:D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2015, 17:05

vector::assign и initializer_list
хочу разобраться как работает vector::assign, на сайте...

Initializer_list: почему не пашет?
почему не пашет? Для этого же и придуман?#include&lt;iostream&gt; #include &lt;initializer_list&gt; #include...

Использование initializer_list<> в своём классе Vector
Привет. При разработке своего класса Vector возникла такая проблема: имеем такое определение...

Бинарный файловый ввод/вывод: реализовать операции для работы с массивом структур типа WORKER
Здравствуйте, видел очень много подобных программ, но у меня особый случай в общем суть программы:...


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

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