Giriş
Şu satırı dahil ederiz.
boost::any_cast metodu boost::any yapısında saklanan nesneyi istediğimiz tipe çevirmek için kullanılır.
Constructor - value
#include <boost/any.hpp>
Bu sınıf sakladığı tipin ValueType olmasını ister. Bunun ne olduğunu tam anlamadım.boost::any_cast metodu boost::any yapısında saklanan nesneyi istediğimiz tipe çevirmek için kullanılır.
Constructor - value
Metodun içi şöyle. Small object optimization yapmıyor. Her nesneyi heap'te saklıyor.
Şöyle yaparız.
Şöyle yaparız.
template<typename ValueType>
any(const ValueType & value)
: content(new holder<
BOOST_DEDUCED_TYPENAME remove_cv<
BOOST_DEDUCED_TYPENAME decay<const ValueType>::type>::type>(value))
{
}
ÖrnekŞöyle yaparız.
auto *foo = new Foo;
boost::any var(*foo);
delete foo;
Şöyle yaparız.Foo foo;
boost::any var(foo);
Şöyle yaparız.boost::any var(Str{}); // beware of "most vexing parse"
empty metoduŞöyle yaparız.
std::cout << var.empty() << std::endl;
operator = metodu
Şöyle yaparız.
boost::any var;
var = std::string("StackOverflow");
Bu sınıfa atanan bir değer artık sadece boost::any_cast ile geri alınabilir. Şöyle yaparız.
std::cout << boost::any_cast<std::string>(var) << std::endl;
Kullanım
Örnek
Şöyle yaparız.
std::map<std::string, boost::any> map;
boost::any value = std::string("Hello");
map.insert(std::make_pair(std::string("Key"), value));
Hiç yorum yok:
Yorum Gönder