@ProCxx

Страница 1410 из 2477
Constantine
16.10.2017
20:03:29
интересно, сколько лет разработки стандарта потребуется для добавления функции snwprintf

Alex Фэils?︙
16.10.2017
20:14:39
15
12

Норман
16.10.2017
20:15:05
всего-то столько лет прошло

Google
Alex Фэils?︙
16.10.2017
20:16:57
Хотя я не помню, стд это или екст

/cppref itoa

FailsBot
16.10.2017
20:17:52
Search results for "itoa" - Nothing found.

Ioann V
16.10.2017
20:47:17
В сиплас палс ежжи strtod или типа того

Alex Фэils?︙
16.10.2017
20:49:33
Точно

Ioann V
16.10.2017
20:55:56
Проверю завтра кстати, что будет быстрее std vector, с reserve n elements

Против std vector с аллкатором, у которого эти элементы выделяются на стеке

И запихаю в куюнить таску

Возможно, кстати, имеет смысл написать свой вектор без аллокатора, но у которого часть элементов стековая, а другая часть кучная. Собственно я такоц и использую, и стало интересно, а на сколько такой костыль оправдан и быстрее ли std vector с allocator

Stanislav
16.10.2017
21:04:04
В С++17 можно даже без регистрации и смс перевести число в строку
эм, to_string еще в С++11 появился, или ты про что?

Google
Ioann V
16.10.2017
21:05:35
Constantine
16.10.2017
21:06:12
эм, to_string еще в С++11 появился, или ты про что?
to_string это который объект локали создает?

Andre
16.10.2017
21:08:45
нет, это который создает std::string

Stanislav
16.10.2017
21:09:05
to_string это который объект локали создает?
ну то что to_chars локал индепендент это хорошо, от задачи зависит

Constantine
16.10.2017
21:09:49
ну то что to_chars локал индепендент это хорошо, от задачи зависит
и часто у вас задача локаль-депендет работать в С++ через стандартные функции?

Vladislav
16.10.2017
21:10:57
to_chars, from_chars
зачем они добавляют новые API с c-style строками? ><

Ioann V
16.10.2017
21:10:58
Реверса ?

Anatoly
16.10.2017
21:11:32
Реверса ?
Тьфу, прочил так ресерв

Constantine
16.10.2017
21:11:33
подождите, невозможно реализовать так хранимый вектор по стандарту

там гарантия последовательности в памяти

можно делать автоматический выбор от размера, конечно

Vladislav
16.10.2017
21:12:41
там гарантия последовательности в памяти
да, но можно сделать по аналогии с fbstring

Ioann V
16.10.2017
21:12:48
Тьфу, прочил так ресерв
Не, у меня есть такая ситуация в проекте что иногда известно примерное количество элементов которое надо запихать в массив, оно не большое как правило. Но ситуация может повторяться 1млн раз.

Vladislav
16.10.2017
21:13:04
да, но можно сделать по аналогии с fbstring
если вектор маленький то все на стеке, иначе выделять кусок в хипе

Vladislav
16.10.2017
21:13:22
но тут нужно смотреть на распределение размеров векторов в приложении, чтобы это было полезно

Alexander
16.10.2017
21:13:45
Constantine
16.10.2017
21:13:52
я слышал антон говорил, что стандарт по сути не допускает small object optimization для vector

Google
Constantine
16.10.2017
21:14:02
я не знаю детали

Vladislav
16.10.2017
21:14:18
Ioann V
16.10.2017
21:14:22
кто-то рассказал про boost::container::small_vector ? ?
Ну вот видимо типа того, если он могет и в стек и в хипу

Constantine
16.10.2017
21:18:25
std::to_chars работает с С строками

я беру свои слова назад, С++17 все еще система издевательств

где там мой гитлер про 14 стандарт

Ioann V
16.10.2017
21:20:05
Саша знает, что я С люблю

Constantine
16.10.2017
21:20:34
мне надо перевести uintmax_t в wstring (locale-independent способом)

набросайте плиз код

на ISO C++

Alexander
16.10.2017
21:21:00
где там мой гитлер про 14 стандарт
хехе, а у меня Гитлер всегда со мной ?

fox.cpp
16.10.2017
21:21:22
https://www.youtube.com/watch?v=ND-TuW0KIgg

вот

Constantine
16.10.2017
21:23:04
да, я про это видео

про git это явно проблемы какого-то школьника были

> мне надо перевести uintmax_t в wstring (locale-independent способом) > набросайте плиз код на ISO C++ собственно такой вопрос нужно авторам стандарта отправить, имхо

язык программирования общего назначения в 2017 году не содержит штатного и хоть немного близкого к нему способа это сделать

перевести число в строку

Google
Constantine
16.10.2017
21:36:32
эту функцию поддерживал турбо паскаль

Constantine
16.10.2017
21:59:40
а как получить string?

через snprintf / sprintf?

Admin
ERROR: S client not available

Constantine
16.10.2017
22:00:09
сколько там, шесть операторов языка?

Anatoly
16.10.2017
22:00:09
to_string

fox.cpp
16.10.2017
22:00:18
to_string не катит разве

Constantine
16.10.2017
22:00:20
to_string локаль-зависимый

it-trend
16.10.2017
22:00:30
перевести число в строку
есть же строковые потоки ))

Constantine
16.10.2017
22:00:38
например, может 1000 как 1 000 записать

или арабскими цифрами

fox.cpp
16.10.2017
22:01:14
ну запиши в строковой поток число, форсировав дефолтную локаль (точно не знаю, как это правильно делается)

std::locale imbue( const std::locale& loc );

Constantine
16.10.2017
22:02:07
ну запиши в строковой поток число, форсировав дефолтную локаль (точно не знаю, как это правильно делается)
то есть в конфе pro.cxx есть люди, которые не знают на память, как в С++ переводить число в строку? :)

это очень забавно, не находите?

fox.cpp
16.10.2017
22:02:47
я забыл название метода для потока

Constantine
16.10.2017
22:03:20
мне кажется, что получится не меньше 7 строк в любом случае

fox.cpp
16.10.2017
22:04:38
std::wstring to_wstring(uintmax_t i, std::locale locale = std::locale("C")) { std::wstringstream wss; wss.imbue(locale); wss << i; return wss.str(); }

Google
fox.cpp
16.10.2017
22:04:40
наверн как-то так

а теперь давайте пропосал, чтобы добавить to_wstring, а к to_string добавить параметр locale

fox.cpp
16.10.2017
22:07:42
гм, ладно

Constantine
16.10.2017
22:07:52
https://godbolt.org/g/2gDZCj

fox.cpp
16.10.2017
22:08:06
но locale, раз to_string локаль-зависимый надо бы

Constantine
16.10.2017
22:08:15
96 ассемблерных инструкций, аллокатор памяти

вызовы виртуальных функций

ява будет быстрее работать, вот серьезно

еще и noexcept нет и, видимо, не придвидится

а, еще многопоточные запросы блокировки должны быть

атомарные операции почти наверняка есть

мне кажется, что ручками цикл с делением на 10 будет быстрее работать

std::wstring result; for (; i != 0; i /= 10) result += static_cast<wchar_t>(i % 10 + L'0'); std::reverse(result.begin(), result.end());

еще 0 проверить

Anatoly
16.10.2017
22:26:25
да, если уж нужна скорость я бы не поленился и исключил и аллокацию и реверс :) wchar_t* to_wstring(wchar_t w[], size_t n, uintmax_t u) { auto *e = w + n; auto *b = e; for (; u; u /= 10) { *--b = L'0' + (u % 10); } return b; } int main() { wchar_t b[std::numeric_limits<uintmax_t>::digits10] = { 0 }; std::wcout << (b, sizeof(b) / sizeof(b[0]), std::numeric_limits<uintmax_t>::max()) << std::endl; std::wcout << std::numeric_limits<uintmax_t>::max() << std::endl; }

Constantine
16.10.2017
22:51:09
digits10 мало

Страница 1410 из 2477