22 #include <type_traits> 31 virtual T& operator*() = 0;
32 virtual T* operator->() = 0;
35 static std::shared_ptr<ValueProxy<T>> create(
const Pool*,
const InputTag&);
39 std::shared_ptr<const U> get_from_pool(
const Pool*,
const InputTag&);
45 using container_t =
typename std::remove_const<T>::type;
48 virtual T& operator*()
override;
49 virtual T* operator->()
override;
50 virtual T*
get()
override;
53 std::shared_ptr<const container_t> raw_value;
59 using container_t = std::vector<typename std::remove_const<T>::type>;
62 virtual T& operator*()
override;
63 virtual T* operator->()
override;
64 virtual T*
get()
override;
68 std::shared_ptr<const container_t> raw_value;