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

нет декларации to_string - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 14:27     нет декларации to_string #1
Программа сочетает 2 ф-ии: Если есть второй аргумент (пришлось данное условие задавать статично =\) то сравниваем str1 с str2, если второй аргумент не задан (не удовлетворяет статичному условию), то выводим размер str1.
Ругается на декларацию в области видимости.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
using namespace std;
 
string strr(string str1, string str2="hello")
{
    if(str2=="hello")
    return str1.size()>=str2.size()? str1:str2;
    else
    return to_string(str1.size());
}
int main ()
{
    cout<<strr("garrr")<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 14:27     нет декларации to_string
Посмотрите здесь:

Нет декларации «EOF» в этой области видимости C++
Декларации C++
не находит std::to_string C++
C++ 'to_string' was not declared in this scope
Существует что-то наподобие внешней декларации типов? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
23.03.2013, 14:29     нет декларации to_string #2
У тебя нет функции to_string
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 14:38  [ТС]     нет декларации to_string #3
Цитата Сообщение от sovaz1997 Посмотреть сообщение
У тебя нет функции to_string
А если одеть очки?

Может синтаксис не тот? Вернуть нужно интовое значение в стринг. ф-ю, без неё же не вернет...
Был вариант с strcmp, тоже не видело...
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
23.03.2013, 14:43     нет декларации to_string #4
Satansoft, она не описана, не объявлена, но используется.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
23.03.2013, 14:45     нет декларации to_string #5
Satansoft, да, синтаксис не тот. Ты обращаешься к ф-ии в своей программе. Ее дам нет)
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 14:49  [ТС]     нет декларации to_string #6
Разве она не библиотечная? как тогда?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
23.03.2013, 14:53     нет декларации to_string #7
C++
1
2
3
4
5
6
7
8
9
10
#include <sstream>
...  
else
    {
         std::string buf; 
         std::stringstream ss; 
         ss << str1.size(); 
         ss >> buf; 
         return buf;
    }
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2013, 14:58     нет декларации to_string #8
Цитата Сообщение от Satansoft Посмотреть сообщение
Разве она не библиотечная?
C++11.
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 15:13     нет декларации to_string #9
Satansoft, лови
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
25
26
27
28
29
30
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
 
template <class T>
string to_string(T param)
{
    string str_ret;
    stringstream ss;
    ss<<param;
    getline(ss, str_ret);
    return str_ret;
}
 
string strr(string str1, string str2="hello")
{
    string str_ret;
    if(strcmp(str1.c_str(), "hello") == 0)
        str_ret = str1.size() < str2.size() ? str2 : str1;
    else
        str_ret = to_string(str1.size());
    return str_ret;
}
 
int main ()
{
    cout<<strr("garrr")<<endl;
    return 0;
}
Проверка http://codepad.org/WadE1Pi7
PS:C++11 поддерживается не всеми компиляторами, to_string функция С++11 потому прежде чем её юзать надо поглядеть а поддерживает ли компилятор С++11. Если не поддерживает - пишем функцию сами(там 4-ри строки можно и написать руками)
Миниатюры
нет декларации to_string  
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 15:27  [ТС]     нет декларации to_string #10
Хьюстон, принято.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
23.03.2013, 15:28     нет декларации to_string #11
Это шаблоны
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 15:37     нет декларации to_string #12
Цитата Сообщение от Satansoft Посмотреть сообщение
Офигеть бубны, а чет эт такое?
Цитата Сообщение от Satansoft Посмотреть сообщение
template <class T>
string to_string(T param)
- эти каракули означают, что в функцию можем передавать любой параметр хоть дабл хоть стринг templatе - означает шаблон, у меня в коде использована функция-шаблон (она будет применять одно и то же действие к данным разных типов - как раз видим преимущества ООП мы пишем код который одинаково может быть использован для всего)
идём далее

Добавлено через 3 минуты
Цитата Сообщение от Satansoft Посмотреть сообщение
stringstream ss;
- ну и что страшного в стринг потоке, хорошо
fstream fs ясно что это?(поток связанный с файлом), ну а вот stringstream такое же поток только связанный со строкой, т.е мы черпаем данные не из файла а из текстового блока. Зачем его использовал да просто потому что
для данного потока оператор помещения в поток << перегружен для всех известных типов и не важно будет наш
Цитата Сообщение от Satansoft Посмотреть сообщение
ss<<param;
строкой или числом, при добавлении в поток param преобразуется в строковый эквивалент и при извлечении из потока нам будет возвращаться уже его строковое представление

Добавлено через 1 минуту
Фактически stringstream делает за нас всю черновую работу, он узнаёт тип данных, сам преобразует и нам лишь остаётся эти данные подобрать, что я бллагополучно и делаю посредством
Цитата Сообщение от Satansoft Посмотреть сообщение
getline(ss, str_ret);
Добавлено через 1 минуту

Не по теме:

Satansoft, ещё вопросы по коду есть?

Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 15:47     нет декларации to_string #13
Самодельные велосипеды - это конечно хорошо (точнее хорошо уметь их делать), но не проще ли С++11 использовать?
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 17:38  [ТС]     нет декларации to_string #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Satansoft, ещё вопросы по коду есть?
Нет, остальной код ясен, благодарности.
Цитата Сообщение от Kastaneda Посмотреть сообщение
Самодельные велосипеды - это конечно хорошо (точнее хорошо уметь их делать), но не проще ли С++11 использовать?
попытка заюзать 11 стандарт успехом не увенчалась, есть советы по компиляторам?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
23.03.2013, 17:51     нет декларации to_string #15
Satansoft, Смотря какой компилятор, в любом компиляторе, поддерживающем его можно включить его опцией -std=c++0x или -std=c++11. Как включать - зависит от компилятора/IDE.
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 17:52  [ТС]     нет декларации to_string #16
Цитата Сообщение от ForEveR Посмотреть сообщение
Смотря какой компилятор, в любом компиляторе, поддерживающем его можно включить его опцией -std=c++0x или -std=c++11. Как включать - зависит от компилятора/IDE.
Code::Blocks (minGW compile)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
23.03.2013, 19:13     нет декларации to_string #17
Satansoft, учтите, что std::to_string был включен лишь в версии gcc 4.7.2 На более ранних версиях он не работает. На какой основан ваш mingw?

Добавлено через 1 минуту
Рекомендую след. mingw сборку
http://sourceforge.net/projects/mingwbuilds/
Satansoft
 Аватар для Satansoft
7 / 7 / 1
Регистрация: 27.02.2012
Сообщений: 698
23.03.2013, 20:02  [ТС]     нет декларации to_string #18
Цитата Сообщение от MrGluck Посмотреть сообщение
Рекомендую след. mingw сборку
http://sourceforge.net/projects/mingwbuilds/
Уже тянул её, в какой из папок bin искать нужные компиляторы?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 20:07     нет декларации to_string
Еще ссылки по теме:

Как правильно пользоваться typedef для декларации типа указателя на функцию? C++
'to_string' was not declared in this scope C++
C++ To_string эквивалент

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
23.03.2013, 20:07     нет декларации to_string #19
Цитата Сообщение от Satansoft Посмотреть сообщение
Уже тянул её, в какой из папок bin искать нужные компиляторы?
mingw/bin далее как на скриншоте подключаете
нет декларации to_string
Yandex
Объявления
23.03.2013, 20:07     нет декларации to_string
Ответ Создать тему
Опции темы

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