8sa1-gcc/gcc/testsuite/g++.dg/cpp0x/constexpr-conv3.C
Marek Polacek adc06f45fb PR c++/87145 - bogus error converting class type in template arg list.
* pt.c (convert_nontype_argument): Don't call
	build_converted_constant_expr if it could involve calling a conversion
	function with a instantiation-dependent constructor as its argument.

	* g++.dg/cpp0x/constexpr-conv3.C: New test.
	* g++.dg/cpp0x/constexpr-conv4.C: New test.

From-SVN: r270178
2019-04-05 21:22:40 +00:00

26 lines
406 B
C

// PR c++/87145
// { dg-do compile { target c++11 } }
template<typename T, T t> struct integral_constant {
static constexpr T value = t;
};
enum class Enum : unsigned {};
struct Pod {
unsigned val;
constexpr operator Enum() const {
return static_cast<Enum>(val);
}
};
template<unsigned N>
constexpr void foo() {
using Foo = integral_constant<Enum, Pod{N}>;
}
int main() {
foo<2>();
}