a = ~a+1;
вторник, 24 ноября 2015 г.
среда, 18 ноября 2015 г.
Variant в C++
Класс, принимающий любые типы
стырено отсюда http://insidecpp.ru/patterns/variant/
стырено отсюда http://insidecpp.ru/patterns/variant/
#include <memory> #include <string> class variant { public: template <class T> variant& operator = (T const& t) { typedef type<T> assign_type; object = std::auto_ptr<assign_type>(new assign_type(t)); return *this; } template <class T> operator T () { typedef type<T> assign_type; assign_type& type = dynamic_cast<assign_type&>(*object); return type.get(); } private: class base { public: virtual ~base() {} }; typedef std::auto_ptr<base> base_ptr; template <class T> class type : public base { public: type(T const& t) : object(t) { } T get() const { return object; } private: T object; }; base_ptr object; }; struct dummy { int a; int b; int c; }; int main() { variant v1, v2, v3, v4; v1 = 2; v2 = 5.0f; v3 = std::string("Pot of gold"); v4 = dummy(); int i = v1; float f = v2; std::string s = v3; dummy d = v4; return 0; }
среда, 11 ноября 2015 г.
ProtoBuf - гугловская замена XML
ProtoBuf - бинарный XML
https://developers.google.com/protocol-buffers/docs/cpptutorial
http://knzsoft.blogspot.com.by/2012/11/protobuf.html
https://developers.google.com/protocol-buffers/docs/cpptutorial
http://knzsoft.blogspot.com.by/2012/11/protobuf.html
Подписаться на:
Сообщения (Atom)