Форум программистов, компьютерный форум CyberForum.ru

Xor на не примитивный тип - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию http://www.cyberforum.ru/cpp-beginners/thread1025697.html
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию 1)скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А». 2) Подсчитать количество слов в F2.
C++ Создать массив, элементами которого являются структуры – список учеников Задание: Создать массив, элементами которого являются структуры – список учеников (хранятся фамилия, класс, школа). Вывести информацию по ученикам, фамилии которых начинаются на букву, введенную пользователем. Не могу понять каким образом сделать вывод по первой букве. #include <conio.h> #include <stdio.h> #include <iostream> using std::cout; using std::endl; using std::cin; http://www.cyberforum.ru/cpp-beginners/thread1025694.html
табулирование функции с массивами и без C++
y=(x-1)(x-2)(x-3)
Напечатать последовательность, удалив из слов заданную букву C++
дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 символов; между соседними словами - производное кол-во пробелов, за последним словом точка. Напечатать последовательность, удалив из слов заданную букву
C++ Граф - существует ли связь между двумя вершинами в обоих направлениях http://www.cyberforum.ru/cpp-beginners/thread1025643.html
В файле задан ориентированный граф. В первой строчке записано число N, которое обозначает кол-во вершин в графе. Во второй строчке записано число E, которое обозначает кол-во ребер в графе. Далее следуют E строчек, где каждая строчка содержит два числа, которые описывают ребро <i,j> (i и j - это номера вершин, направление ребра - это из i в j). Написать функцию existPath (file in):boolean,...
C++ template и using Как правильго затемплейтить данный код?:#include <iostream> #include <iterator> #include <string> #include <map> #include <algorithm> using map_ss = std::map<std::string, int>; struct Pair { подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
02.12.2013, 16:04     Xor на не примитивный тип
Напрямую, нельзя, потому что далеко не факт, что для них определён оператор ^, а произвольные memberwise-конструкции в C++ не предусмотрены, только несколько специальных случаев. Разумеется, тем, кто не боится грязи, никто не мешает работать с памятью напрямую:
C++
1
2
3
4
5
6
7
8
9
10
11
template<typename T>
T Xor(const T& lhs, const T& rhs)
{
    T rv(lhs);
    unsigned char* dst = reinterpret_cast<unsigned char*>(&rv);
    unsigned char* const end = dst + sizeof(T);
    const unsigned char* src = reinterpret_cast<const unsigned char*>(&rhs);
    for(; dst != end; ++dst, ++src)
        *dst ^= *src;
    return rv;
}
 
Текущее время: 06:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru