diff options
-rw-r--r-- | apt-pkg/cacheset.h | 6 | ||||
-rwxr-xr-x | test/integration/header-compilation | 26 |
2 files changed, 29 insertions, 3 deletions
diff --git a/apt-pkg/cacheset.h b/apt-pkg/cacheset.h index 7c03ad97a..ca0294545 100644 --- a/apt-pkg/cacheset.h +++ b/apt-pkg/cacheset.h @@ -644,7 +644,7 @@ template<> inline void PackageContainer<std::vector<pkgCache::PkgIterator> >::in for (const_iterator p = begin; p != end; ++p) _cont.push_back(*p); } -#if __cplusplus < 201103L +#if APT_GCC_VERSION < 0x409 template<> inline PackageContainer<std::set<pkgCache::PkgIterator> >::iterator PackageContainer<std::set<pkgCache::PkgIterator> >::erase(iterator i) { _cont.erase(i._iter); return end(); @@ -897,7 +897,7 @@ public: /*{{{*/ bool empty() const APT_OVERRIDE { return _cont.empty(); } void clear() APT_OVERRIDE { return _cont.clear(); } size_t size() const APT_OVERRIDE { return _cont.size(); } -#if __GNUC__ >= 5 || (__GNUC_MINOR__ >= 9 && __GNUC__ >= 4) +#if APT_GCC_VERSION >= 0x409 iterator erase( const_iterator pos ) { return iterator(_cont.erase(pos._iter)); } iterator erase( const_iterator first, const_iterator last ) { return iterator(_cont.erase(first._iter, last._iter)); } #else @@ -1148,7 +1148,7 @@ template<> inline void VersionContainer<std::vector<pkgCache::VerIterator> >::in for (const_iterator v = begin; v != end; ++v) _cont.push_back(*v); } -#if __cplusplus < 201103L +#if APT_GCC_VERSION < 0x409 template<> inline VersionContainer<std::set<pkgCache::VerIterator> >::iterator VersionContainer<std::set<pkgCache::VerIterator> >::erase(iterator i) { _cont.erase(i._iter); return end(); diff --git a/test/integration/header-compilation b/test/integration/header-compilation new file mode 100755 index 000000000..634504b71 --- /dev/null +++ b/test/integration/header-compilation @@ -0,0 +1,26 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment + +(for i in $TESTDIR/../../build/include/apt-pkg/*.h; do echo "#include \"$i\""; done) > include.h + + +testone() { + local cxx=$1 + shift + + if type $cxx 2>&1 1>/dev/null; then + testsuccess $cxx -c -o /dev/null include.h + testsuccess $cxx -c -o /dev/null -std=c++98 include.h + testsuccess $cxx -c -o /dev/null -std=c++11 include.h + else + msgskip "Compile $cxx is not installed" + fi +} + +testone clang++ +testone g++ +testone g++-4.8 |