Constantine
ну ведь предъяви контрпример это
int x;
if (x) std::cout << "Hello, world!";
Ioann_
Ioann_
Ну у Беркуса, есть ли что то читерское в коде ?
MrSmith
https://hastebin.com/qeyukugiku.rb есть идеи как пофиксить?
Ioann_
MrSmith
С этой https://github.com/Fihtangolz/simpleClionProject_STM32/
Constantine
Ioann_
Я разбираю этот момент, я думаю, что здесь надо сесть основательно разобраться, как и обещал - отпишу, о том что найду
Constantine
При этом С++ локализация работает так замечательно, что я не представляю ни одного долбанутого локаль-кода, который эта программа примет
Ioann_
Код Беркуса у меня лично падает :)
Constantine
верни en_US
Ioann_
Constantine
починил назад
Constantine
а, хех
Constantine
не поддерживает ваша система такую локаль)
Berkus
en_US.UTF8 локаль
Constantine
ну вон перед тобой провал setlocale на неё
Berkus
ну чувак
Berkus
ты не понимаешь как локали работают что ли?
Constantine
понимаю
Berkus
локаль должна быть сгенерена и доступна в системе
Constantine
а ты мне предлагаешь протестить твой код
Berkus
я про wandbox пишу, а не ебу какие у тебя на системе локали - найди и поставь правильную
Berkus
Constantine
у меня в винде работает тамильская норм
Ioann_
Ну такой локали у меня нету, просто у БЕркуса не очень ясно с разделителями в тысячных
Berkus
ну вот и збс, ее и поставь
Ioann_
https://wandbox.org/permlink/SNFJJU7G2WNFIVUI
Constantine
только С не примет
Constantine
беркус, скажи, вот этот код под русской локалью выведет точку или запятую, если вывести флоат?
Berkus
да, пожалуй надо было
Berkus
Ioann_
тьфу, не то скинул, надо было так:
#include <iostream>
#include <sstream>
int main() {
std::wcout << "Locale selected: " << setlocale(LC_ALL, "en_US.UTF8") << std::endl;
lconv* lc = localeconv();
std::wcout << "Thousands separator " << lc->thousands_sep << std::endl;
std::uintmax_t v = 100500;
std::wcout << v << std::endl;
}
Ioann_
Constantine
т.е. ты мне втираешь, что под всеми локалями инты одинаково выводятся или что это на самом деле локаль-независимый код?
Ioann_
me ?
Berkus
Constantine
thousands по умолчанию скорее всего не выводятся и поэтому наличие разделения тысяч - не показатель ничего вообще
Berkus
Ioann_
Вот и я о том же, скажите мне, какую локаль выбрать б, или как ее в систему занести б, чтобы я мог протестировать и сказать какой метод рабочий и так далее ?
Berkus
на вандбоксе мало локалей стоит
Ioann_
А то и Беркус и Константин уверены в своих точках зрения, но кто-то же должен быть не прав
Berkus
Dmitry
можно как то через env цмейку опции задать?
Dmitry
cmake -DMY_OPT=ON ⟶ MY_OPT=ON cmake
Dmitry
внезапно вот надо(
Dmitry
https://github.com/ethereum/evmjit/issues/136
Dmitry
здесь человек хочет собрать LLVM без zlib, не меняя ебилд
Berkus
Constantine
Berkus
Berkus
есть только две стандартных - "C" и ""
Constantine
угу, поэтому чтобы построить тебе контрпример мне нужна система с нативным арабским
Berkus
бида!
Constantine
хотя проще с нативным русским получить запятую в качестве decimal separator и выяснить, что поток вывода в строку работает под текущей локалью
Constantine
а не под С
Constantine
и твой код по стандарту выводит все-таки локаль-зависимым способом
Berkus
ну окей
Berkus
значит я облажался, прости
Berkus
будет время - придумаю какой-то другой способ
Constantine
чсх походу облажался я
Constantine
ну ок, буду знать, что s-потоки работают под С
Constantine
Constantine
как и std::cout... хм
Berkus
ты про то, что они внутри ходят за сишной локалью?
Constantine
ох вейт
Constantine
Constantine
они по умолчанию из другого места локаль берут
Berkus
кек, ну я уже сказал
Constantine
чсх цифры из винды они не подцепили
Constantine
Ioann_
قبقثز نتقبنة رغف لتؤىبيلاىة
Ioann_
Какую локаль мне поставить, чтобы циферки стали не циферками ?
Ioann_
А то я поставил арабскую(Саудовская Аравия)
Constantine
у телеграмма есть проблемы со странными
Ioann_
И все равно, цифры цифрами
Ioann_
Так у меня даже в консолюшке