Итак, у меня есть массив структур и класс, который использует этот массив. Конструктор должен ссылаться на массив структур, которые являются константами. Я борюсь с передачей массива структур в качестве ссылки, чтобы конструктор класса мог его использовать. Поскольку массив структур не меняется, нет необходимости его копировать, мне просто нужно сослаться на него. Вот мой текущий код, который генерирует ошибки.
struct c_cs_pair_t
{
const wchar_t c;
const wchar_t* cs;
};
class Converter
{
protected:
size_t _length;
const c_cs_pair_t(& _pairs)[];
public:
Converter ( const c_cs_pair_t(& pairs)[] ) : _pairs(pairs) {
_length = sizeof ( pairs ) / sizeof( c_cs_pair_t );
}
};
const c_cs_pair_t c2cspairs[] =
{ { L'\n', L"\\n" }
, { L'\0', L"\\0" }
, { L'\\', L"\\\\" }
, { L'[', L"\\[" }
, { L']', L"\\]" }
, { L'.', L"\\." }
, { L':', L"\\:" }
, { L'\u0008', L"\\b" }
, { L'\u000c', L"\\f" }
, { L'\u000a', L"\\n" }
, { L'\u000d', L"\\r" }
, { L'\u0009', L"\\t" }
, { L'\u000b', L"\\v" }
, { L'\u0000', L"\\0" }
};
const Converter converter ( c2cspairs );
Когда я компилирую, я получаю ошибки компиляции, жалуясь на отсутствие подходящего кандидата.
Как передать массив конструктору, чтобы класс методы могут использовать это. Массив знает свой размер неявно, так как он является константой.