diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-06-14 21:38:00 +0300 |
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-06-14 21:38:00 +0300 |
| commit | ba6ac70596d9f866e15983a4e2fc1d4f3d82b2ec (patch) | |
| tree | be9eb80e356af346c17852c116ed481a7d911277 /indra/llcommon/always_return.h | |
| parent | f5e2708a0fc4e08d3d0a5dc393bbd4bac09e1c55 (diff) | |
| parent | c4fc76efefd12c7cb1224dc8a748da2958f4a7f0 (diff) | |
Merge branch 'release/maint-b' into marchcat/b-merge
# Conflicts:
# .github/workflows/build.yaml
# indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
# indra/newview/app_settings/shaders/class3/deferred/reflectionProbeF.glsl
# indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
# indra/newview/llfilepicker.cpp
Diffstat (limited to 'indra/llcommon/always_return.h')
| -rw-r--r-- | indra/llcommon/always_return.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/llcommon/always_return.h b/indra/llcommon/always_return.h index a206471da5..b99eb49096 100644 --- a/indra/llcommon/always_return.h +++ b/indra/llcommon/always_return.h @@ -79,6 +79,22 @@ namespace LL DESIRED mDefault; }; + // specialize for AlwaysReturn<void> + template <> + struct AlwaysReturn<void> + { + public: + AlwaysReturn() {} + + // callable returns a type not convertible to DESIRED, return default + template <typename CALLABLE, typename... ARGS> + void operator()(CALLABLE&& callable, ARGS&&... args) + { + // discard whatever callable(args) returns + std::forward<CALLABLE>(callable)(std::forward<ARGS>(args)...); + } + }; + /** * always_return<T>(some_function, some_args...) calls * some_function(some_args...). It is guaranteed to return a value of type |
