IharOK
https://m.habrahabr.ru/post/352570/
IharOK
статеечка огонь)
grinchfox
Anonymous
Ребят, меня на stackoverflow забанили, поэтому сюда напишу. У меня g++ почему-то не может создать массивом размером 0x44cfcffe8 и выше...
Написал вот это, что бы определить этот размер.
Попробуйте запустить:
#include <iostream>
#include <limits>
using namespace std;
#define HEX(s) hex<<showbase<<(s)<<dec
int
main() {
clog<<"size_t::max(): "<<HEX(numeric_limits< size_t>::max())<<endl;
clog<<"ssize_t::max(): "<<HEX(numeric_limits<ssize_t>::max())<<endl;
size_t last;
size_t eps = (static_cast<size_t>(numeric_limits<ssize_t>::max()) + 1) / 0x8;
for(last = 0; last < numeric_limits<size_t>::max() && eps > 0; last += eps) {
try {
char *bb = new char[last];
delete[] bb;
} catch (bad_alloc &e) {
clog<<e.what()<<": last: "<<HEX(last)<<", eps: "<<HEX(eps)<<endl;
last -= eps;
eps /= 0x10;
}
}
clog<<"result: "<<HEX(last)<<endl;
return 0;
}
Результат вывода у меня:
size_t::max(): 0xffffffffffffffff
ssize_t::max(): 0x7fffffffffffffff
std::bad_alloc: last: 0x1000000000000000, eps: 0x1000000000000000
std::bad_alloc: last: 0x100000000000000, eps: 0x100000000000000
std::bad_alloc: last: 0x10000000000000, eps: 0x10000000000000
std::bad_alloc: last: 0x1000000000000, eps: 0x1000000000000
std::bad_alloc: last: 0x100000000000, eps: 0x100000000000
std::bad_alloc: last: 0x10000000000, eps: 0x10000000000
std::bad_alloc: last: 0x1000000000, eps: 0x1000000000
std::bad_alloc: last: 0x500000000, eps: 0x100000000
std::bad_alloc: last: 0x450000000, eps: 0x10000000
std::bad_alloc: last: 0x44d000000, eps: 0x1000000
std::bad_alloc: last: 0x44d000000, eps: 0x100000
std::bad_alloc: last: 0x44cfd0000, eps: 0x10000
std::bad_alloc: last: 0x44cfd0000, eps: 0x1000
std::bad_alloc: last: 0x44cfd0000, eps: 0x100
std::bad_alloc: last: 0x44cfcfff0, eps: 0x10
std::bad_alloc: last: 0x44cfcffe9, eps: 0x1
result: 0x44cfcffe8
Anonymous
Всмысле паскаль, тут же c++
Alexander
Vasiliy
Ваще. Ненавижу плюсы.
Anonymous
У меня проект требует скорости исполнения
Anonymous
Чё за рофл, почему тут паскарь, в @purec теперь ProJS++
Vasiliy
Artöm
Artöm
Превращаем плюсы в паскаль
Surreal
Ребят, меня на stackoverflow забанили, поэтому сюда напишу. У меня g++ почему-то не может создать массивом размером 0x44cfcffe8 и выше...
Написал вот это, что бы определить этот размер.
Попробуйте запустить:
#include <iostream>
#include <limits>
using namespace std;
#define HEX(s) hex<<showbase<<(s)<<dec
int
main() {
clog<<"size_t::max(): "<<HEX(numeric_limits< size_t>::max())<<endl;
clog<<"ssize_t::max(): "<<HEX(numeric_limits<ssize_t>::max())<<endl;
size_t last;
size_t eps = (static_cast<size_t>(numeric_limits<ssize_t>::max()) + 1) / 0x8;
for(last = 0; last < numeric_limits<size_t>::max() && eps > 0; last += eps) {
try {
char *bb = new char[last];
delete[] bb;
} catch (bad_alloc &e) {
clog<<e.what()<<": last: "<<HEX(last)<<", eps: "<<HEX(eps)<<endl;
last -= eps;
eps /= 0x10;
}
}
clog<<"result: "<<HEX(last)<<endl;
return 0;
}
Результат вывода у меня:
size_t::max(): 0xffffffffffffffff
ssize_t::max(): 0x7fffffffffffffff
std::bad_alloc: last: 0x1000000000000000, eps: 0x1000000000000000
std::bad_alloc: last: 0x100000000000000, eps: 0x100000000000000
std::bad_alloc: last: 0x10000000000000, eps: 0x10000000000000
std::bad_alloc: last: 0x1000000000000, eps: 0x1000000000000
std::bad_alloc: last: 0x100000000000, eps: 0x100000000000
std::bad_alloc: last: 0x10000000000, eps: 0x10000000000
std::bad_alloc: last: 0x1000000000, eps: 0x1000000000
std::bad_alloc: last: 0x500000000, eps: 0x100000000
std::bad_alloc: last: 0x450000000, eps: 0x10000000
std::bad_alloc: last: 0x44d000000, eps: 0x1000000
std::bad_alloc: last: 0x44d000000, eps: 0x100000
std::bad_alloc: last: 0x44cfd0000, eps: 0x10000
std::bad_alloc: last: 0x44cfd0000, eps: 0x1000
std::bad_alloc: last: 0x44cfd0000, eps: 0x100
std::bad_alloc: last: 0x44cfcfff0, eps: 0x10
std::bad_alloc: last: 0x44cfcffe9, eps: 0x1
result: 0x44cfcffe8
Сколько памяти на машине?
Anonymous
Vasiliy
С 8 байтами далеко не уедешь
Vasiliy
Даже у младших pic12 больше
Anonymous
Anonymous
Хром закрыл, теперь 0x510d96fe8
Vasiliy
Anonymous
ОС какая?
принтер HP LaserJet P1102w
Vasiliy
Отключи overcommit и попробуй ещё раз
Aidar
Ребят, меня на stackoverflow забанили, поэтому сюда напишу. У меня g++ почему-то не может создать массивом размером 0x44cfcffe8 и выше...
Написал вот это, что бы определить этот размер.
Попробуйте запустить:
#include <iostream>
#include <limits>
using namespace std;
#define HEX(s) hex<<showbase<<(s)<<dec
int
main() {
clog<<"size_t::max(): "<<HEX(numeric_limits< size_t>::max())<<endl;
clog<<"ssize_t::max(): "<<HEX(numeric_limits<ssize_t>::max())<<endl;
size_t last;
size_t eps = (static_cast<size_t>(numeric_limits<ssize_t>::max()) + 1) / 0x8;
for(last = 0; last < numeric_limits<size_t>::max() && eps > 0; last += eps) {
try {
char *bb = new char[last];
delete[] bb;
} catch (bad_alloc &e) {
clog<<e.what()<<": last: "<<HEX(last)<<", eps: "<<HEX(eps)<<endl;
last -= eps;
eps /= 0x10;
}
}
clog<<"result: "<<HEX(last)<<endl;
return 0;
}
Результат вывода у меня:
size_t::max(): 0xffffffffffffffff
ssize_t::max(): 0x7fffffffffffffff
std::bad_alloc: last: 0x1000000000000000, eps: 0x1000000000000000
std::bad_alloc: last: 0x100000000000000, eps: 0x100000000000000
std::bad_alloc: last: 0x10000000000000, eps: 0x10000000000000
std::bad_alloc: last: 0x1000000000000, eps: 0x1000000000000
std::bad_alloc: last: 0x100000000000, eps: 0x100000000000
std::bad_alloc: last: 0x10000000000, eps: 0x10000000000
std::bad_alloc: last: 0x1000000000, eps: 0x1000000000
std::bad_alloc: last: 0x500000000, eps: 0x100000000
std::bad_alloc: last: 0x450000000, eps: 0x10000000
std::bad_alloc: last: 0x44d000000, eps: 0x1000000
std::bad_alloc: last: 0x44d000000, eps: 0x100000
std::bad_alloc: last: 0x44cfd0000, eps: 0x10000
std::bad_alloc: last: 0x44cfd0000, eps: 0x1000
std::bad_alloc: last: 0x44cfd0000, eps: 0x100
std::bad_alloc: last: 0x44cfcfff0, eps: 0x10
std::bad_alloc: last: 0x44cfcffe9, eps: 0x1
result: 0x44cfcffe8
это 18гб?
Vasiliy
Aidar
и что ты хочешь от 18гб
Ostap ꑭ
БИГ ДЭЙТА!!!1!!1
Дурний Кіт
Aidar
чтобы очень большие тексты печатать
Anonymous
чё-то лол, это 17,2479324117 гиб
Anonymous
там озу+свап на 16 гиб
Surreal
Вам уже написали про memory overcommit.
Anonymous
у меня же ssd
Aidar
очень странно что так мало выделело
Vasiliy
у меня же ssd
Это новый вариант мема "у меня лапки"?
Anonymous
Aidar
а эт наверн плюсцовый алокатор
Anonymous
Evgenii
хм, следуя правилу х2 от оперативка?
Anonymous
Anonymous
БЛ СЕГОДНЯ ЖЕ ПЕРВОЕ АПРЕЛЯ
а я думаю, чё за рофлы, чат про с++ теперь про паскаль, другие про JS
MRL
может кто помочь в чем трабла?
не может быть открыт, поскольку НЕ СОЗДАТЬ удаётся компилятор Visual C # 2015 г. Следует переустановить Visual Studio
переустановка не помогла
Habetdin
Air☁️💨
А разве он не древний ?
Air☁️💨
Даже Си , куда перспективнее. Не говоря про C++.
Anonymous
blow
да вы шо, ведь ассемблер самый перспективный ЯП в истории
Air☁️💨
В смысле ?
Air☁️💨
Понятно.
Алексей
std::future<void> enqueue(std::function<void()> function) {
std::unique_lock<std::mutex> lock(mutex);
tasks.emplace(function);
condition_variable.notify_one();
auto future = tasks.front().get_future();
return future;
}
почему future already taken?
Nikita
так ты удали из очереди то
Nikita
забранную фьючу
Алексей
очередь packaged_task'ов. таск остается в очереди для дальнейшего выполения другим потоком
Anonymous
поменяли названия у чатов, я не понял ничего и повыходил отовсюду, потому что у меня таких не было, вот дела
Anonymous
Anonymous
Кстати, дурову передайте там, что бы в телегу для линукса добавил флажок для отключения background-картинки для чата
Anonymous
Потому что я включить - включил, а выключить не могу, в глаза я точно не долблюсь
Assasin
ты и сам можешь - Settings -> ask a question
Anonymous
Anonymous
Кстати я тут фичу нашёл у libscanmem: при full search scope ищет намного меньше, чем при Normal Search Scope. Результат: 633096 против 678498.
Anonymous
GameConqueror как фронтенд юзаю
Vladislav
Чо как Паскаль поживает, хлопцы?
Sergey
Дурний Кіт
Anonymous
лично Дурову?
Да, ещё письмо хлу напишите поздравительное
Vladislav
Ребят, я к вам с вопросом по кодировкам залетел. Если объявить тайпдеф
typedef basic_string<TCHAR> tstring;
нормально ли он сконвертит константную строку при возврате из метода?
tstring foo()
return "any_str";
Constantine
Vladislav
Ну, естественно кодировка будет свапаться при компиляции
Constantine
Свапаться?
Vladislav
swap
Vladislav
swap'аться
Constantine
это болото что ли?
Vladislav
Ну да
Vladislav
Только там глубоко
Vladislav
Не ходи
Constantine
А, ладно
Constantine
у меня перерыв закончился, а там касса свободная
Vladislav
не иди туда
Vladislav
Она тебя сожрет