is_trivially_constructible.pass.cpp revision 1468b668aa964beb1220e9b36162b092fb54952b
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// type_traits
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// template <class T, class... Args>
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//   struct is_trivially_constructible;
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <type_traits>
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct A
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    explicit A(int);
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    A(int, double);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int main()
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static_assert(( std::is_trivially_constructible<int>::value), "");
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static_assert(( std::is_trivially_constructible<int, const int&>::value), "");
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static_assert((!std::is_trivially_constructible<A, int>::value), "");
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static_assert((!std::is_trivially_constructible<A, int, double>::value), "");
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static_assert((!std::is_trivially_constructible<A>::value), "");
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)