File tree Expand file tree Collapse file tree 1 file changed +17
-2
lines changed
api/include/opentelemetry/logs Expand file tree Collapse file tree 1 file changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -72,8 +72,23 @@ class Logger
7272 return ;
7373 }
7474
75- IgnoreTraitResult (detail::LogRecordSetterTrait<typename std::decay<ArgumentType>::type>::Set (
76- log_record.get (), std::forward<ArgumentType>(args))...);
75+ //
76+ // Keep the parameter pack unpacking order from left to right because left
77+ // ones are usually more important like severity and event_id than the
78+ // attributes. The left to right unpack order could pass the more important
79+ // data to processors to avoid caching and memory allocating.
80+ //
81+ #if __cplusplus <= 201402L
82+ // C++14 does not support fold expressions for parameter pack expansion.
83+ int dummy[] = {(detail::LogRecordSetterTrait<typename std::decay<ArgumentType>::type>::Set (
84+ log_record.get (), std::forward<ArgumentType>(args)),
85+ 0 )...};
86+ IgnoreTraitResult (dummy);
87+ #else
88+ IgnoreTraitResult ((detail::LogRecordSetterTrait<typename std::decay<ArgumentType>::type>::Set (
89+ log_record.get (), std::forward<ArgumentType>(args)),
90+ ...));
91+ #endif
7792
7893 EmitLogRecord (std::move (log_record));
7994 }
You can’t perform that action at this time.
0 commit comments