У меня есть класс, который выделяет локальный массив стека. Вот как он должен быть распределен:
MyClass<char, 255> my_arr{};
Это должно создать локальный член, который будет char m_Arr[255]
.
Вот как он определяется:
private:
Type* m_Buffer[Size];
unsigned int m_Size;
Вот класс с конструктором:
template<class Type, unsigned int Size>
class MyClass {
public:
MyClass() : m_Size{}
{
}
Когда возникают ошибки?
Они происходят во время компиляции. Функции моего потока - constexpr (он предназначен для шифрования строки и предлагает несколько функций, таких как разделение, переход к нижнему регистру, выделение дополнительной памяти в куче, если необходимо, и т. Д. c.)
** Что ошибки? *
Как только я добавляю следующий оператор:
operator Type*()
{
return this->m_Buffer;
}
или
operator const Type*()
{
return this->m_Buffer;
}
, я получаю следующие ошибки:
После удаления я получаю сообщение об ошибке, что экземпляр класса не может быть преобразован в LPCTSTR (я передаю его API, который принимает этот тип аргумента)
Если я заменю его следующим:
Type* Get() {
return this->m_Buffer
}
и вызову его в функции API, все ошибки вернутся.
Примечание: Я пробовал чтобы создать уменьшенную версию этого кода, но я не могу воссоздать ее нигде, кроме своего кода (300 строк кода). Я сделаю все возможное, чтобы предоставить достаточно информации, чтобы, надеюсь, решить эту проблему.