15 #ifndef INCLUDED_GR_RUNTIME_SPTR_MAGIC_H
16 #define INCLUDED_GR_RUNTIME_SPTR_MAGIC_H
32 static std::shared_ptr<gr::basic_block> fetch_initial_sptr(
gr::basic_block* p);
43 std::shared_ptr<T> get_initial_sptr(T* p)
45 return std::dynamic_pointer_cast<T, gr::basic_block>(
46 detail::sptr_magic::fetch_initial_sptr(p));
54 template <
typename T,
typename... Args>
55 std::shared_ptr<T> make_block_sptr(Args&&... args)
57 return get_initial_sptr(
new T(std::forward<Args>(args)...));