Информация об изменениях

Сообщение Re[5]: Можно ли сделать универсальный шаблон для разных комб от 19.01.2023 19:53

Изменено 19.01.2023 20:35 Videoman

Re[5]: Можно ли сделать универсальный шаблон для разных комбинаций whar_t и char
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Так чего именно не хватает в описании из того, что видно по коду?


Из описания замучаешься восстанавливать не работающий код. Куча вариантов может быть, тебе не очевидных.

V>>struct s_trait_t;


ЕМ>Без этого костыля никак?


Может так:
#include <type_traits>

template <typename DstType, typename SrcType>
void s (DstType * Dst, SrcType const * Src) 
{
    using IntType = typename std::make_unsigned<SrcType>::type;

    *Dst = static_cast<DstType>(static_cast<IntType>(*Src));

}

void f () {

  wchar_t * W;
  char * C;

  s (W, W);
  s (C, C);
  s (W, C);

}

int main()
{
  f();
}
Re[5]: Можно ли сделать универсальный шаблон для разных комб
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Так чего именно не хватает в описании из того, что видно по коду?


Из описания замучаешься восстанавливать не работающий код. Куча вариантов может быть, тебе не очевидных.

V>>struct s_trait_t;


ЕМ>Без этого костыля никак?


Может так ?:
#include <type_traits>

template <typename DstType, typename SrcType>
void s (DstType * Dst, SrcType const * Src) 
{
    using IntType = typename std::make_unsigned<SrcType>::type;

    *Dst = static_cast<DstType>(static_cast<IntType>(*Src));

}

void f () {

  wchar_t * W;
  char * C;

  s (W, W);
  s (C, C);
  s (W, C);

}

int main()
{
  f();
}