1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-22 04:17:44 +00:00

Make yaml-cpp usable on HEAD for software that wants C++17.

yaml-cpp uses auto_ptr in a small number of places. This is problematic,
as libc++ 5.0.0 (used on HEAD) has auto_ptr disabled when building for
C++17. This causes the build for cloudabi-utils to fail on HEAD.

Instead of removing all of the use of auto_ptr from yaml-cpp, this
commit only changes public header files to make use of unique_ptr.

As I also ran into this issue for CloudABI, here's a bug report I filed
upstream a couple of weeks ago:

https://github.com/jbeder/yaml-cpp/issues/523

Reported by:	pkg-fallout :-C
Reviewed by:	madpilot, mat
Differential Revision:	https://reviews.freebsd.org/D12285
This commit is contained in:
Ed Schouten 2017-09-10 19:36:17 +00:00
parent d18c6db2bf
commit 48a2275e51
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=449589
3 changed files with 25 additions and 1 deletions

View File

@ -4,7 +4,7 @@
PORTNAME= yaml-cpp
PORTVERSION= 0.5.3
DISTVERSIONPREFIX= release-
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= devel
MAINTAINER= madpilot@FreeBSD.org

View File

@ -0,0 +1,11 @@
--- include/yaml-cpp/emitter.h.orig 2016-01-10 18:11:40 UTC
+++ include/yaml-cpp/emitter.h
@@ -122,7 +122,7 @@ class YAML_CPP_API Emitter : private non
bool CanEmitNewline() const;
private:
- std::auto_ptr<EmitterState> m_pState;
+ std::unique_ptr<EmitterState> m_pState;
ostream_wrapper m_stream;
};

View File

@ -0,0 +1,13 @@
--- include/yaml-cpp/parser.h.orig 2016-01-10 18:11:40 UTC
+++ include/yaml-cpp/parser.h
@@ -40,8 +40,8 @@ class YAML_CPP_API Parser : private nonc
void HandleTagDirective(const Token& token);
private:
- std::auto_ptr<Scanner> m_pScanner;
- std::auto_ptr<Directives> m_pDirectives;
+ std::unique_ptr<Scanner> m_pScanner;
+ std::unique_ptr<Directives> m_pDirectives;
};
}