Написал функцию для вывода произвольного количества аргументов. Как передать в неё разделитель (пробел, например) так, чтобы вывод осуществлялся через разделитель, а не слитно?
template<typename... Args>
void print(const Args&... args) {
(std::cout << ... << args);
}
Например, так:
template<typename... Args>
void print(const Args&... args) {
auto f{[](auto&& x) { cout << x << " "; }};
(f(args),...);
}
Разделитель можно передать и как параметр:
template<typename... Args>
void print(const char * delim, const Args&... args) {
auto f{[delim](auto&& x) { cout << x << delim; }};
(f(args),...);
}
Чтоб не добавлять разделитель после последнего вывода - можно выкрутиться типа такого:
template<typename... Args>
void print(const char * delim, const Args&... args) {
int count = sizeof...(args);
auto f{[delim, &count](auto&& x) { cout << x; if (--count) cout << delim; }};
(f(args),...);
}
(Думаю, можно и красивее... но, что в голову первым пришло :))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Собственно следовал по пути автора с целью получить библиотеку с расчетной частью на С++ и всем остальным на PythonПользуюсь Clion 2018
Можно ли как-то в gcc использовать названия переменных с unicode символами? Разрешено ли это стандартом?
Допустимо ли применять moveToThread к объекту, созданному на стеке? Например, так:
Хочу написать параллельный for_each, но внутри мне нужно знать индекс текущего обрабатываемого элементаКак его узнать без data race?