Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Простое создание строки из объектов разных типов данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Правильно ли в приведенном примере реализовано выделение и очищение памяти под двумерный вектор http://www.cyberforum.ru/cpp-beginners/thread1234703.html
Скажите правильно ли я выделяю и очищаю память под двухмерный вектор class A { private: std::vector< std::vector<int> >* vec; public: A()
C++ Циклы: вычисление синуса Приступил к циклам. Задание такое: Как известно, функция sin(x) может может быть вычислена в виде ряда sin(x)=x-x^3/3!+x^5/5!-...=\sum_{n=0}^{\propto }(-1)^n*(x^(2n+1))/(2n+1)! На практике при... http://www.cyberforum.ru/cpp-beginners/thread1234686.html
Boost::regex не могу сформировать ссылку на паттерн при поиске C++
Необходимо найти 2 повторяющихся заголовка и объединить некоторое содержимое через replace. Хотел создать выражение для поиска: ^(prefix=)(.*)(\n)(*)($2) Вот только ссылка $2 не возвращает...
Инициализация переменных - некорректно работает пример из книги C++
Взял задачку из книги Г.Шилда. Должно показывать 1 3 6 10 15. Но у меня выдает 1 2 3 4 5. Набрал всё точь в точь с книги, в чём проблема, кто подскажет? #include <iostream> #include <conio.h>...
C++ Не работает цикл for http://www.cyberforum.ru/cpp-beginners/thread1234664.html
#include <iostream> #include <conio.h> using namespace std; int main() { int x; for(x=0; x<10; x++); cout << x << " "; _getch(); return 0; }
C++ Функция инициализации консольной графики от Лафоре Доброго времени суток. Пытаюсь использовать( только обучения ради ) и изменить библиотеку консольной графики от Лафоре. Среди прочих функций есть функция инициализации графики, вот её код: void... подробнее

Показать сообщение отдельно
0x10
2474 / 1647 / 247
Регистрация: 24.11.2012
Сообщений: 4,068
27.07.2014, 15:14
DiffEreD, На самом деле, пост зря удалил. В одном-то месте я вспомнил про std::forward, в остальных как-то не подумал.

Добавлено через 9 минут
В общем, если хочется оформить как библиотечку, можно как-то так:
Код
`-- Shortcut
    |-- Details
    |   `-- to_string.h
    `-- to_string.h
Shortcut/to_string.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
 
#include <sstream>
#include <string>
 
#include "Details/to_string.h"
 
namespace Shortcut {
 
template<class... Args>
std::string to_string(Args&&... args) {
  std::ostringstream oss;
  Details::to_string_impl(oss, std::forward<Args>(args)...);
  return oss.str();
}
 
} // namespace Shortcut

Shortcut/Details/to_string.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
 
#include <string>
 
namespace Shortcut {
namespace Details {
 
template <class T>
void to_string_impl(std::ostream& os, T&& item) {
  os << item;
}
 
template <class T, class... Args>
void to_string_impl(std::ostream& os, T&& item, Args&&... args) {
  to_string_impl(os, std::forward<T>(item));
  to_string_impl(os, std::forward<Args>(args)...);
}
 
} // namespace Details
} // namespace Shortcut


Понятно, что до универсальности тут далеко - достаточно вспомнить, что на std::string свет клином не сошелся, но просто лень писать. Т.е. тип символов тоже было бы неплохо параметризовать.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru