Выполнение скрипта apc.php является ключом к пониманию вашей проблемы, IMO. Это помогло нам правильно настроить кеш и на данный момент, похоже, решило проблему.
Просто укажите первый элемент - это пара. Остальное будет выведено автоматически:
for(auto& pair : {std::pair<int,int>{1,2}, {3,4}})
;
Исчерпанный замкнутый инициализатор выводится как std::initalizer_list
, а первый элемент, называемый парой, потребует всех элементов, которые будут Инитализатор для пары.
Вы отметили C ++ 11, но для полноты он может быть еще короче в C ++ 17:
for(auto& pair : {std::pair{1,2}, {3,4}})
;
Из-за аргумента шаблона шаблона вычет. Если вы этого не сделаете, то std::make_pair
будет делать, если вы хотите сохранить преимущества вывода аргумента шаблона:
for(auto& pair : {std::make_pair(1,2), {3,4}})
;
Хотя якобы это не так полезно для игры в гольф, как Версия C ++ 17.
Хороший псевдоним типа ol:
using pairlist = std::initializer_list<std::pair<int,int>>;
for(auto pair : pairlist{{1,2}, {3,4}})
{
// stuff happens here
}
for(auto pair : {std::make_pair(1,2),{3,4},{5,6}})
– IceFire 18 September 2017 в 14:22make_pair
на C ++ 17. – StoryTeller 18 September 2017 в 14:23make_pair
в ответе? – Yakk - Adam Nevraumont 18 September 2017 в 14:43