С следующим способом мы можем поменять местами две переменных A
и B
своп две переменные с XOR
A = A XOR B
B = A XOR B
A = A XOR B
Я хочу реализовать такой метод в C++, которые работают со всеми типами (междунар, поплавок, полукокса, .. .), а также структуры. Поскольку мы знаем, что все типы данных, включая структуры, занимают определенное пространство памяти, например, 4 байта, 8 байтов
По-моему, этот метод для подкачки должен работать со всеми типами, исключая типы на основе указателей. Он должен менять содержимое памяти, что биты, из двух переменных
Мой вопрос
Я понятия не имею, как я могу реализовать такой метод в C++, который работает со структурами (те, не содержат каких-либо указателей). Кто-нибудь может мне помочь, пожалуйста?
Вопрос в том, почему? Почему у людей возникают проблемы с объявлением простой временной переменной вместо того, чтобы тратить время и, вероятно, деньги на такие глупые оптимизации? –
На 'float' даже? – harold
@ThorstenDittmar вы правы, но я не хочу использовать дополнительную переменную –