Здравствуйте, Wolverrum, Вы писали:
W>Я чувствовал, я всегда чувствовал, что на плюсах чего-то более сложного, чем helloWorld<T>(...) пейсать не стоит.
Альтернативы нет Тем более, что баги там либо пустяковые, либо вызваны низкой культурой кодирования.
Здравствуйте, NikeByNike, Вы писали:
NBN>Альтернативы нет Тем более, что баги там либо пустяковые, либо вызваны низкой культурой кодирования.
Кстати, ошибка компиляции — это не баг. То что компилятор навязывает культуру кодирования — минус компилятору (это я про оператор присваивания = и оператор равенства =).
ну особо не сталкивался с софтом NVidea, но если для них мерило профессионализма — это поиск бага за 10 секунд, то с их софтом мне связываться не охота.
Здравствуйте, игппук, Вы писали:
И>ну особо не сталкивался с софтом NVidea, но если для них мерило профессионализма — это поиск бага за 10 секунд, то с их софтом мне связываться не охота.
Блин, ну что ж вы все такие прямые то. ) Право, горе от ума.
Просто по рсс пришло, посмотрел, показалось интересно, репостнул сюда...
народ не понял судя по минусу и комментам..)) take it easy(c)
Здравствуйте, skeptic, Вы писали:
S>тут
S>Я таки прошёл, хоть и не с первого раза конечно )
Стал героем, но последнее задание лажовое. Там ещё одна неточность и ещё один баг есть, которые не заметили бравые NVidia-вцы:
std::string StringReplace(const std::string& what, const std::string& with,
const std::string& in_here, int limit )
{
int i = 0;
std::string return_value = 0; //< вот тут баг по версии NVidia
return_value = in_here;
while ( pos != return_value.npos && ( limit == -1 || i < limit ) ) //< Вот тут неточность, надо сравнивать с std::string::npos
{
return_value.replace( pos, what.size(), with );
pos = return_value.find( what, pos ); //< А вот тут незамеченный баг
i++;
}
return return_value;
}
Незамеченный баг заключатеся в том, что если строка with включает в себя строку what, то выполнение зациклится, отжирая память. Ну или без отжирания памяти, в частном случае включения, когда эти строки равны.
Фикс очень простой, после реплейса, но переда началом поиска надо сдвинуть pos на значение with.size().