Допустим в Классе есть указатель, тогда каким образом можно его проверить на nullptr. При попытке использовать простой if( a == nullptr) выдаёт ошибку C2678.
error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "plane_metric::plane" (или приемлемое преобразование отсутствует)
Я пытаюсь сделать это:
if (this->frame[index] == nullptr) {
this->empty_index--;
this->busy_index++;
}
return this->frame[index];
frame - Это массив типа plane< Field> В Классе dynamic_frame; Field - Это Шаблон;
Навскидку пачка решений...
class Pointer1
{
public:
void* ptr = nullptr;
};
class Pointer2
{
public:
void* getptr() const { return ptr; }
private:
void* ptr = nullptr;
};
class Pointer3
{
public:
operator const void*() const { return ptr; }
private:
void* ptr = nullptr;
};
class Pointer4
{
public:
bool operator ==(const void * p) const { return ptr == p; }
private:
void* ptr = nullptr;
};
class Pointer5
{
public:
bool is_null() const { return ptr == nullptr; }
private:
void* ptr = nullptr;
};
int main(int argc, const char * argv[])
{
Pointer1 p1;
if (p1.ptr == nullptr) { cout << "p1 nullptr\n"; }
Pointer2 p2;
if (p2.getptr() == nullptr) { cout << "p2 nullptr\n"; }
Pointer3 p3;
if (p3 == nullptr) { cout << "p3 nullptr\n"; }
Pointer4 p4;
if (p4 == nullptr) { cout << "p4 nullptr\n"; }
Pointer5 p5;
if (p5.is_null()) { cout << "p5 nullptr\n"; }
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение
Отлаживаю динамическую библиотеку (DLL), хочу отредактировать код и продолжить, собственно открываю процесс через Local Windows Debugger , и пытаюсь...