Size: a a a

2020 September 01

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
Roy Mustang
В общем, суть такая, при первом обращений к GetModule<Type> мы проверяем CacheModule<Type>::ptr и если он nullptr выполняем поиск по хеш карте и присваиваем в ptr указатель
Норм, ленивый поиск
источник

RM

Roy Mustang in C++ Together 2.0
Alex Ф-ф-фэils!🌠︙
Норм, ленивый поиск
Ответить на вопрос можешь?
источник

RM

Roy Mustang in C++ Together 2.0
Шаблонный класс будет в каждом .cpp инстацироваться?
источник

RM

Roy Mustang in C++ Together 2.0
или нет
источник

M

Michael in C++ Together 2.0
Всм
источник

RM

Roy Mustang in C++ Together 2.0
@foxcpp0 странная хуйня получилась
источник

RM

Roy Mustang in C++ Together 2.0
Я проверил
источник

RM

Roy Mustang in C++ Together 2.0
Вот код
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
Roy Mustang
Шаблонный класс будет в каждом .cpp инстацироваться?
Нет, это же зависит от того, где ты инстанцируешь
источник

RM

Roy Mustang in C++ Together 2.0
источник

RM

Roy Mustang in C++ Together 2.0
Вот щас я внутри main.cpp
источник

RM

Roy Mustang in C++ Together 2.0
Как видим, тут в main в первый раз вызывается Cache<std::string>, а в второй раз тот же самый std::cout вызывается внутри obj.foo() в cpp
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
Ну вот твой кэш там инстанцируется, если класс полный
источник

RM

Roy Mustang in C++ Together 2.0
Alex Ф-ф-фэils!🌠︙
Ну вот твой кэш там инстанцируется, если класс полный
Я проверил, класс Cache вообще не создался, а вот static указатель в разных .cpp все равно имеет одинаковый адрес
источник

RM

Roy Mustang in C++ Together 2.0
Это в debug
источник

RM

Roy Mustang in C++ Together 2.0
Щас гляну в релизе, а потом чекну IDA
источник

RM

Roy Mustang in C++ Together 2.0
источник

RM

Roy Mustang in C++ Together 2.0
Это Cache.hpp файл
источник

RM

Roy Mustang in C++ Together 2.0
Кстати, без inline не хотел он принимать
источник

RM

Roy Mustang in C++ Together 2.0
Не компилировался и говорил что внешний символ не найден
источник