You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ma...@apache.org on 2017/10/11 07:50:41 UTC

[trafficserver] 08/25: Added std::make_unique for C++11

This is an automated email from the ASF dual-hosted git repository.

maskit pushed a commit to branch quic-05
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit 095fb6bc45353e8a2c652fe4558564fa7f72df73
Author: Bryan Call <bc...@apache.org>
AuthorDate: Tue Oct 3 17:17:41 2017 -0700

    Added std::make_unique for C++11
    
    (cherry picked from commit c4c3bd9c213b63d03108653761be90f52ac55c33)
---
 lib/ts/Makefile.am      |  1 +
 lib/ts/ink_memory.h     |  4 ++++
 lib/ts/ink_std_compat.h | 37 +++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+)

diff --git a/lib/ts/Makefile.am b/lib/ts/Makefile.am
index 737dbfe..449e03b 100644
--- a/lib/ts/Makefile.am
+++ b/lib/ts/Makefile.am
@@ -132,6 +132,7 @@ libtsutil_la_SOURCES = \
   ink_sock.h \
   ink_sprintf.cc \
   ink_sprintf.h \
+	ink_std_compat.h \
   ink_stack_trace.cc \
   ink_stack_trace.h \
   ink_string.cc \
diff --git a/lib/ts/ink_memory.h b/lib/ts/ink_memory.h
index 5a8e2d3..0264f77 100644
--- a/lib/ts/ink_memory.h
+++ b/lib/ts/ink_memory.h
@@ -30,6 +30,10 @@
 
 #include "ts/ink_config.h"
 
+#ifdef __cplusplus
+#include "ink_std_compat.h"
+#endif
+
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
diff --git a/lib/ts/ink_std_compat.h b/lib/ts/ink_std_compat.h
new file mode 100644
index 0000000..ca972a6
--- /dev/null
+++ b/lib/ts/ink_std_compat.h
@@ -0,0 +1,37 @@
+/** @file
+
+  Compatibility with future versions of the C++ standard library
+
+  @section license License
+
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+ */
+
+#pragma once
+
+#if __cplusplus < 201402L
+#include <memory>
+namespace std
+{
+template <typename T, typename... Args>
+std::unique_ptr<T>
+make_unique(Args &&... args)
+{
+  return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
+}
+}
+#endif

-- 
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.