Anonymous
Может. См баян про сравнение std::sort и qsort
и зачем на это смотреть? учитывая, что на плюсах доступны оби версии?
🦥Alex Fails
Алдар
доступны. И сорт быстрее сишного кусорта)
из-за того что функция сравнения инлайнится
🦥Alex Fails
Да
Anonymous
да не в этом дело. есть свои иприимущества и недостатки у различных версий. дело в том, что в плюсах доступны все плюшки сишки. и сам по себе взброс: "сишка против плюсов" - глупое и бессмысленное
Nikolay Markov
(извините)
Anonymous
куча говна обычно в мозгах отдельных персонажей
🦥Alex Fails
Единственного достоинства нет в плюсах, что есть в си – это назвать переменную int class = 0;
Berkus
куда C++ не пустят погаными тряпками и правильно сделают
ну слушай, предрассудки отдельных граждан ничего не значат
Berkus
если отличные ядра на с++ до которых линуксу вообще не добраться
Berkus
а PVS_STudio тут недавно такие смешные баги в линуксе нашло которые шланг бы просто не пропустил
Nikolay Markov
Haiku вроде б
да, Haiku ничего, читал про него
Berkus
Haiku вроде б
не только, хайку была одна из первых
🦥Alex Fails
а PVS_STudio тут недавно такие смешные баги в линуксе нашло которые шланг бы просто не пропустил
По ядру линукса ечть одна немного вбросная конструктивно критикующая статейка
🦥Alex Fails
http://blogerator.org/page/bsd-big-scary-daemons-freebsd-vs-linux-1
Berkus
> Горячий финский парень Линус назвал их создателей "некомпетентными идиотами" ("I claim that Mach people (and apparently FreeBSD) are incompetent idiots"). молодой, неопытный
Berkus
вот это эйчар
Berkus
сразу видно!
Victor
> Горячий финский парень Линус назвал их создателей "некомпетентными идиотами" ("I claim that Mach people (and apparently FreeBSD) are incompetent idiots"). Странно... я был гораздо более высокого мнения о нем
Richard
Какой вчера вброс был, а я не поучаствовал))
Evgenii
http://www.kevinbeason.com/smallpt/
Как в вертексном шейдере в 4.1 получить координаты в vec4?
В опенгл
А
Вроде осилил
Тупо gl_Position впихнул
Stanislav
кстати, там если кто не заметил zlib 1.2.11 вышел)
Berkus
но зачем, багфиксы?
Berkus
http://www.kevinbeason.com/smallpt/
я помню такая картинка на 486 у меня занимала часа три-четыре
Berkus
> Rendering using 5000 paths per pixel takes 2.1 hours on an Intel Core 2 Quad machine. ничего особо не поменялось, кроме качества рендеринга )
Berkus
> Initial version: 4/29/2007 10 лет скоро кодецу будет
🦥Alex Fails
кстати, там если кто не заметил zlib 1.2.11 вышел)
Еее, пришло время обновить либпнг в легаси-проекте😂
🦥Alex Fails
Хоть что-то там новое будет😂
Dr. Friedrich
Не звучит очень уж страшно. Наверняка в новой версии API не поменялся.
Dr. Friedrich
Что может пойти не так?
Evgenii
я помню такая картинка на 486 у меня занимала часа три-четыре
Надо посмотреть за сколько на сервере срендерится)
🦥Alex Fails
http://www.kevinbeason.com/smallpt/
👍 #sample #raytrace
Berkus
Надо посмотреть за сколько на сервере срендерится)
там вон opencl какие-то версии, я бы их посмотрел )
Berkus
засунуть лайт рендеринг в шейдер и растопить видимокарту
Иван
утро доброе. Народ, помогите пожалуйста, можно ли при двойсвтенном наследованни класса делать такой трюк: если все классы в памяти хранятся на указателе-предке класса А, то можно ли их присвоить указателю предка B типа: class C: public A, public B { // etc } A *p = new C; B *p2 = p; ?
Berkus
можно
Иван
спасибо
Berkus
а хотя не так прочитал
Berkus
так вроде бы нельзя
Berkus
> error: cannot initialize a variable of type 'B *' with an lvalue of type 'A *' да, естественно
Andrei
Если ты точно знаешь, что так правильный тип, то можно.
Andrei
*там
Andrei
Короче, если там нет виртуальных методов, то делай static_cast
Andrei
если есть, делай dynamic_cast и assert-и его возврат.
Иван
Спасибо.
Anonymous
Вечер в хату арестанты
Anatoly
И тебе здравия
Aidar
👍 #sample #raytrace
Не опенгл, просто рейтрейс
🦥Alex Fails
vvzvlad
У меня есть некие сущности(номера портов), которые задаются через дефайны: #define IOID_17 0x17 #define IOID_16 0x16 И у меня есть номера каналов(виртуальных), которые привязаны к этим портам. #define CH_1 0x01 #define CH_2 0x02 Ну и какая-то таблица соответствия: #define CH_1_ID IOID_17 #define CH_2_ID IOID_16 Каналы ведут отсчет от нуля, а вот порты могут начинаться с достаточно большого номера и идти не по порядку. Пока мне надо было узнавать номер порта по номеру канала, я обходился такими конструкциями: if (channel = CH_1) { port = CH_1_ID; } А теперь мне надо узнать номер канала по номеру порта. Вторую таблицу делать странно. Какой есть способ создать таблицу соответствия вида IOID_17 <-> CH_1, из которой можно было в любой момент получить как номер порта по номеру канала, так и номер канала по номеру порта. Количество записей до пяти штук, каждому каналу соответствует только один номер порта, и наоборот. После компиляции не меняется.
Иван
я бы предложил использовать бы два контейнера map
🦥Alex Fails
У меня есть некие сущности(номера портов), которые задаются через дефайны: #define IOID_17 0x17 #define IOID_16 0x16 И у меня есть номера каналов(виртуальных), которые привязаны к этим портам. #define CH_1 0x01 #define CH_2 0x02 Ну и какая-то таблица соответствия: #define CH_1_ID IOID_17 #define CH_2_ID IOID_16 Каналы ведут отсчет от нуля, а вот порты могут начинаться с достаточно большого номера и идти не по порядку. Пока мне надо было узнавать номер порта по номеру канала, я обходился такими конструкциями: if (channel = CH_1) { port = CH_1_ID; } А теперь мне надо узнать номер канала по номеру порта. Вторую таблицу делать странно. Какой есть способ создать таблицу соответствия вида IOID_17 <-> CH_1, из которой можно было в любой момент получить как номер порта по номеру канала, так и номер канала по номеру порта. Количество записей до пяти штук, каждому каналу соответствует только один номер порта, и наоборот. После компиляции не меняется.
если каналы с нуля, то можно просто массив енамов канала сделать
🦥Alex Fails
бинарным поиском мб
Andrei
А что за язык?
vvzvlad
си
Andrei
И сколько элементов?
Andrei
Бля, понятно.
vvzvlad
>Количество записей до пяти штук
🦥Alex Fails
ща
🦥Alex Fails
enum channel { channel_invalid = -1, channel_0 = 0, channel_1, channel_2, channel_3, channel_4 }; enum port { port_3456 = 3456, // channel 3 port_1634 = 1634, // channel 2 port_1023 = 1023, // channel 1 port_890 = 890, // channel 4 port_1111 = 1111 // channel 0 }; port ports[] = { port_1111, // offset 0, directly maps to channel_0 port_1023, // offset 1, directly maps to channel_1 port_1634, port_3456, port_890 }; port port_from_channel(channel ch) { return ports[ch]; } channel channel_from_port(port prt) { for(size_t i = 0; i < 5; i++) { if (ports[i] == prt) { return (channel) i; } } return channel_invalid; }
vvzvlad
а преобразование канал->порт?
🦥Alex Fails
тупо перебор
Berkus
при 5 элементах перебор быстрее всего, причем unrolled
vvzvlad
еще вариант
vvzvlad
@vvzvlad #define CHANNEL_TABLE \ CHAN(1, 17) \ CHAN(2, 16) #define CHAN(id, io) CHAN_IO_##id = io, enum { CHANNEL_TABLE }; #undef CHAN #define CHAN(id, io) IO_CHAN_##io = id, enum { CHANNEL_TABLE }; #undef CHAN после препроцессинга будет как-то так: enum { CHAN_IO_1 = 17, CHAN_IO_2 = 16, }; enum { IO_CHAN_17 = 1, IO_CHAN_16 = 2, };
Surreal
А там лонг дабл до сих пор 8 байтный?
🦥Alex Fails
принтф кривой в вижал студии. там надо другие спецификаторы для long double