Size: a a a

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

2020 June 03

HS

Harry Smith in cxx.Дискуссионная
BEST!
источник

/

/dev/desider in cxx.Дискуссионная
Harry Smith
BEST!
Слышь, гони бетховены
источник

/

/dev/desider in cxx.Дискуссионная
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Harry Smith
BEST!
источник

O

Ostrich Corpsеᕕ( ᐛ )... in cxx.Дискуссионная
Почему так все работает:
https://pastebin.com/T2jMPAmb

А если перетащить декларацию class NetServermodule внутрь конструктора, перед вызовом HasModule и сделать тоже самое с class NetClientModule; внутри своего конструктора, то это не срабатывает? По сути, он не должен регисрировать PreUpdate если соседний класс уже сделал это и наоборот, но если переместить декларацию, то оба эти класса возвращают nullptr в HasModule, хотя эти типы там есть
источник

O

Ostrich Corpsеᕕ( ᐛ )... in cxx.Дискуссионная
Я помнится смотрел какой то урок по С++, где ясно говорилось что можно пихать декларацию класса внутрь функции, но в моем случае это дает вообще другой результат. Это скорее как то связано с индексацией типов в EnTT? Он предоставляет context'ы
источник

O

Ostrich Corpsеᕕ( ᐛ )... in cxx.Дискуссионная
Это геморрой, мне придется туда все тянуть чтоб показать.
Вот смотри, есть класс, который регистрирует так называемые модули (не те модули что .dll, а просто .h файлы в качестве контекста внутри EnTT)
Функция GetModule по сути пытается получить объект класса из контекста, если его там нет, то он создаст его и вернет.
https://pastebin.com/v7gJia6S

Вот отсюда и двигаемся к вопросу выше, есть 2 класса, если в TestClasss будет зареган и NetServerModule и NetClientModule, то тот что раньше в конструкторе вызвал GetModule и возьмет на себя регистрацию RegEvent PreUpdate в своем классе. Короче говоря, один класс проверяет другой на наличие его в контексте, если он там есть, значит он уже зарегал там свое событие RegEvent и у себя он его регать не будет, если его там нет, то это означает что первым был текущий класс и он у себя вызовет RegEvent, смотреть в ctor функция HasModule
источник

O

Ostrich Corpsеᕕ( ᐛ )... in cxx.Дискуссионная
Так как оба эти класса должны проверять друг друга, то там есть некий геморрой с тем, что они должны друг друга взаимоподключать, у меня там не подключают они друг друга, так как это нереально из-за pragma once, поэтому я решил сделать декларацию в обеих классах, NetServerModule.h я воткнул декларацию` class NetClientModule`, а в NetClientModule я воткнул class NetServerModule декларацию, по сутим, им нужно знать только тип, контексту этого достаточно чтоб вызвать Has и GetModule
источник

O

Ostrich Corpsеᕕ( ᐛ )... in cxx.Дискуссионная
Так вот, если выносить декларацию класса за пределы конструктора, то все работает как задумано. то есть, класс NetServerModule выводит в консоль NetServer Register PreUpdate, так как он первым регистрируется в TestClass через GetModule (в конструкторе), а затем когда вызывается GetModule<NetClientModule>, то он выводит NetClient PreUpdate already exists in NetServerModule, то есть, он смог найти NetServerModule в контексте
источник

AB

Artöm Bakri Al-Sarmi... in cxx.Дискуссионная
Зачем тут эта стена текста?
источник

#

#62715 in cxx.Дискуссионная
Здравствуйте, кто знает C++ у меня есть одна программка надо проверит на правильность?
источник

D

Danya in cxx.Дискуссионная
#62715
Здравствуйте, кто знает C++ у меня есть одна программка надо проверит на правильность?
Никто не знает
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
#62715
Здравствуйте, кто знает C++ у меня есть одна программка надо проверит на правильность?
Не надо
источник

.

.undefined in cxx.Дискуссионная
#62715
Здравствуйте, кто знает C++ у меня есть одна программка надо проверит на правильность?
Тут клуб питонистов
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
.undefined
Тут клуб питонистов
Прологистов
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Kirill Kaymakov
Прологистов
@foxtran проучи их
источник

#

#62715 in cxx.Дискуссионная
Выходной итератор это Ostream Iterator?
источник

FO

FORTRAN ONE LOVE in cxx.Дискуссионная
Kirill Kaymakov
Прологистов
Пишите, на фортране твари! И будет вас по паре!
источник

FO

FORTRAN ONE LOVE in cxx.Дискуссионная
Done.
источник

W

Wild_Wind in cxx.Дискуссионная
Минутка форса Ады.
Наиболее интересно будет ембеддам.

Мини RTOS из коробки, в рантайме языка.
https://blog.adacore.com/theres-a-mini-rtos-in-my-language

Один из примеров применения, в том числе, с формальной верефикацией.

https://blog.adacore.com/make-with-ada-the-smartbase


Небольшое пояснение по SPARK, с примерами (чутка кривое и маленькое, но для примера пойдет):
https://ru.qwe.wiki/wiki/SPARK_(programming_language)
источник