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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
#1

Преобразовать любое значение в строку - C++

07.07.2014, 15:54. Просмотров 236. Ответов 4
Метки нет (Все метки)

Привет. У меня есть примерно такая функция:
C++
1
2
3
4
5
template<typename T>
std::string ToString(T value)
{
    return std::to_string(value);
}
она работает на стандартных типах, ну это понятно. Как сделать чтобы код хотя бы мог компилироваться, если я передам в нее (в эту функцию) например свой класс? Спасибо.
Код
error C2665: 'std::to_string' : none of the 9 overloads could convert all the argument types
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2014, 15:54     Преобразовать любое значение в строку
Посмотрите здесь:

В строке записано вещественное число в форме с фиксированной точкой. Преобразовать строку, записав в нее округленное до целых значение данного числа. C++
C++ преобразовать строку
С помощью какой функции можно преобразовать строку в целое значение? C++
Вычислить значение выражения У=(AB-C)/CD где a,b,c,d любое положительное числа C++
C++ Любое значение числа
C++ Преобразовать строку->число->строку
C++ В любое место матрицы добавить новый столбец/строку
C++ Преобразовать строку s в верхний регистр и переписать результат в строку S1
C++ Преобразовать строку
C++ Преобразовать строку в выражение
Как присвоить значение любое число C++
C++ Преобразовать строку S в строку длинной N

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
orange_fox
 Аватар для orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
07.07.2014, 16:02     Преобразовать любое значение в строку #2
Нужно перегрузить std::to_string, чтобы он понимал твой класс
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
07.07.2014, 17:15  [ТС]     Преобразовать любое значение в строку #3
orange_fox, дело в том, что я не знаю какой класс будет использован.
orange_fox
 Аватар для orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
07.07.2014, 17:36     Преобразовать любое значение в строку #4
А to_string() откуда знает как из твоего класса строку получить? У твоих классов должно быть нечто общее, например - метод получения числа, чтобы можно было написать один template функции и это работало бы с каждым из твоих классов. Например, у каждого из твоих классов есть метод getInt():
C++
1
2
3
4
5
template <typename T>
string myClassesToString(T& myclass)
{
    return to_string(myclass.getInt())
}
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
07.07.2014, 18:45     Преобразовать любое значение в строку #5
Либо как-то так сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
 
class Foo
{
public:
    operator char* ()
    {
        return "asdf";
    }
};
 
int main()
{
    std::cout << Foo() << std::endl;
    return 0;
}
Yandex
Объявления
07.07.2014, 18:45     Преобразовать любое значение в строку
Ответ Создать тему
Опции темы

Текущее время: 20:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru