|
|
|
@ -381,11 +381,11 @@ struct DLL_API TestDelegates |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
namespace DelegateNamespace { |
|
|
|
namespace DelegateNamespace { |
|
|
|
namespace Nested { |
|
|
|
namespace Nested { |
|
|
|
void DLL_API f1(void (*)()); |
|
|
|
void DLL_API f1(void (*)()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void DLL_API f2(void (*)()); |
|
|
|
void DLL_API f2(void (*)()); |
|
|
|
} // namespace DelegateNamespace
|
|
|
|
} // namespace DelegateNamespace
|
|
|
|
|
|
|
|
|
|
|
|
// Tests memory leaks in constructors
|
|
|
|
// Tests memory leaks in constructors
|
|
|
|
@ -480,35 +480,35 @@ class DLL_API SomeClassExtendingTheStruct : public SomeStruct |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
namespace SomeNamespace { |
|
|
|
namespace SomeNamespace { |
|
|
|
class DLL_API NamespacedAbstractClass |
|
|
|
class DLL_API NamespacedAbstractClass |
|
|
|
{ |
|
|
|
{ |
|
|
|
public: |
|
|
|
public: |
|
|
|
virtual void AbstractMethod() = 0; |
|
|
|
virtual void AbstractMethod() = 0; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
class DLL_API NamespacedAbstractImpl |
|
|
|
class DLL_API NamespacedAbstractImpl |
|
|
|
{ |
|
|
|
{ |
|
|
|
public: |
|
|
|
public: |
|
|
|
virtual void AbstractMethod(); |
|
|
|
virtual void AbstractMethod(); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
class Inlines |
|
|
|
class Inlines |
|
|
|
{ |
|
|
|
{ |
|
|
|
public: |
|
|
|
public: |
|
|
|
constexpr Inlines(float param, const char* name) {} |
|
|
|
constexpr Inlines(float param, const char* name) {} |
|
|
|
inline operator NamespacedAbstractImpl() const { return NamespacedAbstractImpl(); } |
|
|
|
inline operator NamespacedAbstractImpl() const { return NamespacedAbstractImpl(); } |
|
|
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
protected: |
|
|
|
void protectedInlined() {} |
|
|
|
void protectedInlined() {} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
constexpr Inlines constWithParams(5.f, "test"); |
|
|
|
constexpr Inlines constWithParams(5.f, "test"); |
|
|
|
|
|
|
|
|
|
|
|
class AbstractInlines |
|
|
|
class AbstractInlines |
|
|
|
{ |
|
|
|
{ |
|
|
|
public: |
|
|
|
public: |
|
|
|
virtual void hasVariadicArgs(int regular, ...) = 0; |
|
|
|
virtual void hasVariadicArgs(int regular, ...) = 0; |
|
|
|
}; |
|
|
|
}; |
|
|
|
} // namespace SomeNamespace
|
|
|
|
} // namespace SomeNamespace
|
|
|
|
|
|
|
|
|
|
|
|
// Test operator overloads
|
|
|
|
// Test operator overloads
|
|
|
|
@ -1004,64 +1004,64 @@ public: |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
namespace boost { |
|
|
|
namespace boost { |
|
|
|
template <class T> |
|
|
|
template <class T> |
|
|
|
struct is_member_pointer_cv |
|
|
|
struct is_member_pointer_cv |
|
|
|
{ |
|
|
|
{ |
|
|
|
static const bool value = false; |
|
|
|
static const bool value = false; |
|
|
|
}; |
|
|
|
}; |
|
|
|
template <class T, class U> |
|
|
|
template <class T, class U> |
|
|
|
struct is_member_pointer_cv<T U::*> |
|
|
|
struct is_member_pointer_cv<T U::*> |
|
|
|
{ |
|
|
|
{ |
|
|
|
static const bool value = true; |
|
|
|
static const bool value = true; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// all of this below tests corner cases with type locations
|
|
|
|
|
|
|
|
template <class T> |
|
|
|
|
|
|
|
struct make_tuple_traits |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
typedef T type; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// commented away, see below (JJ)
|
|
|
|
|
|
|
|
// typedef typename IF<
|
|
|
|
|
|
|
|
// boost::is_function<T>::value,
|
|
|
|
|
|
|
|
// T&,
|
|
|
|
|
|
|
|
// T>::RET type;
|
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace detail { |
|
|
|
// all of this below tests corner cases with type locations
|
|
|
|
struct swallow_assign; |
|
|
|
template <class T> |
|
|
|
typedef void (detail::swallow_assign::*ignore_t)(); |
|
|
|
struct make_tuple_traits |
|
|
|
struct swallow_assign |
|
|
|
{ |
|
|
|
{ |
|
|
|
typedef T type; |
|
|
|
swallow_assign(ignore_t (*)(ignore_t)); |
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
|
|
|
swallow_assign const& operator=(const T&) const; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
swallow_assign::swallow_assign(ignore_t (*)(ignore_t)) |
|
|
|
// commented away, see below (JJ)
|
|
|
|
{ |
|
|
|
// typedef typename IF<
|
|
|
|
} |
|
|
|
// boost::is_function<T>::value,
|
|
|
|
|
|
|
|
// T&,
|
|
|
|
|
|
|
|
// T>::RET type;
|
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace detail { |
|
|
|
|
|
|
|
struct swallow_assign; |
|
|
|
|
|
|
|
typedef void (detail::swallow_assign::*ignore_t)(); |
|
|
|
|
|
|
|
struct swallow_assign |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
swallow_assign(ignore_t (*)(ignore_t)); |
|
|
|
template <typename T> |
|
|
|
template <typename T> |
|
|
|
swallow_assign const& swallow_assign::operator=(const T&) const |
|
|
|
swallow_assign const& operator=(const T&) const; |
|
|
|
{ |
|
|
|
}; |
|
|
|
return *this; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace detail
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
swallow_assign::swallow_assign(ignore_t (*)(ignore_t)) |
|
|
|
struct make_tuple_traits<detail::ignore_t(detail::ignore_t)> |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
typedef detail::swallow_assign type; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <class T> |
|
|
|
template <typename T> |
|
|
|
struct is_class_or_union |
|
|
|
swallow_assign const& swallow_assign::operator=(const T&) const |
|
|
|
{ |
|
|
|
{ |
|
|
|
template <class U> |
|
|
|
return *this; |
|
|
|
static char is_class_or_union_tester(void (U::*)(void)); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
} // namespace detail
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <> |
|
|
|
|
|
|
|
struct make_tuple_traits<detail::ignore_t(detail::ignore_t)> |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
typedef detail::swallow_assign type; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <class T> |
|
|
|
|
|
|
|
struct is_class_or_union |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
template <class U> |
|
|
|
|
|
|
|
static char is_class_or_union_tester(void (U::*)(void)); |
|
|
|
|
|
|
|
}; |
|
|
|
} // namespace boost
|
|
|
|
} // namespace boost
|
|
|
|
|
|
|
|
|
|
|
|
template <std::size_t N, std::size_t... I> |
|
|
|
template <std::size_t N, std::size_t... I> |
|
|
|
@ -1401,9 +1401,9 @@ void TemplatedFunction(T type) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inline namespace InlineNamespace { |
|
|
|
inline namespace InlineNamespace { |
|
|
|
void FunctionInsideInlineNamespace() |
|
|
|
void FunctionInsideInlineNamespace() |
|
|
|
{ |
|
|
|
{ |
|
|
|
} |
|
|
|
} |
|
|
|
} // namespace InlineNamespace
|
|
|
|
} // namespace InlineNamespace
|
|
|
|
|
|
|
|
|
|
|
|
union |
|
|
|
union |
|
|
|
@ -1431,9 +1431,9 @@ struct TemplateWithUsingTemplateMember |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
namespace hasUnnamedDecl { |
|
|
|
namespace hasUnnamedDecl { |
|
|
|
extern "C" |
|
|
|
extern "C" |
|
|
|
{ |
|
|
|
{ |
|
|
|
} |
|
|
|
} |
|
|
|
} // namespace hasUnnamedDecl
|
|
|
|
} // namespace hasUnnamedDecl
|
|
|
|
|
|
|
|
|
|
|
|
enum ItemsDifferByCase |
|
|
|
enum ItemsDifferByCase |
|
|
|
|