From acc029429dd7e9e6b850e555fb223f3ab9834470 Mon Sep 17 00:00:00 2001 From: owent Date: Tue, 21 May 2024 15:54:18 +0800 Subject: [PATCH 1/2] DO not allow unsafe `Logger::EmitLogRecord` --- api/include/opentelemetry/logs/logger_type_traits.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api/include/opentelemetry/logs/logger_type_traits.h b/api/include/opentelemetry/logs/logger_type_traits.h index aea2173689..84afda0781 100644 --- a/api/include/opentelemetry/logs/logger_type_traits.h +++ b/api/include/opentelemetry/logs/logger_type_traits.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include #include "opentelemetry/common/attribute_value.h" @@ -145,6 +146,10 @@ struct LogRecordSetterTrait template struct LogRecordSetterTrait { + static_assert(!std::is_same, ValueType>::value && + !std::is_same, ValueType>::value, + "unique_ptr is not allowed"); + template ::value || std::is_convertible::value, From 3cfdd49b8e5b3f4612c3df6ab14ab09dcbcaf9ac Mon Sep 17 00:00:00 2001 From: owent Date: Tue, 28 May 2024 12:40:00 +0800 Subject: [PATCH 2/2] Add hint for invalid parameter --- api/include/opentelemetry/logs/logger_type_traits.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/include/opentelemetry/logs/logger_type_traits.h b/api/include/opentelemetry/logs/logger_type_traits.h index 84afda0781..486135137d 100644 --- a/api/include/opentelemetry/logs/logger_type_traits.h +++ b/api/include/opentelemetry/logs/logger_type_traits.h @@ -148,7 +148,7 @@ struct LogRecordSetterTrait { static_assert(!std::is_same, ValueType>::value && !std::is_same, ValueType>::value, - "unique_ptr is not allowed"); + "unique_ptr is not allowed, please use std::move()"); template ::value ||