Size: a a a

cxx.Дискуссионная

2020 March 05

АВ

Александр Вольнов in cxx.Дискуссионная
Ладно, кину вам такой пример на моём языке:
@struct {
Image := @struct {
   ImageColorType = @type{}
   ImageWidth = @uint16{}
   ImageHeight = @uint16{}
   ImagePixels = [ImageHeight][ImageWidth]ImageColorType{}
}

BlackOrWhiteColor := @struct {
   Luminance = @bit{}
   R := Luminance
   G := Luminance
   B := Luminance
}

CheckerImage := Image{}(
   ImageColorType = BlackOrWhiteColor
   ImageWidth = 2
   ImageHeight = 2
   ImagePixels = {
       {
           {{0}, {1}}
           {{1}, {0}}
       }
   }
)
}{}
На что похоже?
источник

BB

Bohdan Bessonov in cxx.Дискуссионная
на недоJSON
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Александр Вольнов
Ладно, кину вам такой пример на моём языке:
@struct {
Image := @struct {
   ImageColorType = @type{}
   ImageWidth = @uint16{}
   ImageHeight = @uint16{}
   ImagePixels = [ImageHeight][ImageWidth]ImageColorType{}
}

BlackOrWhiteColor := @struct {
   Luminance = @bit{}
   R := Luminance
   G := Luminance
   B := Luminance
}

CheckerImage := Image{}(
   ImageColorType = BlackOrWhiteColor
   ImageWidth = 2
   ImageHeight = 2
   ImagePixels = {
       {
           {{0}, {1}}
           {{1}, {0}}
       }
   }
)
}{}
На что похоже?
На F#
источник

d

dma in cxx.Дискуссионная
@devoln, а ты не боишься, чтт твою идею украдут? Или ты запатентовал?
источник

i

ivan in cxx.Дискуссионная
Александр Вольнов
Ладно, кину вам такой пример на моём языке:
@struct {
Image := @struct {
   ImageColorType = @type{}
   ImageWidth = @uint16{}
   ImageHeight = @uint16{}
   ImagePixels = [ImageHeight][ImageWidth]ImageColorType{}
}

BlackOrWhiteColor := @struct {
   Luminance = @bit{}
   R := Luminance
   G := Luminance
   B := Luminance
}

CheckerImage := Image{}(
   ImageColorType = BlackOrWhiteColor
   ImageWidth = 2
   ImageHeight = 2
   ImagePixels = {
       {
           {{0}, {1}}
           {{1}, {0}}
       }
   }
)
}{}
На что похоже?
Короче, смысл в создании типа данных «@type», который инкапсулирует механизм сериализации и «не важно» какой?
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
ivan
Короче, смысл в создании типа данных «@type», который инкапсулирует механизм сериализации и «не важно» какой?
В том что он не понимает зачем нужна граница между темплейтам/дженериками и рефлексией
источник

i

ivan in cxx.Дискуссионная
«@bit» лежит внутри «@type»?

Какое минимальное представление этих сущностей на момент компиляции?
источник

BB

Bohdan Bessonov in cxx.Дискуссионная
Kirill Kaymakov
В том что он не понимает зачем нужна граница между темплейтам/дженериками и рефлексией
понимает и пытается её убрать
источник

i

ivan in cxx.Дискуссионная
Bohdan Bessonov
понимает и пытается её убрать
Тоже так думаю
источник

i

ivan in cxx.Дискуссионная
Типа найти минимальную реализацию, которая юзает и то и то аля
источник

BB

Bohdan Bessonov in cxx.Дискуссионная
ivan
Тоже так думаю
ну или поставлять майнер в компиляторе ;)
источник

i

ivan in cxx.Дискуссионная
Kirill Kaymakov
В том что он не понимает зачем нужна граница между темплейтам/дженериками и рефлексией
Ну или все-таки это, тут сложно судить
источник

АВ

Александр Вольнов in cxx.Дискуссионная
Bohdan Bessonov
на недоJSON
В JSON нет ссылок, и там ключи дублируются. У меня определяешь структуру, а дальше идут данные. В бинаре данные будут идти компактно без каких-либо метаданных.
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Он сейчас еще к тому же поди напорется на те же проблемы, что и с возможностью компиляции питона
источник

АВ

Александр Вольнов in cxx.Дискуссионная
ivan
«@bit» лежит внутри «@type»?

Какое минимальное представление этих сущностей на момент компиляции?
@bit - это экземпляр @type. Размер @type плавающий от одного байта до бесконечности, зависит от сложности типа. Для хранения типа @bit достаточно одного байта.
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Александр Вольнов
В JSON нет ссылок, и там ключи дублируются. У меня определяешь структуру, а дальше идут данные. В бинаре данные будут идти компактно без каких-либо метаданных.
Их нет потому что не нужны
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Kirill Kaymakov
Поздравляю, ты переизобрел рефлексию
перепридумал питон
источник

i

ivan in cxx.Дискуссионная
Александр Вольнов
@bit - это экземпляр @type. Размер @type плавающий от одного байта до бесконечности, зависит от сложности типа. Для хранения типа @bit достаточно одного байта.
Понятно, то есть @bit - char по факту?
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
перепридумал питон
Передушил питона)
источник

i

ivan in cxx.Дискуссионная
ivan
Понятно, то есть @bit - char по факту?
Вообще, @type - сродни структуре с автоматическим выравниванием минимальным?
источник