template <SyncOpt>
struct SyncOptType
Defined at line 68 of file ../../zircon/system/ulib/concurrent/include/lib/concurrent/common.h
Define tag types and constexpr instances of them which allow us to parameter
based template deduction. Mostly, this is about working around some of C++'s
otherwise painful syntax. It allows us to say:
WellDefinedCopyable
<Foo
> wrapped_foo;
Foo foo;
wrapped_foo.CopyFrom(foo, SyncOpt_Fence); // This
wrapped_foo.template CopyFrom
<SyncOpt
::Fence>(foo); // Instead of this
Without this, having to put the `template` keyword after the `.` but before
the `
<
>`'s is just a sad and painful fact of C++ template lyfe.