Size: a a a

2021 October 02

G

GNU/Vsevolod in pro.lua
Что такое темплейты в юзертайпе?
источник

A

Alexander in pro.lua
template <typename T>
T SomeClass::SetValue(T a, T b)
{
  c = a;
  d = b;
}

lua.new_usertype
   < SomeClass >( _S( "C_SomeClass" ),
   ( std::string ) _S( "SetValue" ), &SomeClass::SetValue

);
источник

A

Alexander in pro.lua
Я хочу сделать для разных типов данных одну функцию, чтобы было удобно работать, но перегрузку функции, и темплейты оно кушать не хочет.
источник

I

Igor725 in pro.lua
Ты чатиком ошибся
источник

I

Igor725 in pro.lua
@pro.cxx
источник

I

Igor725 in pro.lua
Тебе сюда
источник

A

Alexander in pro.lua
Это как раз к луа относится
источник

I

Igor725 in pro.lua
Относиться-то относится, но конкретно с этим вопросом, шанс получить помощь выше именно в чате по Сишке
источник

AS

Anatoliy S in pro.lua
А где чат по сишке?
источник

AZ

Aydar Zarifullin in pro.lua
@procxx там спроси, если по сишке есть отдельный - подскажут.
источник

АК

Александр Караев... in pro.lua
очень прошу отправлять с такими вопросами в @supapro, а не в @procxx
источник
2021 October 03

TL

Tony Lutsenko in pro.lua
Добрый вечер. Извиняюсь, что начинаю с проблемы, но очень уж капец какой-то.

Есть у меня программа для КМ вычислений Quanty, по сути – интерпретатор LUA с большой узкоспецифической библиотекой. Есть код в нескольких файлах, который я вызываю в мастер-файле через dofile(). Первые три файла объявляют глобальные переменные, последний – главный кусок кода, который с этими глобальными переменными делает манипуляции, вычисления и сохраняет в соответствующие файлы.

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

Вопроса два:

1) в статье про dofile написано: you may want to run the new chunk in a protected environment, to avoid unpleasant side effects when running the code . Каким образом это реализовать?

2) есть ли какая IDE для LUA, чтобы можно было увидеть, какая переменная локальная, какая глобальная, и что где происходит?
источник

G

GNU/Vsevolod in pro.lua
1) https://stackoverflow.com/a/16366750/8876743
2) вроде как LSP  умеет
источник

TL

Tony Lutsenko in pro.lua
сложно, но спасибо
источник

G

GNU/Vsevolod in pro.lua
Идея в том, чтобы дать коду из файла свободно читать из _G, но перехватывать запись в _G, что достигается через setmetatable(sandboxed_G, {__index = _G})
источник

G

GNU/Vsevolod in pro.lua
> чтобы можно было увидеть, какая переменная локальная, какая глобальная

Можно логгировать через
setmetatable(sandboxed_G, {
 __index = _G,
 __newindex = function(self, k, v)
   print("Setting "..k.." to "..inspect(v))
   rawset(self, k, v)
 end
})
источник

TL

Tony Lutsenko in pro.lua
а как вызвать эту функцию из ответа на StackOverflow? что есть эта env, как её передать в функцию?
источник

G

GNU/Vsevolod in pro.lua
По идее пустая таблица, в которую запишется все то, что код в файле пишет в глобал
источник

TL

Tony Lutsenko in pro.lua
источник

TL

Tony Lutsenko in pro.lua
источник