6 Şubat 2017 Pazartesi

serialization BOOST_SERIALIZATION_ASSUME_ABSTRACT

Giriş
BOOST_CLASS_EXPORT yazısına da göz atabilirsiniz.

Örnek 1
Ata sınıfımız olsun
class IField {

private:
  friend class boost::serialization::access;
  template<class Archive>
  void serialize(Archive&, const unsigned int) {}
};

BOOST_SERIALIZATION_ASSUME_ABSTRACT(IField)
Kalıtan sınıf için şöyle yaparız.
class Field: public IField {
public:
  ...

private:

  friend class boost::serialization::access;
  template<typename Archive>
  void serialize(Archive& archive, const unsigned int) {
    archive & boost::serialization::make_nvp("IField",
      boost::serialization::base_object<IField>(*this));
    archive & boost::serialization::make_nvp("Name", mName);
    archive & boost::serialization::make_nvp("Value", mValue);
  }

    std::string mName;
    T mValue;
};

graph BGL_FORALL_VERTICES

Şöyle yaparız.
Graph graph;


BGL_FORALL_VERTICES(v, graph, Graph) {
  ...
}
boost::vertices () çağrısı ile aynıdır.

pool pool_allocator Sınıfı

Tanımlama
Şöyle yaparız.
typedef boost::pool_allocator<int> pool;
Constructor
Şöyle yaparız.
std::vector<int, pool> v(pool);

date_time day_iterator Sınıfı

constructor
Şöyle yaparız
boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();
boost::gregorian::date today (now.date());
boost::gregorian::day_iterator dayIterator (today,-1);
operator ++ metodu
Şöyle yaparız
int howManyDays = ...;
for (; howManyDays != 0; ++dayIterator)
{
  ...;     
  howManyDays--;
}

31 Ocak 2017 Salı

graph remove_vertex metodu

Giriş
Elimizde bir graph olsun
typedef boost::adjacency_list <boost::setS, boost::vecS, ...,...,...> Graph;
Bir vertex'i silmeden önce tüm egde'leri silinir. Daha sonra vertex silinir. Şöyle yaparız.
boost::clear_vertex(v, graph)
boost::remove_vertex(v, graph);

30 Ocak 2017 Pazartesi

endian

Giriş
Şu satırı dahil ederiz.
#include <boost/endian/buffers.hpp>
big_uint64_buf_t Sınıfı
Constructor
Şöyle yaparız.
big_uint64_buf_t be;
operator = metodu
Şöyle yaparız.
uint64_t v= uint64_t(0x1011121314151617);

// Set values, implicit native_to_*
be= v;
value metodu
Şöyle yaparız.
v= be.value();
little_uint64_buf_t Sınıfı
Constructor
Şöyle yaparız.
little_uint64_buf_t l;
operator = metodu
Şöyle yaparız.
uint64_t v= uint64_t(0x1011121314151617);

l= v;
value metodu
Şöyle yaparız.
v= l.value();

property_map dynamic_properties Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <boost/property_map/property_map.hpp>
Tanımlama
Şöyle yaparız
typedef dynamic_properties Properties;
Constructor
Şöyle yaparız
Properties props(ignore_other_properties);
Şöyle yaparız.
boost::dynamic_properties props (boost::ignore_other_properties);
property metodu
Şöyle yaparız
props.property("url", get(&VertexProperties::url, graph));
Şöyle yaparız
map<string, string> attribute_name2name;
associative_property_map<map<string, string>> graphname_map(attribute_name2name);
props.property("title", graphname_map);