|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Парни, подскажите, плиз, что будет являться аналогом в C++ Builder XE5 для его штатного __int64 следующих преобразований на Delphi: xx: Int64; Int64Rec(xx).Lo Int64Rec(xx).Hi ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 16:41 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
В отличии от дельфийского хака работает на платформах с любым порядком бит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 16:58 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Котовасия, Этот "тынц" не работает. Пишет про невозможность преобразования "long long" в Int64Rec. Ну или приведи пример безошибочного его применения в CPP нотации. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:07 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Спасибо, конечно, а без дополнительных операций совсем никак? Мне в данном месте очень критично. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:09 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad F... Этот "тынц" не работает. Пишет про невозможность преобразования "long long" в Int64Rec. Ну или приведи пример безошибочного его применения в CPP нотации. Уж лучше ты покажи, как "не работает". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:14 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FСпасибо, конечно, а без дополнительных операций совсем никак? Не будет никаких "дополнительных операций". Компилятор распознаёт этот паттерн и генерирует для него соответствующий ассемблерный код для прямого обращения с старшему/младшему слову. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:16 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ладно, оставляю в таком виде, спасибо. Но пока что портированный на CPP код по производительности в целом отстает от паскаля. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:39 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FНо пока что портированный на CPP код по производительности в целом отстает от паскаля. Ты его с -O3 собираешь, надеюсь?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 17:52 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Признаться, пока даже не знаю, что это такое. От CPP всерьез и на долго оторвался 20 лет назад. Но меряю пока что навскидку в Debug Configuration и то и другое в одной и той же версии студии. Не думаю, что в конфигурации Release с соотв. оптимизациями относительные результаты принципиально поменяются.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:00 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FНе думаю, что в конфигурации Release с соотв. оптимизациями относительные результаты принципиально поменяются.)) Ну да, максимум на порядок (в десять раз). Хотя для некоторых и это может быть принципиально. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:02 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Так и на Delphi в соотв. конфигурации (с соотв. ключами), ты не поверишь, тоже все разгоняется. Я же про относительные результаты. С оптимизациями, конечно, тоже померяю. Вы лучше подскажите как ему вот в этом месте строку преобразовать, чтобы не было ошибок: String message; throw Exception(message.sprintf("%d %d", x, y)); >> cannot initialize param type 'const wchar_t *' with value type 'const char[5]' ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:13 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
https://en.cppreference.com/w/cpp/language/string_literal (2) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:20 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, А какой из перечисленных модификаторов, вы считаете, нужным в данном контексте? Дело в том, что я до того уже попробовал (по совету интернеты) L"", на что он дает cannot pass object of non-trivial type 'System::UnicodeString' through variadic method. Сейчас попробовал по очереди все остальные указанные там модификаторы, все в данном контексте дают ошибку, близкую к первоначальной. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:30 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FДело в том, что я до того уже попробовал (по совету интернеты) L"", на что он дает cannot pass object of non-trivial type 'System::UnicodeString' through variadic method. Значит либо ты либо твой компилятор какой-то бред творите. UnicodeString просто так вылазить не будет там, где "param type 'const wchar_t *'". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 18:49 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Дык, компилятор не мой, а эмбаркадеровский. А у него структура ходовых классов с загибонами, портированная, очевидно, местами из Delphi. Ладно, с вашего позволения, откладываем до завтра. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 19:48 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FDimitry Sibiryakov, Признаться, пока даже не знаю, что это такое. От CPP всерьез и на долго оторвался 20 лет назад. Но меряю пока что навскидку в Debug Configuration и то и другое в одной и той же версии студии. Не думаю, что в конфигурации Release с соотв. оптимизациями относительные результаты принципиально поменяются.))не думай. делай пока что говорят. хотя для борланда наверное только -О2 есть и выигрыш будет небольшим По поводу строки есть спец.метод для таких http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.SysUtils.Exception.CreateFmt ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2018, 21:19 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FDimitry Sibiryakov, А какой из перечисленных модификаторов, вы считаете, нужным в данном контексте? Дело в том, что я до того уже попробовал (по совету интернеты) L"", на что он дает cannot pass object of non-trivial type 'System::UnicodeString' through variadic method. Ну так это уже про следующий параметр. Что там у вас в x, y ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 06:15 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Vlad FDimitry Sibiryakov, А какой из перечисленных модификаторов, вы считаете, нужным в данном контексте? Дело в том, что я до того уже попробовал (по совету интернеты) L"", на что он дает cannot pass object of non-trivial type 'System::UnicodeString' through variadic method. Ну так это уже про следующий параметр. Что там у вас в x, y ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 06:18 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Barlone, Нет, не про следующий. Следующими шли в данном случае целые числа. Впрочем, формаиирование строк в исключения я всеже как-то затолкал. С этим все, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 10:20 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Siemarglне думай. делай пока что говорят. хотя для борланда наверное только -О2 есть и выигрыш будет небольшим По поводу строки есть спец.метод для таких http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.SysUtils.Exception.CreateFmt 1) Мне надо сначала худо-бедно плртировать, чтобы было что сравнительно измерять. Потом все перемеряю, конечно, под нагрузкой, в т.ч. и со всеми включенными оптимизациями. 2) Ха-ха, да это же дельфийский метод дельфийского объекта. Как раз его я и пытаюсь заменить на что-то более натуральное сишное. Впрочем, именно эта проблема уже разрешилась, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 10:26 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
union не рекомендуют в С++ использовать, но пока не запрещен можно с его помощью Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 10:29 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Парни, подскажите, плиз, еще по вот такой ошибке: на void *xx = MapViewOfFile(...); компилятор выдает: no matching function for call to 'MapViewOfFile' Вызов производится в обычном виртуальном методе, не конструкторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 10:35 |
|
Разбиение __int64 на слова
|
|||
---|---|---|---|
#18+
Можно еще через смену типа указателя Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2018, 10:40 |
|
|
start [/forum/topic.php?fid=57&fpage=16&tid=2017755]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 249ms |
total: | 386ms |
0 / 0 |