summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/cacheset.h6
-rwxr-xr-xtest/integration/header-compilation26
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