tst_QFlags: make constExpr() check compile on clang trunk

The problem is the verifyConstExpr<>() line involving the ~ operator.

The result as an integer is a value that can no longer be represented
in an int. This is known at compile time and thus template deduction,
which only has an int to match against, fails.

To fix, use an unsigned int as the first template argument of
verifyConstExpr<>().

Clang's error message for this is really sub-optimal, cf.
   http://llvm.org/bugs/show_bug.cgi?id=17834

Change-Id: I3a77dc54d2bee12b016d75724ac1bd7801f4cf2d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
bb10
Marc Mutz 2013-09-18 18:43:32 +02:00 committed by The Qt Project
parent 6aff0c4e48
commit ecfbb4e441
1 changed files with 1 additions and 1 deletions

View File

@ -99,7 +99,7 @@ void tst_QFlags::testFlagMultiBits() const
}
}
template <int N, typename T> bool verifyConstExpr(T n) { return n == N; }
template <unsigned int N, typename T> bool verifyConstExpr(T n) { return n == N; }
void tst_QFlags::constExpr()
{