Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s / 5 сообщений из 5, страница 1 из 1
19.03.2019, 14:48
    #39788476
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s
Прочитал, что в РИО 10.3 json работает в ~5-6 раз быстрее.
Но,
Компилятор RIO 10.3H2443 Inline function 'TJSONObject.GetPair' has not been expanded because unit 'System.Generics.Collections' is not specified in USES list

Что бы мог значить этот хинт?

Я понимаю, что надо сделать. Но не понимаю - почему?)
В 10.2 такого нет.
...
Рейтинг: 0 / 0
19.03.2019, 15:04
    #39788482
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s
Valery_BЯ понимаю, что надо сделать. Но не понимаю - почему?)
Одно из ограничений дельфийских инлайнов. Инлайновый метод GetPair использует что-то из модуля System.Generics.Collections.
...
Рейтинг: 0 / 0
19.03.2019, 15:08
    #39788484
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s
http://docwiki.embarcadero.com/RADStudio/Rio/en/Calling_Procedures_and_Functions_(Delphi)#Using_the_inline_Directive If a routine marked with inline uses external symbols from other units, all of those units must be listed in the uses statement, otherwise the routine cannot be inlined.
...
Рейтинг: 0 / 0
19.03.2019, 15:25
    #39788500
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s
Kazantsev AlexeyИнлайновый метод GetPair использует что-то из модуля System.Generics.Collections.

Внезапно, он использует тип TPair<T,U>
...
Рейтинг: 0 / 0
19.03.2019, 15:35
    #39788508
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s
У меня на XE2 с этим хинтом вообще прикол был. Он стал генерироваться из-за... константы из другого модуля. КОНСТАНТЫ, Карл! Помогла редекларация константы самым тупым образом:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
{$IF Defined(POSIX)}

 Const

  S_IFMT  = S_IFMT;
  S_IFREG = S_IFREG;

{$IFEND}


Правда, был ещё способ... На месте использования можно было делать так: ... = S_IFREG or 0; Тогда дельфя понимала, что тут надо просто подставить вычисленное значение. На следующих версиях такой фигни уже небыло
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / H2443 Inline function 'TJSONObject.GetPair' has not been expanded because %s / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]