void testGetValue() { MemPtr mem = MemPtr(new Mem(4)); mem->setValue(30); int value = mem->getValueAsInt(); TS_ASSERT_EQUALS(value, 30); mem->setValue(40); value = mem->getValueAsInt(); TS_ASSERT_EQUALS(value, 40); }
}; constexpr Union myUnion = 76; constexpr int badness(Union u) { return u.a + u.b; } // expected-note {{read of member 'a' of union with active member 'b'}} static_assert(badness(myUnion), ""); // expected-error {{constant expression}} \ expected-note {{in call to 'badness({.b = 76})'}} struct MemPtrTest { int n; void f(); }; MemPtrTest mpt; // expected-note {{here}} constexpr int MemPtr(int (MemPtrTest::*a), void (MemPtrTest::*b)(), int &c) { return c; // expected-note {{read of non-constexpr variable 'mpt'}} } static_assert(MemPtr(&MemPtrTest::n, &MemPtrTest::f, mpt.*&MemPtrTest::n), ""); // expected-error {{constant expression}} \ expected-note {{in call to 'MemPtr(&MemPtrTest::n, &MemPtrTest::f, mpt.n)'}} template<typename CharT> constexpr CharT get(const CharT *p) { return p[-1]; } // expected-note 5{{}} constexpr char c = get("test\0\\\"\t\a\b\234"); // \ expected-error {{}} expected-note {{"test\000\\\"\t\a\b\234"}} constexpr char c8 = get(u8"test\0\\\"\t\a\b\234"); // \ expected-error {{}} expected-note {{u8"test\000\\\"\t\a\b\234"}} constexpr char16_t c16 = get(u"test\0\\\"\t\a\b\234\u1234"); // \ expected-error {{}} expected-note {{u"test\000\\\"\t\a\b\234\u1234"}} constexpr char32_t c32 = get(U"test\0\\\"\t\a\b\234\u1234\U0010ffff"); // \ expected-error {{}} expected-note {{U"test\000\\\"\t\a\b\234\u1234\U0010FFFF"}} constexpr wchar_t wc = get(L"test\0\\\"\t\a\b\234\u1234\xffffffff"); // \ expected-error {{}} expected-note {{L"test\000\\\"\t\a\b\234\x1234\xFFFFFFFF"}}