массивы размера как типы параметров функции в C ++

Я использую шаблоны для своей структуры, например:

#pragma pack(push, 1)
template <typename T>
struct S
{
   T t;

   inline void Set(const T& val) { t = val; }
}
#pragma pack(pop)

T может быть float, int, short или char [10], char [1] или char [2] (желательно любой длины).

Хотя приведенное выше, кажется, довольно хорошо работает для интегральных типов, у меня возникли трудности с реализацией части char [n] в этом:

  1. Мне нужно использовать strncpy или memcpy вместо оператора присваивания
  2. Использование выше, компилятор жалуется на подпись (const char [2] & val) и мой вызов ее через s.Set ("T").
  3. Интерфейс между S с целочисленным и символьным типами должен быть таким же, как и общий код, который их вызывает (и его не волнует, к какому типу они относятся).
0
задан chriskirk 31 October 2011 в 18:45
поделиться