🦥Alex Fails
🦥Alex Fails
Да
Anonymous
да не в этом дело. есть свои иприимущества и недостатки у различных версий.
дело в том, что в плюсах доступны все плюшки сишки.
и сам по себе взброс: "сишка против плюсов" - глупое и бессмысленное
🦥Alex Fails
Nikolay Markov
Nikolay Markov
(извините)
Anonymous
куча говна обычно в мозгах отдельных персонажей
🦥Alex Fails
Единственного достоинства нет в плюсах, что есть в си – это назвать переменную
int class = 0;
Berkus
если отличные ядра на с++ до которых линуксу вообще не добраться
🦥Alex Fails
Berkus
а PVS_STudio тут недавно такие смешные баги в линуксе нашло которые шланг бы просто не пропустил
🦥Alex Fails
🦥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
Какой вчера вброс был, а я не поучаствовал))
Berkus
Evgenii
http://www.kevinbeason.com/smallpt/
ඞ
Как в вертексном шейдере в 4.1 получить координаты в vec4?
ඞ
В опенгл
ඞ
А
ඞ
Вроде осилил
ඞ
Тупо gl_Position впихнул
Stanislav
кстати, там если кто не заметил zlib 1.2.11 вышел)
Berkus
но зачем, багфиксы?
Berkus
> Rendering using 5000 paths per pixel takes 2.1 hours on an Intel Core 2 Quad machine.
ничего особо не поменялось, кроме качества рендеринга )
Stanislav
Berkus
> Initial version: 4/29/2007
10 лет скоро кодецу будет
🦥Alex Fails
Хоть что-то там новое будет😂
Dr. Friedrich
Не звучит очень уж страшно. Наверняка в новой версии API не поменялся.
Dr. Friedrich
Что может пойти не так?
Evgenii
🦥Alex Fails
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
И тебе здравия
🦥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
vvzvlad
🦥Alex Fails
бинарным поиском мб
Andrei
А что за язык?
Andrei
vvzvlad
си
Andrei
И сколько элементов?
Andrei
Бля, понятно.
vvzvlad
>Количество записей до пяти штук
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