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

не находит std::to_string - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.61
Triall
 Аватар для Triall
3 / 3 / 1
Регистрация: 16.02.2011
Сообщений: 68
17.03.2013, 17:25     не находит std::to_string #1
Не пойму что не так, выдает ошибку
error: 'to_string' is not a member of 'std'
Версия gcc 4.7.2-5

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
int main(void)
{
    for (int i = 999; i > 100; i--)
    {
        for (int j = 999; j > 100; j--)
        {
           int tmp = i*j;
           std::string str = std::to_string(tmp);
        }
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
17.03.2013, 17:28     не находит std::to_string #2
Цитата Сообщение от Triall Посмотреть сообщение
std::to_string
не принимает int

сделайте

C++
1
std::to_string(static_cast<long long>(tmp));
или
C++
1
long long tmp = i*j;
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
17.03.2013, 17:31     не находит std::to_string #3
`to_string` is not a member of `std`
Triall
 Аватар для Triall
3 / 3 / 1
Регистрация: 16.02.2011
Сообщений: 68
17.03.2013, 17:33  [ТС]     не находит std::to_string #4
Цитата Сообщение от Afflicted Посмотреть сообщение
не принимает int
Почему же не принимает ? to_string


Цитата Сообщение от Afflicted Посмотреть сообщение
сделайте
Код C++
1
std::to_string(static_cast<long long>(tmp));
или
Код C++
1
long long tmp = i*j;
не помогло... та же ошибка
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.03.2013, 17:36     не находит std::to_string #5
Если mingw основан на gcc 4.7.1, то std::to_string в нем еще не реализован, в версии на 4.7.2 уже все ок.
Пробуйте эти сборки
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
17.03.2013, 17:36     не находит std::to_string #6
Цитата Сообщение от Triall Посмотреть сообщение
не помогло... та же ошибка
Это баг и о нем уже давно заявлено.
Если верить словам niXman'a, то он пофикшен в 4.8.x
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.03.2013, 17:38     не находит std::to_string #7
Цитата Сообщение от Croessmah Посмотреть сообщение
Это баг и о нем уже давно заявлено.
сам сталкивался с САБЖем, когда имел mingw на основе 4.7.0. Спросил ув. niXman что за трабл, он объяснил это реализацией данной функции лишь в версии 4.7.2. Скачав его последнюю сборку у меня все заработало.
Triall
 Аватар для Triall
3 / 3 / 1
Регистрация: 16.02.2011
Сообщений: 68
17.03.2013, 17:40  [ТС]     не находит std::to_string #8
Цитата Сообщение от Croessmah Посмотреть сообщение
`to_string` is not a member of `std`
У меня нет MinGW, стоит debian, по ссылке, есть какие то патчи для MinGW, но я не могу найти куда бы можно было их всунуть...
-=ЮрА=-
Заблокирован
Автор FAQ
17.03.2013, 17:50     не находит std::to_string #9
Triall, std::to_string это фича для С11, как по мне сложность написать для себя самому данный метод нулевая
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
 
string to_string(int param)
{
    string str = "";
    for(str = ""; param ; param /= 10)
        str += (char)('0' + param % 10);
    reverse(str.begin(), str.end());
    return str;
}
 
int main()
{
    string str = to_string(1024);
    cout<<str<<endl;
    return 0;
}
http://codepad.org/Y5Gj0tUp
Output:
1024
-=ЮрА=-
Заблокирован
Автор FAQ
17.03.2013, 17:54     не находит std::to_string #10
Можно и с темплэйтом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <string>
#include <sstream>
#include <iostream>
#include <algorithm>
using namespace std;
 
template <class T>
string to_string(T param)
{
    string str = "";
    stringstream ss;
    ss<<param;
    getline(ss, str);
    return str;
}
 
int main()
{
    string str = to_string(1024.26);
    cout<<str<<endl;
    return 0;
}
Миниатюры
не находит std::to_string  
Triall
 Аватар для Triall
3 / 3 / 1
Регистрация: 16.02.2011
Сообщений: 68
17.03.2013, 17:55  [ТС]     не находит std::to_string #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
std::to_string это фича для С11
http://gcc.gnu.org/gcc-4.7/cxx0x_status.html в 4,7 есть поддержка С++11...
Написать то можна, но вопрос почему не работает уже готовое.
-=ЮрА=-
Заблокирован
Автор FAQ
17.03.2013, 18:09     не находит std::to_string #12
Цитата Сообщение от Triall Посмотреть сообщение
http://gcc.gnu.org/gcc-4.7/cxx0x_status.html в 4,7 есть поддержка С++11...
Написать то можна, но вопрос почему не работает уже готовое.
- внимательно посмотри таблицу, полной поддержки С11 лично я не увидел
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
17.03.2013, 18:21     не находит std::to_string #13
Цитата Сообщение от Triall Посмотреть сообщение
У меня нет MinGW, стоит debian
А как компилируешь? С ключом -std=c++11 ?
Triall
 Аватар для Triall
3 / 3 / 1
Регистрация: 16.02.2011
Сообщений: 68
17.03.2013, 18:36  [ТС]     не находит std::to_string #14
Цитата Сообщение от Kastaneda Посмотреть сообщение
А как компилируешь? С ключом -std=c++11 ?
Без ключей компилирую, с етим ключем заработало. Спасибо
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.03.2013, 18:41     не находит std::to_string #15
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
внимательно посмотри таблицу, полной поддержки С11 лично я не увидел
1) До полной поддержки С++11 не хватает двух пунктов (которые никому не нужны)
2) При чем тут С11?
-=ЮрА=-
Заблокирован
Автор FAQ
17.03.2013, 20:14     не находит std::to_string #16
diagon, притом что to_string метод из С11.Я не пишу с минжв и таком прочем,а пишу в VC,потому есть ключ нет ключа,я исходил из увиденного в теме и ссылки по свойствам компилятора

Добавлено через 2 минуты
По поводу пункта 1 если нет подержки каждого пункта,то полной поддержки нет,нужны те пункты или не нужны...
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.03.2013, 20:17     не находит std::to_string #17
-=ЮрА=-, C11 - стандарт языка С
-=ЮрА=-
Заблокирован
Автор FAQ
17.03.2013, 20:35     не находит std::to_string #18
MrGluck, а кто спорит?Его не все компиляторы поддерживают, какие уточнения еще сделать?VC хоть все поняли-вижуал студио?Или еще по слогам написать,что раз уж пишу в студии то с другими средами менее знаком,а потому что они поддерживают предпочитаю по их документации судить.

Добавлено через 3 минуты

Не по теме:

Are there any questions/information exist?

silent_1991
21.03.2013, 10:43
  #19

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
MrGluck, а кто спорит?
C и C++ - разные языки. C11 - стандарт языка Pure C. С++0x - последний стандарт языка C++. Вам хотели сказать именно это.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2013, 17:48     не находит std::to_string
Еще ссылки по теме:

Компилятор не находит std::ref() C++
'to_string' was not declared in this scope C++
C++ To_string эквивалент

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
21.03.2013, 17:48     не находит std::to_string
  #20

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
C и C++ - разные языки.
- зачем мне это было говорить?
silent_1991, под С11 я понимал С++11 если уже пошла речь о буквоедстве. Автор темы рассматривал плюсы, ответы приводились в плюсах, я давал ответы в плюсах, ну хорошо если по контексту сложно понять что имелось ввид буду писать С++11. Ксати С++0х как раз носит (верней носил) условный характер - это было черновое название С++11). Итак в своём посте о поддержке компилятора после слов автора темы
Цитата Сообщение от Triall Посмотреть сообщение
http://gcc.gnu.org/gcc-4.7/cxx0x_status.html в 4,7 есть поддержка С++11...
я подразумевал, что возможно данный компилятор gcc-4.7 имеет неполную поддержку плюсового С11( чтобы было понятней имел ввиду абривеатуру С++11).
У меня вопрос к сообществу зачем развивать из этого всего уже четыре поста обсуждения если и так понятно о каком стандарте шла речь?

Yandex
Объявления
21.03.2013, 17:48     не находит std::to_string
Ответ Создать тему
Опции темы

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