Size: a a a

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

2020 February 26

AB

Artöm Bakri Al-Sarmini in cxx.Дискуссионная
Roy Mustang
@das_3sz3tt если typename Callback = void сделаю, то [[maybe_unused]] нужно оставлять?
А, он принимается. Тогда не void а скажем int. Да, нужно оставить
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Никита Кучеренко
Ну Анриала С++ модифицированые + блюпринты
Да там не плюсы фактически же
источник

AB

Artöm Bakri Al-Sarmini in cxx.Дискуссионная
Но это хуйня я думаю, лучше перегрузить
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Там еще меньшие плюсы, чем CLI
источник

AB

Artöm Bakri Al-Sarmini in cxx.Дискуссионная
Как вариант
struct always_true_f {
   constexpr bool operator() const { return true; }
};

template <typename T, typename Callback = always_true_f, typename = std::enable_if_t<std::is_same_v<T, CServer> || std::is_same_v<T, CClient>, T>>
void RemoveConnection(const uint32_t connection, [[maybe_unused]] Callback fCallback = {});
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
В общем лучше иди пиши крудье на шарпе, для гейдева полезнее, чем пыха
источник

НК

Никита Кучеренко in cxx.Дискуссионная
Kirill Kaymakov
Да там не плюсы фактически же
Ну Генно модифицированные)) Хоте если Для ДВижка Инструменты  какието допиливать то без С++ никуда
источник

RM

Roy Mustang in cxx.Дискуссионная
@das_3sz3tt да хотел в одну функцию запихнуть по возможности, они все равно constexpr
источник

RM

Roy Mustang in cxx.Дискуссионная
Сделал вот так, попытался скомпилировать проект, но код ругается, что второй аргумент типа не указан, хотя он может быть unused
источник

RM

Roy Mustang in cxx.Дискуссионная
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Никита Кучеренко
Я в Гейм дев Ползу окольными путями
Тут без вышки тебе путь закрыт
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
В рендер и движки
источник

AB

Artöm Bakri Al-Sarmini in cxx.Дискуссионная
Roy Mustang
@das_3sz3tt да хотел в одну функцию запихнуть по возможности, они все равно constexpr
Тогда я бы сделал дефолтом тег
struct not_a_cb_tag {
   explicit constexpr not_a_cb_tag() = default;
};

template <typename T, typename Callback =
not_a_cb_tag
, typename = std::enable_if_t<std::is_same_v<T, CServer> || std::is_same_v<T, CClient>, T>>
   void RemoveConnection(const uint32_t connection, [[maybe_unused]] Callback fCallback = not_a_cb_tag{})
   {
       if(const auto itr = m_connection.find(connection); itr != m_connection.end())
       {
         
           if constexpr (std::is_same_v<T, CServer>) {
               m_connectionAppID.erase(registry.get<T>(itr->second).base_.app_id);
           }
           registry.destroy(itr->second);
           m_connection.erase(connection);
       }

       // хз куда
       if constexpr (!std::is_same_v<Callback,
not_a_cb_tag
>) {
           fCallback(stuff);
       }
   }
источник

RM

Roy Mustang in cxx.Дискуссионная
Artöm Bakri Al-Sarmini
Тогда я бы сделал дефолтом тег
struct not_a_cb_tag {
   explicit constexpr not_a_cb_tag() = default;
};

template <typename T, typename Callback =
not_a_cb_tag
, typename = std::enable_if_t<std::is_same_v<T, CServer> || std::is_same_v<T, CClient>, T>>
   void RemoveConnection(const uint32_t connection, [[maybe_unused]] Callback fCallback = not_a_cb_tag{})
   {
       if(const auto itr = m_connection.find(connection); itr != m_connection.end())
       {
         
           if constexpr (std::is_same_v<T, CServer>) {
               m_connectionAppID.erase(registry.get<T>(itr->second).base_.app_id);
           }
           registry.destroy(itr->second);
           m_connection.erase(connection);
       }

       // хз куда
       if constexpr (!std::is_same_v<Callback,
not_a_cb_tag
>) {
           fCallback(stuff);
       }
   }
Как это работает?
источник

НК

Никита Кучеренко in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Тут без вышки тебе путь закрыт
Меня Интересет имменно программирование игровой логики и гейм плея
источник

KK

Kirill Kaymakov in cxx.Дискуссионная
Никита Кучеренко
Меня Интересет имменно программирование игровой логики и гейм плея
И все равно встретишь кучу всякого линала и тервера
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Никита Кучеренко
Меня Интересет имменно программирование игровой логики и гейм плея
Тогда нафиг тебе кресты. Твои тулы: луа, шарп и юнька
источник

KK

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

НК

Никита Кучеренко in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Тогда нафиг тебе кресты. Твои тулы: луа, шарп и юнька
UE4
источник

AB

Artöm Bakri Al-Sarmini in cxx.Дискуссионная
Roy Mustang
Как это работает?
Переписал
источник