template <typename T> T & unwrap(T & val) (1) template <typename T> T & unwrap(std::reference_wrapper<T> & val) (2) template <typename T> const T & unwrap(const T & val) (3) template <typename T> const T & unwrap(const std::reference_wrapper<T> & val) (4) (1) template <typename T> T & unwrap(T & val) Parameters T & val (2) template <typename T> T & unwrap(std::reference_wrapper<T> & val) MISSING Parameters std::reference_wrapper<T> & val (3) template <typename T> const T & unwrap(const T & val) MISSING Parameters const T & val (4) template <typename T> const T & unwrap(const std::reference_wrapper<T> & val) MISSING Parameters const std::reference_wrapper<T> & val