У меня запускается код с компилятором gnu++1y, но при использовании gnu c++ 11 4.9 выдает ошибку
warning: use of ‘auto’ in lambda parameter declaration only available with -std=c++1y or -std=gnu++1y
int unique = std::count_if(Mass.cbegin(), Mass.cend(), [](auto pair) { return pair.second == 1; });
Как ее исправить? Код:
#include <bits/stdc++.h>
int main()
{
std::map<std::size_t, uint> Mass;
std::string slovo;
std::hash<std::string> hash_fn;
int n;
std::cin >> n;
for (int i = 0; i < n; i++)
{
std::cin >> slovo;
Mass[hash_fn(slovo)] += 1;
}
int unique = std::count_if(Mass.cbegin(), Mass.cend(), [](auto pair) { return pair.second == 1; });
std::cout << unique << std::endl;
}
gnu++1y
и gnu c++ 11 4.9
- не компиляторы. Это режимы компиляции.
gnu c++ 11 4.9
- стандарт C++11, с расширениями GNU, на компиляторе GCC 4.9.
gnu++1y
- стандарт C++1y (недоделанный C++14), с расширениями GNU, скорее всего тоже на GCC.
use of ‘auto’ in lambda parameter declaration only available with -std=c++1y or -std=gnu++1y
Написано, что писать auto
в параметрах лямбд можно только начиная с C++1y/C++14. Нужно заменить его на обычный тип.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хочу организовать проверку форматирования кода на стороне ci с помощью clang-format и опции -output-replacements-xmlЗадумка была такая: если файл не отформатирован,...
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»
Хочу расширить свои навыки как программиста в направлении кроссплатформенностиХочу изучить создание приложений на линуксе, использование...
Может быть кто то из вас пользовался unigine для разработкиИнтересует следующий простой вопрос необходимо найти где происходит пересечение...