Open3D (C++ API)  0.19.0
Overload.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 namespace open3d {
11 namespace utility {
12 
17 template <typename... Ts>
18 struct Overloaded : Ts... {
19  using Ts::operator()...;
20 };
21 
22 // C++17 deduction guide
23 template <typename... Ts>
24 Overloaded(Ts...) -> Overloaded<Ts...>;
25 
38 template <typename... Ts>
39 Overloaded<Ts...> Overload(Ts... ts) {
40  return Overloaded{ts...}; // C++17 deduction guide makes <Ts...> redundant
41 }
42 
43 } // namespace utility
44 } // namespace open3d
Overloaded< Ts... > Overload(Ts... ts)
Definition: Overload.h:39
Overloaded(Ts...) -> Overloaded< Ts... >
Definition: PinholeCameraIntrinsic.cpp:16
Definition: Overload.h:18