Шаблон в С++ (код)

195
21 апреля 2018, 19:11

У меня есть код. Пробовал найти в интернете, но не все понял. "template" используеться для подстановки значений псевдонима на место шаблона, но как єто работает?

Есть пример (C++):

template <typename T, typename T_half, int size>
class double_uint
{
 private:
 void fromstring(const std::string &s);
 std::string tostring(void) const;
 public:
 T lo_, hi_;
 enum type_size
{
  tsize = size,
  hsize = size / 2,
  qsize = size / 4
};
double_uint(const double_uint &u) : lo_(u.lo_), hi_(u.hi_) {}
double_uint(const T_half &hi1, const T_half &hi2, const T_half &lo1, const T_half &lo2)
: lo_(T(lo2) + (T(lo1) << qsize)),
hi_(T(hi2) + (T(hi1) << qsize)) {}
double_uint(const T &hi, const T &lo) : lo_(lo), hi_(hi) {}
explicit double_uint(const T &lo) : lo_(lo), hi_() {}
explicit double_uint(const std::string &s) {fromstring(s);};
double_uint(void) : lo_(), hi_() {}
explicit double_uint(const unsigned char *c) {memcpy(this, c, sizeof(*this));}
explicit double_uint(size_t len, const unsigned char *c)
{
if (len >= sizeof(*this))
{
memcpy(this, c, sizeof(*this));
}
else
{
memcpy(this, c, len);
memset(reinterpret_cast<unsigned char *>(this) + len, 0, sizeof(*this) - len);
}
}

Есть связь с классом ниже, правильно? Если я правильно понял, то класс отвечает за преобразование из "string"? Объясните код, если вас не затруднит.

READ ALSO
expression must have a constant value

expression must have a constant value

Ругается на BRICKSIZEx И BRICKSIZE

219
Visual Studio 2017 не выводит символы

Visual Studio 2017 не выводит символы

Пишу прогу на С++При запуске кода в консоли вместо символов знаки вопроса в квадрате

215
Сделать несколько replace

Сделать несколько replace

Есть строка, например <p:+79993333311@examplecom>, где +79993333311 это номер телефона, причем он может быть в разных форматах, предлагаю на этом не зацикливаться

211
Конвертация [object File] в array

Конвертация [object File] в array

Как можно преобразовать [object File] в array? На входе имею файл с расширениемhtml и нужно его содержимое внести в массив в любом виде ( весь файл str в один...

230