180e66ac1SEric Fiselier // -*- C++ -*- 280e66ac1SEric Fiselier //===----------------------------------------------------------------------===// 380e66ac1SEric Fiselier // 480e66ac1SEric Fiselier // The LLVM Compiler Infrastructure 580e66ac1SEric Fiselier // 680e66ac1SEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open 780e66ac1SEric Fiselier // Source Licenses. See LICENSE.TXT for details. 880e66ac1SEric Fiselier // 980e66ac1SEric Fiselier //===----------------------------------------------------------------------===// 1080e66ac1SEric Fiselier 1180e66ac1SEric Fiselier // UNSUPPORTED: c++98, c++03, c++11, c++14 1280e66ac1SEric Fiselier 1380e66ac1SEric Fiselier // <variant> 1480e66ac1SEric Fiselier 1580e66ac1SEric Fiselier // template <class ...Types> class variant; 1680e66ac1SEric Fiselier 1780e66ac1SEric Fiselier #include <variant> 1880e66ac1SEric Fiselier 1980e66ac1SEric Fiselier #include "test_macros.h" 2080e66ac1SEric Fiselier #include "variant_test_helpers.hpp" 2180e66ac1SEric Fiselier 2280e66ac1SEric Fiselier int main() 2380e66ac1SEric Fiselier { 2480e66ac1SEric Fiselier // expected-error@variant:* 3 {{static_assert failed}} 2580e66ac1SEric Fiselier std::variant<int, int&> v; // expected-note {{requested here}} 26*0d3d8de0SEric Fiselier std::variant<int, const int &> v2; // expected-note {{requested here}} 2780e66ac1SEric Fiselier std::variant<int, int&&> v3; // expected-note {{requested here}} 2880e66ac1SEric Fiselier } 29