Участник
вот пример с конструкторами. если сделать сигу с вопросиками то тебе оба конструктора найдет(потому что они ничем не отличаются практически) не важно насколько у тебя сига длиннаяДлина сигны = ее уникальность.
Я не знаю какой бездарь будет делать короткую сигну, только наверное еблан, который не знает как она работает.
C++:
#include <iostream>
int x{};
int* ptr1 = &x;
int* ptr2 = nullptr;
class myCls
{
public:
template<class T> myCls(const T&)
{
if constexpr (std::is_same_v<T, int>)
{
int i = *(float*)(ptr2);
std::cout << i << std::endl;
}
else
{
int i = *(float*)(ptr1);
std::cout << i << std::endl;
}
};
};
int main()
{
myCls i{ int{} };
myCls f{ float{} };
}
вот был один конструктор, ты сделал на него сигу. потом габен добавил второй почти такой же конструктор(но с чуть чуть другими нюансами) и уже краш.
(условно).
а int3(CC) в конце это ваще полнейший рандом. там идёт выравнивание до 16 байт(а иногда и 32 и больше как компилятор захочет) с помощью этих CC. сколько на конце будет CC зависит от размера функции и от решений компилятора. если у тебя сига на конец функции вместе с CC, то стоит габену чуть чуть поменять функцию в начале(и следовательно поменять размер) и количество CC может измениться.