aboutsummaryrefslogtreecommitdiff
path: root/build2/function
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-22 12:10:03 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-22 12:10:03 +0200
commit557269660c1d9796a7cf9e911efb9262f645e359 (patch)
tree0323bcb5a90c339fe87fcd193cf71bdcb3431c91 /build2/function
parentfae6cd2235c907e077dad7b5d8dc9b6d90a78a37 (diff)
Use diagnostics facility from libbutl
Diffstat (limited to 'build2/function')
-rw-r--r--build2/function6
1 files changed, 4 insertions, 2 deletions
diff --git a/build2/function b/build2/function
index 32914dd..68edcde 100644
--- a/build2/function
+++ b/build2/function
@@ -115,9 +115,11 @@ namespace build2
D d)
: function_overload (an, mi, ma, move (ts), im)
{
- // std::is_pod appears to be broken in VC15.
+ // std::is_pod appears to be broken in VC14 and also in GCC up to
+ // 5 (pointers to members).
//
-#if !defined(_MSC_VER) || _MSC_VER > 1900
+#if !((defined(_MSC_VER) && _MSC_VER <= 1900) || \
+ (defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 5))
static_assert (std::is_pod<D>::value, "type is not POD");
#endif
static_assert (sizeof (D) <= data_size, "insufficient space");