29 Eylül 2017 Cuma
property_tree ptree_bad_data Exception Sınıfı
27 Eylül 2017 Çarşamba
graph make_transform_value_property_map metodu
Giriş
Şu satırı dahil ederiz.
Birinci parametre çağrılacak metod veya üye alandır. İkinci parametre ise vertex dizisidir.
Örnek
Elimizde bir graph olsun
Şu satırı dahil ederiz.
#include <boost/property_map/transform_value_property_map.hpp>
Graph'ı dolaşırken belirtilen metodu çağırarak graph vertex'inden bilgi almayı sağlar.Birinci parametre çağrılacak metod veya üye alandır. İkinci parametre ise vertex dizisidir.
Örnek
Elimizde bir graph olsun
using Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS,
std::shared_ptr<Foo> >;
Bu graph'ı dolduralım ve daha sonra ekranda göstermek isteyelim. Şöyle yaparız.#include <boost/graph/graph_utility.hpp>
void DebugPrint(std::string const& caption, Graph const& g) {
auto name_map = boost::make_transform_value_property_map(std::mem_fn(&Foo::name),
get(boost::vertex_bundle, g));
boost::print_graph(g, name_map, std::cout << "==== " << caption << "\n");
}
Metodu çağırmak için şöyle yaparız.DebugPrint("graph", g);
Çıktı olarak şunu alırız==== graph
Foo 0 --> Foo 1
Foo 1 -->
Etiketler:
graph,
make_transform_value_property_map
range Provide Ranges
any_range Sınıfı
Şu satırı dahil ederiz.
Tanımlama
Şöyle yaparız
Şöyle yaparız.
Açıklaması şöyle
Örnek ver
irange Sınıfı
Örnek ver
Şu satırı dahil ederiz.
#include <boost/range/any_range.hpp>
Bu sınıf boost adaptorlerinin döndürdüğü range nesnesini sarmalayabilir.Tanımlama
Şöyle yaparız
boost::any_range<std::shared_ptr<Foo>,boost::forward_traversal_tag> range;
Şöyle yaparız. Burada reference type ta belirtiliyor.using FooRange = boost::any_range<FooPtr, boost::forward_traversal_tag, FooPtr const>;
ÖrnekŞöyle yaparız.
std::vector<int> myInts = { 1,2,3,4,5 };
boost::any_range<const double,boost::forward_traversal_tag,const double> range =
myInts | boost::adaptors::transformed(
[]( int x ) { return static_cast<double>( x ); } );
for ( double x : range )
std::cout << x << "\n";
counting_range SınıfıAçıklaması şöyle
"A Range provides iterators for accessing a half-open range [first,one_past_last) of elements..."Şöyle yaparız.
// Days of the week
for (auto const &i : boost::counting_range(0, 7))
//for (int i = 0; i <= 6; i++)
{
...
}
istream_range SınıfıÖrnek ver
irange Sınıfı
Örnek ver
26 Eylül 2017 Salı
bootstrap komutu
Giriş
Bu işe başlamadan önce Windows için hazırlanmış olan prebuilt binary dosyalarını indirip kullanmak çok daha kolay. Bu yöntemi tavsiye ederim.
Precompiled Binary Seçenekleri
Açıklaması şöyle
Önce boost Downloads dizinine indirilir ve /usr/include gibi bir dizine açılır. Şöyle yaparız.
Şöyle yaparız.
Bu işe başlamadan önce Windows için hazırlanmış olan prebuilt binary dosyalarını indirip kullanmak çok daha kolay. Bu yöntemi tavsiye ederim.
Precompiled Binary Seçenekleri
Açıklaması şöyle
Setup executables have command line switches /SP-, /SILENT, /VERYSILENT, that disable installation messages.Devam
/NOCANCEL is also worthy to note.
Run them with /? to get full list of supported options.
Önce boost Downloads dizinine indirilir ve /usr/include gibi bir dizine açılır. Şöyle yaparız.
tar zxvf ~/Downloads/boost_1_62_0.tar.gz -C /usr/include/
bjam ve b2 uygulamalarını üretmek için kullanılır. Şöyle yaparız.cd C:\boost_1_61_0Çalışmaya başlayınca şu çıktıyı alırız.
bootstrap.bat
C:\Boost\boost_1_63_0>bootstrap.bat
Building Boost.Build engine
...
gcc seçeneğiŞöyle yaparız.
cd <boost_root>\tools\build
bootstrap.bat gcc
cd ..\..
tools\build\b2.exe --prefix=<boost_install_root> toolset=gcc link=static
--prefix seçeneği
Şöyle yaparız. Bu seçeneği kullanırsak b2 komutuna --prefix seçeneği kullanmaya gerek kalmaz.
Şöyle yaparız.
Şöyle yaparız.
./bootstrap.sh --prefix=/usr/local
--with-libraries seçeneğiŞöyle yaparız.
/bootstrap.sh --prefix=/usr/local/boost --with-libraries=filesystem,system
--with-python-root seçeneğiŞöyle yaparız.
./bootstrap.sh --with-python-root=/cygdrive/c/Python27/
--with-toolset seçeneği
Şöyle yaparız../bootstrap.sh --with-toolset=clang
Kaydol:
Kayıtlar (Atom)