Невозможно определить разницу типов между типом указателя функции С++ и фактическим типом функции С++ при вызовеC++

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

Сообщение Anonymous »

Знаете, ребята, это был простой вопрос о проблеме с сигнатурами функций, которую я не смог решить.
Вы превратили его в уроки о том, как кодировать, а не кодировать, как не использовать указатели и использовать std, когда все это был простой, быстро взломанный тестовый код, в котором я хотел что-то попробовать и неожиданно наткнулся на проблему компилятора.
Так умно, как вы не смогли превратить использование Array в std::vector или tShaderData* arr[] = { ... } и добавьте пустое тело функции в QuickSort::SortAscending(), чтобы создать компилируемый пример. Позвольте мне помочь всем вам, Эйнштейнам, в этом вопросе (см. ниже; извините за дополнительный код в стиле C — это не относится к вопросу).
Это показывает прежде всего одно: что вы не являетесь заинтересованы в том, чтобы дать некоторую конкретную помощь по поставленному вопросу, но делаете предположения, предположения, которые не могут быть дальше от реальности (моего кодирования), и что вас, очевидно, больше беспокоит покровительство людям, ищущим помощи здесь, чем фактическое участие в каком-либо помогите.
Я знаю, что этот пост получит больше отрицательных голосов, потому что это стало токсичным местом, где самодовольные люди ненавидят, когда их критикуют и выставляют напоказ недостатки их характера, но я оставлю этот вопрос, чтобы сообщить вы, каким вы кажетесь людям, которым не нужно поддерживать свое эго под предлогом помощи, как вы.
Люди вроде вас — причина, по которой я люблю, и, вероятно, многие другие предпочитают обращаться к чатгпт, Клод или другие если им нужна помощь, то обращайтесь сюда, потому что в отличие от вас чатгпт всегда дружелюбен, всегда конструктивен, никогда не унижает, никогда не снисходителен, никогда не покровительствует, никогда мелочно не настаивает на соблюдении правил, прежде чем соблаговолит ответить, и никогда полный себя. С машиной приятнее разговаривать, чем с вами, ребята. Пойди разберись.

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

template < class DATA_T >
class QuickSort {
public:
typedef int (*tComparator) (const DATA_T*, const DATA_T*);
void SortAscending(DATA_T* buffer, size_t left, size_t right, tComparator compare) {}
};

typedef struct {
const char* name;
const char* vs;
const char* fs;
Shader* shader;
} tShaderData;

class ShaderCode : public Shader {
public:
Array* m_shaders;

void CreateShaders(void);

ShaderCode()
: m_shaders(nullptr)
{ }

static int CompareShaders(const tShaderData** s1, const tShaderData** s2);
};

int ShaderCode::CompareShaders(const tShaderData** s1, const tShaderData** s2) {
return strcmp((*s1)->name, (*s2)->name);
}

void ShaderCode::CreateShaders(void) {
tShaderData* shaders[] ={
&colorShader,
&textureShader,
&outlineShader,
&boxBlurShader,
&fxaaShader,
&gaussBlurShader,
&fireworks1Shader,
&fireworks2Shader,
&fireworks3Shader,
&fireworks4Shader
};
QuickSort qs;
qs.SortAscending(shaders, 0, sizeof(shaders) / sizeof(shaders[0]), ShaderCode::CompareShaders);
//m_shaders->SortAscending((QuickSort::tComparator) ShaderCode::CompareShaders);
}
 — это самореализуемый класс управления массивами, аналогичный std::vector.
Сообщение об ошибке:

QuickSort::SortAscending: не удалось преобразовать все типы аргументов.

Скомпилировано с помощью VS 2022, C++ 20, режим отладки. Все функции — __decl. Я не могу здесь определить разницу в типах.
Изменить:
  • Это весь журнал ошибок. Если бы компилятор рассказал мне, что он видит и что он ожидает, я бы, вероятно, не писал здесь.
  • Если я приведу тип параметра ShaderCode::CompareShaders, мой код компилируется. Но я нахожу это весьма подозрительным.
Редактировать 2:
Очень утомительно, как меня надрали как писать код на C++, когда это всего лишь короткий, быстро взломанный фрагмент кода, обнаруживающий проблемы в некоторых сигнатурах функций.
3 уже отклонили это все более токсичное сообщество. Люди, подобные вам, превращают ТАК в дерьмо.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Доктест: Как определить разницу между ожидаемым и фактическим результатом?
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Как устранить разницу между bootRun и фактическим запуском jar?
    Гость » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Гость
  • Избегайте задержки между Play() и фактическим воспроизведением.
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Почему мой прогноз Auto ARIMA не соответствует фактическим данным о спросе с четкими тенденциями и сезонностью?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Создание библиотеки KMP с фактическим/ожидаемым
    Anonymous » » в форуме Android
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

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