массив юнитов, надо внутри массивов рассортировать в порядке инициативы. Я вызываю для TArray функцию сорт и передаю туда предикат
                  
                  
                  
                  
                  
                  Код вызова
                  
                  
                  Battle->Squads.Sort(FSortByInitiative());
                  
                  
                  
                  
                  
                  Код предиката
                  
                  
                  struct FSortByInitiative
                  
                  
                  {
                  
                  
                    FSortByInitiative()
                  
                  
                    {
                  
                  
                  
                  
                  
                    }
                  
                  
                  
                  
                  
                    bool operator()(const ABaseSquad* A, const ABaseSquad* B) const
                  
                  
                    {
                  
                  
                      return A->GetStat().Stat.Initiative > B->GetStat().Stat.Initiative;
                  
                  
                    }
                  
                  
                  };
                  
                  
                  
                  
                  
                  Мне компилятор выдает следующее https://sharetext.me/aeerhoilqc
                  
                  
                
как массив Squads обьявлен?
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  TArray<ABaseSquad*> Squads;
const ABaseSquad& A, const ABaseSquad& B попробуй
Поменяй с поинтера на ссылку
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Сработало спасибо, это потому что Sort разименовал указатель и разименованное значение пихает в функцию сортировки?
Потому что он передает ссылки на элементы, что бы не копировать их. Учти, что по этим ссылкам у тебя находятся указатели, а не сами объекты
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  А как это может стрельнуть?
nullptr засуть в масив, посмотри, стрельнет или нет
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Ну nullptr у меня не ожидается поидее.
Ну до релиза мы все так думаем)
Так ссылка не будет невалидной, а вот сам указатель, на который ссылка ссылается, очень может быть.
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Я немного запутался, где это может возникнуть? Я понимю что внутри массива поинтеры могут быть нулевыми, но внутри проверки, там же референсы не на поинтеры на само значение или нет?
По идее реф на поинтер
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Оу... А IsValid справится с проверкой такой?
Мы вот так делаем: MetaDataAssets.Sort([](const UMetaDataAsset& A, const UMetaDataAsset& B) { const UMetaDataAsset* APtr = &A; if(!APtr) return false; const UMetaDataAsset* BPtr = &B; if(!BPtr) return true; return APtr->Priority > BPtr->Priority; });
 Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Dregaadan
                          Garon
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Обсуждают сегодня