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
parent
6aff0c4e48
commit
ecfbb4e441
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue