Move compile test to separate source file

This commit is contained in:
Glen Fernandes
2024-07-14 07:04:23 -04:00
parent bda05a7812
commit 76061d91d4
3 changed files with 46 additions and 34 deletions

View File

@@ -63,40 +63,6 @@ void test_type()
BOOST_TEST(v2.get().value() == 6);
}
template <class T>
struct derived : boost::empty_value<T> {
typedef typename boost::empty_value<T>::type type;
derived(boost::empty_init_t e) : boost::empty_value<T>(e) {}
};
struct outer {
struct inner_empty {};
struct inner_non_empty {
inner_non_empty() : value() {}
int value;
};
};
void test_derived_compile()
{
// This is testing the workaround to an MSVC bug when T is a nested class.
// See https://developercommunity.visualstudio.com/t/Compiler-bug:-Incorrect-C2247-and-C2248/10690025
const boost::empty_value<outer> x1(boost::empty_init);
const boost::empty_value<outer::inner_empty> x2(boost::empty_init);
const boost::empty_value<outer::inner_non_empty> x3(boost::empty_init);
const derived<outer> x4(boost::empty_init);
const derived<outer::inner_empty> x5(boost::empty_init);
const derived<outer::inner_non_empty> x6(boost::empty_init);
(void)x1;
(void)x2;
(void)x3;
(void)x4;
(void)x5;
(void)x6;
}
int main()
{
test_int();