| and_then(F &&f) & | tl::optional< T & > | inline | 
  | and_then(F &&f) && | tl::optional< T & > | inline | 
  | and_then(F &&f) const & | tl::optional< T & > | inline | 
  | and_then(F &&f) const && | tl::optional< T & > | inline | 
  | and_then(F &&f) & | tl::optional< T & > | inline | 
  | and_then(F &&f) && | tl::optional< T & > | inline | 
  | and_then(F &&f) const & | tl::optional< T & > | inline | 
  | and_then(F &&f) const && | tl::optional< T & > | inline | 
  | conjunction(U &&u) const | tl::optional< T & > | inline | 
  | conjunction(U &&u) const | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) & | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) const & | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) && | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) const && | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) & | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) const & | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) && | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) const && | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) & | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) const & | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) && | tl::optional< T & > | inline | 
  | disjunction(const optional &rhs) const && | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) & | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) const & | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) && | tl::optional< T & > | inline | 
  | disjunction(optional &&rhs) const && | tl::optional< T & > | inline | 
  | emplace(U &&u) noexcept | tl::optional< T & > | inline | 
  | emplace(Args &&... args) | tl::optional< T & > | inline | 
  | emplace(std::initializer_list< U > il, Args &&... args) | tl::optional< T & > | inline | 
  | has_value() const noexcept | tl::optional< T & > | inline | 
  | has_value() const noexcept | tl::optional< T & > | inline | 
  | map(F &&f) & | tl::optional< T & > | inline | 
  | map(F &&f) && | tl::optional< T & > | inline | 
  | map(F &&f) const & | tl::optional< T & > | inline | 
  | map(F &&f) const && | tl::optional< T & > | inline | 
  | map(F &&f) & | tl::optional< T & > | inline | 
  | map(F &&f) && | tl::optional< T & > | inline | 
  | map(F &&f) const & | tl::optional< T & > | inline | 
  | map(F &&f) const && | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) & | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) && | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) const & | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) const && | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) & | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) && | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) const & | tl::optional< T & > | inline | 
  | map_or(F &&f, U &&u) const && | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) & | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) && | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) const & | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) const && | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) & | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) && | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) const & | tl::optional< T & > | inline | 
  | map_or_else(F &&f, U &&u) const && | tl::optional< T & > | inline | 
  | operator bool() const noexcept | tl::optional< T & > | inlineexplicit | 
  | operator bool() const noexcept | tl::optional< T & > | inlineexplicit | 
  | operator*() noexcept | tl::optional< T & > | inline | 
  | operator*() const noexcept | tl::optional< T & > | inline | 
  | operator*() & | tl::optional< T & > | inline | 
  | operator*() const & | tl::optional< T & > | inline | 
  | operator*() && | tl::optional< T & > | inline | 
  | operator*() const && | tl::optional< T & > | inline | 
  | operator->() const noexcept | tl::optional< T & > | inline | 
  | operator->() noexcept | tl::optional< T & > | inline | 
  | operator->() const | tl::optional< T & > | inline | 
  | operator->() | tl::optional< T & > | inline | 
  | operator=(nullopt_t) noexcept | tl::optional< T & > | inline | 
  | operator=(const optional &rhs)=default | tl::optional< T & > |  | 
  | operator=(U &&u) | tl::optional< T & > | inline | 
  | operator=(const optional< U > &rhs) noexcept | tl::optional< T & > | inline | 
  | operator=(nullopt_t) noexcept | tl::optional< T & > | inline | 
  | operator=(const optional &rhs)=default | tl::optional< T & > |  | 
  | operator=(optional &&rhs)=default | tl::optional< T & > |  | 
  | operator=(U &&u) | tl::optional< T & > | inline | 
  | operator=(const optional< U > &rhs) | tl::optional< T & > | inline | 
  | operator=(optional< U > &&rhs) | tl::optional< T & > | inline | 
  | tl::detail::optional_delete_ctor_base::operator=(const optional_delete_ctor_base &)=default | tl::detail::optional_delete_ctor_base< T, EnableCopy, EnableMove > | private | 
  | tl::detail::optional_delete_ctor_base::operator=(optional_delete_ctor_base &&) noexcept=default | tl::detail::optional_delete_ctor_base< T, EnableCopy, EnableMove > | private | 
  | tl::detail::optional_delete_assign_base::operator=(const optional_delete_assign_base &)=default | tl::detail::optional_delete_assign_base< T, EnableCopy, EnableMove > | private | 
  | tl::detail::optional_delete_assign_base::operator=(optional_delete_assign_base &&) noexcept=default | tl::detail::optional_delete_assign_base< T, EnableCopy, EnableMove > | private | 
  | optional() noexcept | tl::optional< T & > | inline | 
  | optional(nullopt_t) noexcept | tl::optional< T & > | inline | 
  | optional(const optional &rhs) noexcept=default | tl::optional< T & > |  | 
  | optional(optional &&rhs)=default | tl::optional< T & > |  | 
  | optional(U &&u) noexcept | tl::optional< T & > | inline | 
  | optional(const optional< U > &rhs) noexcept | tl::optional< T & > | inlineexplicit | 
  | optional() noexcept=default | tl::optional< T & > |  | 
  | optional(nullopt_t) noexcept | tl::optional< T & > | inline | 
  | optional(const optional &rhs)=default | tl::optional< T & > |  | 
  | optional(optional &&rhs)=default | tl::optional< T & > |  | 
  | optional(detail::enable_if_t< std::is_constructible< T, Args... >::value, in_place_t >, Args &&... args) | tl::optional< T & > | inlineexplicit | 
  | optional(detail::enable_if_t< std::is_constructible< T, std::initializer_list< U > &, Args &&... >::value, in_place_t >, std::initializer_list< U > il, Args &&... args) | tl::optional< T & > | inlineexplicit | 
  | optional(U &&u) | tl::optional< T & > | inline | 
  | optional(U &&u) | tl::optional< T & > | inlineexplicit | 
  | optional(const optional< U > &rhs) | tl::optional< T & > | inline | 
  | optional(const optional< U > &rhs) | tl::optional< T & > | inlineexplicit | 
  | optional(optional< U > &&rhs) | tl::optional< T & > | inline | 
  | optional(optional< U > &&rhs) | tl::optional< T & > | inlineexplicit | 
  | or_else(F &&f) & | tl::optional< T & > | inline | 
  | or_else(F &&f) & | tl::optional< T & > | inline | 
  | or_else(F &&f) && | tl::optional< T & > | inline | 
  | or_else(F &&f) && | tl::optional< T & > | inline | 
  | or_else(F &&f) const & | tl::optional< T & > | inline | 
  | or_else(F &&f) const & | tl::optional< T & > | inline | 
  | or_else(F &&f) const && | tl::optional< T & > | inline | 
  | or_else(F &&f) const && | tl::optional< T & > | inline | 
  | or_else(F &&f) & | tl::optional< T & > | inline | 
  | or_else(F &&f) & | tl::optional< T & > | inline | 
  | or_else(F &&f) && | tl::optional< T & > | inline | 
  | or_else(F &&f) && | tl::optional< T & > | inline | 
  | or_else(F &&f) const & | tl::optional< T & > | inline | 
  | or_else(F &&f) const & | tl::optional< T & > | inline | 
  | or_else(F &&f) const && | tl::optional< T & > | inline | 
  | or_else(F &&f) const && | tl::optional< T & > | inline | 
  | reset() noexcept | tl::optional< T & > | inline | 
  | reset() noexcept | tl::optional< T & > | inline | 
  | swap(optional &rhs) noexcept | tl::optional< T & > | inline | 
  | swap(optional &rhs) noexcept(std::is_nothrow_move_constructible< T >::value &&detail::is_nothrow_swappable< T >::value) | tl::optional< T & > | inline | 
  | take() | tl::optional< T & > | inline | 
  | take() | tl::optional< T & > | inline | 
  | transform(F &&f) & | tl::optional< T & > | inline | 
  | transform(F &&f) && | tl::optional< T & > | inline | 
  | transform(F &&f) const & | tl::optional< T & > | inline | 
  | transform(F &&f) const && | tl::optional< T & > | inline | 
  | transform(F &&f) & | tl::optional< T & > | inline | 
  | transform(F &&f) && | tl::optional< T & > | inline | 
  | transform(F &&f) const & | tl::optional< T & > | inline | 
  | transform(F &&f) const && | tl::optional< T & > | inline | 
  | value() | tl::optional< T & > | inline | 
  | value() const | tl::optional< T & > | inline | 
  | value() & | tl::optional< T & > | inline | 
  | value() const & | tl::optional< T & > | inline | 
  | value() && | tl::optional< T & > | inline | 
  | value() const && | tl::optional< T & > | inline | 
  | value_or(U &&u) const &noexcept | tl::optional< T & > | inline | 
  | value_or(U &&u) &&noexcept | tl::optional< T & > | inline | 
  | value_or(U &&u) const & | tl::optional< T & > | inline | 
  | value_or(U &&u) && | tl::optional< T & > | inline | 
  | value_type typedef | tl::optional< T & > |  | 
  | value_type typedef | tl::optional< T & > |  | 
  | ~optional()=default | tl::optional< T & > |  | 
  | ~optional()=default | tl::optional< T & > |  |