Свежие комментарии

Title Comment
В течение нескольких дней, если я не пропустил что-то фаталь

В течение нескольких дней, если я не пропустил что-то фатальное, выйдет маковская альфа.

Уведомление будет и тут и на rawdigger.ru

http://market.yandex.ua/guru.

http://market.yandex.ua/guru.xml?CMD=-RR=0,0,0,0-PF=2142604859~EQ~sel~x8...

плюс

http://workshop.stiff.ru/2010/02/pci-e-x16-video-into-pci-e-x1-slot.html

тоесть берем любую пси-експресс видеокарту и дорабатываем ее до версии 1х =)

ой, а нельзя ли то, что можно попробовать? не нашел на сайте

ой, а нельзя ли то, что можно попробовать? не нашел на сайте, вряд ли уж настолько плохо искал. интересует под macos, у меня 10.6.8

А почему foo(1,2) - это обязательно константа? Что может пом

А почему foo(1,2) - это обязательно константа? Что может помешать конструктору во внешний мир слазить?

Сталкивался с этой фигней при портировании под gcc, как я по

Сталкивался с этой фигней при портировании под gcc, как я понял, по стандарту все-таки то что делает vs не совсем стандартно. Однако с точки зрения логики и удобства использования непонятно зачем такое ограничение, приходится писать лишние строки кода, вводить переменные.

Visual Studio 2008: warning C4239: nonstandard extension use

Visual Studio 2008:
warning C4239: nonstandard extension used : 'argument' : conversion from 'foo' to 'foo &'
A non-const reference may only be bound to an lvalue

Это level-4 warning, если что...

Оптимизации ВСЕ попробуй выключить, тогда интеллекта должно

Оптимизации ВСЕ попробуй выключить, тогда интеллекта должно сильно поубавиться.

И вот если оптимизированный бинарь и обычный выдадут разные значения - можно предметно ругаться.

Ага! Спасибо за freeimage! То, что нужно!

Ага!
Спасибо за freeimage! То, что нужно!

Ну оно так примерно и работает (зовется subfile_open - метод

Ну оно так примерно и работает (зовется subfile_open - метод LibRaw_datastream).
Но для этого надо знать (в LibRaw) имя файла, который отдали изначально (чтобы по нему вычислить).

В-общем, дырка проковыряна (в виде класса, реализующего IO), но она довольно развесистая и не от хорошей жизни эта развесистость.

И я даже знаю, что ей пользуются, наприме в freeimage (а freeimage, в свою очередь, офигенно распространенная библиотека для поддержки всего что шевелится в смысле графики)

> Не, ну а как тогда открывать соседние файлы с метаданными?

> Не, ну а как тогда открывать соседние файлы с метаданными? У стрима таких свойств быть не может.

Коллбэк аппликухе, чтобы стрим с метаданными выдала.

А, ну да. Я имею в виду общий случай, когда компилятор не ви

А, ну да.
Я имею в виду общий случай, когда компилятор не видит кода функции.

Не, ну а как тогда открывать соседние файлы с метаданными? У

Не, ну а как тогда открывать соседние файлы с метаданными? У стрима таких свойств быть не может.
А выкинуть эту возможность - означает выкинуть метаданные от хаканых камер (CHDK и аналогичное для Nikon). Что в общем случае - как-то обидно.

А так - весь I/O работает на классе LibRaw_datastream, в поставке есть реализации на файлах, std::filebuf, mmap для Win32, буфере в памяти.
Если кому дозареза нужен стрим - пусть реализует. Но seek() придется реализовать.

Что же до памяти - процессинг в любом случае требует в разы больше памяти, на этом фоне буфер для байеровских данных не слишком мешает.

Вот! А нельзя libraw кормить данные из произвольного стрима?

Вот!
А нельзя libraw кормить данные из произвольного стрима? Типа кусочками - данные пришли - мы их скормили. И обработку по мере возможности делать также кусочками.

Ну да. С QFile/QDir проблем нет совсем. Только у меня LibRa

Ну да. С QFile/QDir проблем нет совсем.

Только у меня LibRaw::open_file(const char *fname, int bigfile_limit = 100M);

Соответственно, под винду пришлось родить вызов
LibRaw::open_file(const wchar_t *fname, int bigfile_limit = 100M);

А внутри там неонка. Точнее std::filebuf и/или fopen/wfopen (и еще куча гемороя, связанного с тем, что метаданные могут быть в отдельном файле с тем же именем и другим расширением или с тем же расширением, но номером отличающимся на единичку, очень сексуально на самом деле).

Ну а дальше QString::toStdWstring на винде, QString::toUtf8 на маке. Ужос.

> А первое несовместимое место - это обращение с нелатинским

> А первое несовместимое место - это обращение с нелатинскими именами файлов. Виндовый wfopen (и подобные) хочет wchar_t*, а Мак - UTF-ную строку в char*

QFile ?

работает, я проверил. У меня там std::filebuf, правда, но с

работает, я проверил. У меня там std::filebuf, правда, но с fopen тоже должно работать.

Что же до файлов - то мне жаловался грек, у него отчего-то системная локаль стояла американская, а имена файлов были родные.

а нефиг файл называть не английскими буквами! спасибо, поше

а нефиг файл называть не английскими буквами!

спасибо, пошел пробовать :-)

<pre> class foo { public: foo(int aa, int bb) : a(aa),b(bb){

class foo
{
public:
foo(int aa, int bb) : a(aa),b(bb){}
int A() const { return a;}
int B() const { return b;}
private:
int a,b;
};

int func(const foo& f) { return sin(f.A())*f.B();}

int main()
{
int a;
a = func(foo(1,2));
return a+func(foo(1,2));
}

.LCFI9:
.LBB33:
.LBB34:
# t.cc:12
.loc 1 12 0
movl $0, (%esp)
movl $1072693248, 4(%esp)
call sin
fnstcw -6(%ebp)
fadd %st(0), %st
movzwl -6(%ebp), %eax
movb $12, %ah
movw %ax, -8(%ebp)
fldcw -8(%ebp)
fistpl -12(%ebp)
fldcw -6(%ebp)
movl -12(%ebp), %eax
.LVL1:
.LBE34:
.LBE33:
# t.cc:19
.loc 1 19 0
addl $20, %esp
popl %ecx
popl %ebp
.LBB36:
.LBB35:
# t.cc:12
.loc 1 12 0
addl %eax, %eax
.LVL2:
.LBE35:
.LBE36:
# t.cc:19
.loc 1 19 0
leal -4(%ecx), %esp
ret

foo может возвращать разное значение при каждом следующем вызове даже при одинаковых параметрах.

ну в данном случае он видит код foo. пока там синуса не было он вообще ее вызов до двойки оптимизировал и сразу четверку возвращал.

а если __attribute((pure)) написать -- и extern начинает умножать.
а если конструктору pure написать -- он объект перестает инициализировать, кажется.

Не-не, общего там - имя

Не-не, общего там - имя сделанного исполняемого файла. Ну может еще имя файла README и Copyright.Больше вообще ничего похожего. Рантайм класть разный (и по разному).

Для полноценных экспериментов надо тело функции прятать в др

Для полноценных экспериментов надо тело функции прятать в другой единице компиляции (что делать с Link-time code generation вовсе не знаю).

Потому что компиляторы сейчас ОЧЕНЬ умные.

ну да, я в dmg тоже всякого

ну да, я в dmg тоже всякого напихал,
даже фоновую картинку папки настроил(там где перетаскивать надо, в смысле типа инсталляция) - там она совсем по-идиотски задаётся.

тут экономия получается когда вы делаете и nsis и dmg и rpm и т.п- часть параметров конечно нужно всё-равно задавать для каждого типа, но большая часть инфы между ними разделяется.

Это точно? IMHO, это неправильно. foo может возвращать разно

Это точно?
IMHO, это неправильно. foo может возвращать разное значение при каждом следующем вызове даже при одинаковых параметрах. Во всяком случае раньше MS VC таких оптимизаций не делал и звал 2 раза.

не, я понимаю что не в foo&,

не, я понимаю что не в foo&, там куча других мест(и не только с errors связаное).
вот boost тоже зафейлился без msvc extensions. видимо эти ifdef закладываются на extensions.

Так там все в

Так там все в #ifdef-ах.

Ошибки то не в foo&, а в каких-то невероятных местах.

интересно, а как оно на gcc

интересно, а как оно на gcc тогда собирается.

как вариант, если нужно всё-таки отключить - вынести не QT-зависимый код в статическую библиотеку.

то есть это не баг, а фича, к

то есть это не баг, а фича, к счастью контролируемая.

к сожалению, отключается еще

к сожалению, отключается еще много всего - и перестает варез с Qt собираться по причине ошибок в этом самом Qt (headers)

dmg - сделает (сам

dmg - сделает (сам охренел!).
Причем правильный, Frameworks скопирует и все такое. Правда мне нужно туда еще нагадить всячески, поэтому в реальной жизни смысла нет.

Тоже и с NSIS (я побоялся им пользоваться, но это другой вопрос) - чтобы сделался полноценный инсталлятор, нужно помудохаться (подписи там всякие, генерация актуального мануала вордом). Ну то есть можно и это поручить cmake, но работы то столько же.

это не единственное место,

это не единственное место, где MSVC по-умолчанию ведёт себя более лояльно.
Отключается это в свойствах проекта C/C++ -> Язык -> отключить расширения языка (/Za)
и пример компилируется с error C2664

А QMake вам dmg для MacOSX

А QMake вам dmg для MacOSX сделает? а nsis скрипт?
(может и сделает, я действительно не знаю)

Pages

Subscribe to comments_recent_new