C++ Как определить оператор космического корабля для класса шаблона?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C++ Как определить оператор космического корабля для класса шаблона?

Сообщение Anonymous »

Я пытаюсь определить оператор космического корабля для простого строкового класса шаблона.

Код: Выделить всё

namespace mylib
{
template 
struct String
{
String()
{
*data = '\0';
}

String(const char *str)
{
size_t l = strlen(str);

if (l >= N)
throw std::runtime_error(str);

memcpy(data, str, l + 1);
}

auto operator(const String& str) const
{
return data  str.data;
}

char data[N];
};
}

void test_string()
{
mylib::String str1;
mylib::String str2("Hallo");
mylib::String str3 = "Hallo";
mylib::String str4 = "hallo";
assert(str2 == str3);
assert(str4 != str2);
assert(str2 < str4);
assert(str2  str2);
assert(str4 >= str2);

mylib::String str5 = "Hallo";
}
Но я получаю некоторые ошибки.

Код: Выделить всё

1>E:\Projects\Windows\ind\IndDlg.cpp(104,2): error C2678: binary '==': no operator found which takes a left-hand operand of type 'mylib::String' (or there is no acceptable conversion)
1>        'bool operator ==(const D2D1_SIZE_U &,const D2D1_SIZE_U &)': cannot convert argument 1 from 'mylib::String' to 'const D2D1_SIZE_U &'
Как определить оператор космического корабля для класса шаблона?
Он должен иметь возможность сравнивать строки разного размера:

Код: Выделить всё

String < String
например.
Я использую Visual Studio 2022 C++ 20.

Подробнее здесь: https://stackoverflow.com/questions/792 ... late-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C++ Как определить оператор космического корабля для класса шаблона?
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Оператор космического корабля с шаблоном варидового класса
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Оператор космического корабля с шаблоном варидового класса
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как именно оператор космического корабля PHP сравнивает строки, массивы и объекты
    Anonymous » » в форуме Php
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как использовать оператор космического корабля в операторе переключения
    Anonymous » » в форуме C++
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»