Форум программистов, компьютерный форум 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)! На практике при вычислении значения функции sin(x) соответствующий ряд ограничивают, т.е. рассматривают приближенное выражение sin(x)= x-x^3/3!+x^5/5!-x^7/7!+...+... 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> using namespace std; void total (int x); int main(){ setlocale(LC_ALL,"RUS"); cout << "Вычисление суммы чисел от 1 до 5.\n"; total(5); _getch();
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 init_graphics() { COORD console_size = {80, 25}; //open i/o channel to console screen hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ... подробнее

Показать сообщение отдельно
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.07.2014, 10:30     Простое создание строки из объектов разных типов данных
Цитата Сообщение от MasterOfOrion Посмотреть сообщение
А в чём смысл данного извращения? Какой функциональности не хватает?
Функциональности стандартной библиотеки вполне хватает, просто иногда хочется то же самое записать более лаконично.
Пример приведен в первом же посте - конкатенацией строк получить имя файла.
Обычно для этого нужно либо создавать объект std::stringstream, что к третьему разу уже надоедает, либо каждый объект приводить к строке вызовом std::to_string, что тоже громоздко.
В общем, это шорткат для удобства.

Но реализация не кажется такой уж выигрышной. Основной вопрос: а зачем нам нужен класс? Да еще и с оператором приведения к std::string, что добавляет неявного поведения. Подразумевается ли создание его невременних объектов? Если да, то преимуществ перед std::stringstream никаких. Если нет, то это повод задуматься о написании обычной функции.

Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <sstream>
 
template <class T>
void to_string_impl(std::ostream& os, T&& value) {
  os << value;
}
 
template <class T, class... Args>
void to_string_impl(std::ostream& os, T&& value, Args&&... args) {
  to_string_impl(os, value);
  to_string_impl(os, args...);
}
 
template <class... Args>
std::string to_string(Args&&... args) {
  std::stringstream ss;
  to_string_impl(ss, args...);
  return ss.str();
}
 
int main() {
  std::cout << to_string(1, 2, 3.14, "abc");
}
 
Текущее время: 08:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru