Size: a a a

2020 July 15

YP

Yegor Popov in supapro.cxx
Ilia Zviagin
Парсить твои объявления кто будет?
Компилятор😱
источник

С

Сэр MSTR in supapro.cxx
😳😳😳😳😳😳😳
Каааааеф, пасиба ребят

Я ведь правильно понимаю, что именно таким способом мне удастся избежать копирования значений при передаче в функцию?

У меня просто особенности репликации в UE4 не позволяют данной функции принимать указатель, а сами данные я хочу хранить именно через указатель на них в классе
источник

IZ

Ilia Zviagin in supapro.cxx
Yegor Popov
тип того
На самом деле это сложные примеры объявления.
Сложность решается в частности приемом "разделяй и властвуй", разделять надо на простые составляющие, и комбинировать обратно в сложное.

Как в стихе "вот дом, который построил Джек"
источник

IZ

Ilia Zviagin in supapro.cxx
Сэр MSTR
😳😳😳😳😳😳😳
Каааааеф, пасиба ребят

Я ведь правильно понимаю, что именно таким способом мне удастся избежать копирования значений при передаче в функцию?

У меня просто особенности репликации в UE4 не позволяют данной функции принимать указатель, а сами данные я хочу хранить именно через указатель на них в классе
Да
источник

С

Сэр MSTR in supapro.cxx
Пасиба!)
источник

С

Сэр MSTR in supapro.cxx
Danya
Ссылка по своей сути является разыменованным указателем
Пасиба!)
источник

YP

Yegor Popov in supapro.cxx
Крч говоря, я хочу спросить нравится ли идея того, что объявления будут читаться слева направо, а не по кольцу. Мне кажется, это удобнее
источник

IZ

Ilia Zviagin in supapro.cxx
Сэр MSTR
😳😳😳😳😳😳😳
Каааааеф, пасиба ребят

Я ведь правильно понимаю, что именно таким способом мне удастся избежать копирования значений при передаче в функцию?

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

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Yegor Popov
Крч говоря, я хочу спросить нравится ли идея того, что объявления будут читаться слева направо, а не по кольцу. Мне кажется, это удобнее
Если будешь делать свой язык, можешь над этим подумать
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
А си поздно менятт
источник

IZ

Ilia Zviagin in supapro.cxx
Yegor Popov
Крч говоря, я хочу спросить нравится ли идея того, что объявления будут читаться слева направо, а не по кольцу. Мне кажется, это удобнее
Мне кажется, что в С и С++ есть свой стиль объявления.
Другого не будет.
источник

YP

Yegor Popov in supapro.cxx
Я вот и делаю свой синтаксис для ЯП. Мне ведь нужно ориентироваться на мнение других разрабов, поэтому и спрашиваю.
источник

IZ

Ilia Zviagin in supapro.cxx
Yegor Popov
Крч говоря, я хочу спросить нравится ли идея того, что объявления будут читаться слева направо, а не по кольцу. Мне кажется, это удобнее
Если ты делаешь свой язык, то - ещё раз - ни то, ни другое, оба варианта не являются читаемыми, не имеют преимущества
источник

YP

Yegor Popov in supapro.cxx
а то, что читается слева направо?
источник

IZ

Ilia Zviagin in supapro.cxx
Yegor Popov
Крч говоря, я хочу спросить нравится ли идея того, что объявления будут читаться слева направо, а не по кольцу. Мне кажется, это удобнее
Вот у тебя в начале идентификатор, тип в конце. Это паскальный стиль.

Это мне лично не нравится вот просто до рвоты.
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Yegor Popov
Что скажете насчет такого синтаксиса? (перевел Сишные объявления)

/*
   str - массив из 10 указателей на char
*/
Си - char *str[10]
___ - str: [10]*char

/*
   fp - указатель на функцию, которая получает int и указатель на float и возвращает указатель на char
*/
Си - char *(*fp)(int, float*)
___ - fp: *(int, *float): *char

/*
   signal - функция, которая принимает int и fp(указатель на функцию, которая принимает int и возвращает void) и возвращает указатель на функцию, которая принимает int и возвращает void
*/
Си - void (*signal(int, void (*fp)(int)))(int)
___ - signal(int, fp: *(int): void): *(int): void

/*
   z - массив из 5 указателей на функцию, которая принимает массив int и указатель на char и возвращает указатель на функцию, которая принимает int и возвращает int
*/
Си - int (*(*z[5])(int[], char*))(int)
___ - z: [5]*([]int, *char): *(int): int
Последний пример плохо читается, приоритет [] над : неочевиден
источник

YP

Yegor Popov in supapro.cxx
А если идентификатор в конце поставить, то лучше будет? Сомневаюсь
*(int, *float): *char fp
источник

IZ

Ilia Zviagin in supapro.cxx
Yegor Popov
а то, что читается слева направо?
Я же говорю, ни одно не читается. Твой синтаксис не решает задачу кошения сложности.
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Yegor Popov
А если идентификатор в конце поставить, то лучше будет? Сомневаюсь
*(int, *float): *char fp
Новые языки чаще используют let_token name: type синтаксис
источник

v

vexillum in supapro.cxx
Yegor Popov
Что скажете насчет такого синтаксиса? (перевел Сишные объявления)

/*
   str - массив из 10 указателей на char
*/
Си - char *str[10]
___ - str: [10]*char

/*
   fp - указатель на функцию, которая получает int и указатель на float и возвращает указатель на char
*/
Си - char *(*fp)(int, float*)
___ - fp: *(int, *float): *char

/*
   signal - функция, которая принимает int и fp(указатель на функцию, которая принимает int и возвращает void) и возвращает указатель на функцию, которая принимает int и возвращает void
*/
Си - void (*signal(int, void (*fp)(int)))(int)
___ - signal(int, fp: *(int): void): *(int): void

/*
   z - массив из 5 указателей на функцию, которая принимает массив int и указатель на char и возвращает указатель на функцию, которая принимает int и возвращает int
*/
Си - int (*(*z[5])(int[], char*))(int)
___ - z: [5]*([]int, *char): *(int): int
мне обьявления размерности перед типом жутко не нравятся, оно какое-то неочевидное. Ну т.е. [10]*char
источник