constexpr applied to <complex>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@160585 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
// <complex>
|
||||
|
||||
// complex(const T& re = T(), const T& im = T());
|
||||
// constexpr complex(const T& re = T(), const T& im = T());
|
||||
|
||||
#include <complex>
|
||||
#include <cassert>
|
||||
@@ -38,6 +38,28 @@ test()
|
||||
assert(c.real() == 10.5);
|
||||
assert(c.imag() == -9.5);
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<T> c;
|
||||
static_assert(c.real() == 0, "");
|
||||
static_assert(c.imag() == 0, "");
|
||||
}
|
||||
{
|
||||
constexpr std::complex<T> c = 7.5;
|
||||
static_assert(c.real() == 7.5, "");
|
||||
static_assert(c.imag() == 0, "");
|
||||
}
|
||||
{
|
||||
constexpr std::complex<T> c(8.5);
|
||||
static_assert(c.real() == 8.5, "");
|
||||
static_assert(c.imag() == 0, "");
|
||||
}
|
||||
{
|
||||
constexpr std::complex<T> c(10.5, -9.5);
|
||||
static_assert(c.real() == 10.5, "");
|
||||
static_assert(c.imag() == -9.5, "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<float> cd(2.5, 3.5);
|
||||
std::complex<double> cf(cd);
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<float> cd(2.5, 3.5);
|
||||
constexpr std::complex<double> cf(cd);
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<float> cd(2.5, 3.5);
|
||||
std::complex<double> cf = cd;
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<float> cd(2.5, 3.5);
|
||||
constexpr std::complex<double> cf = cd;
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<long double> cd(2.5, 3.5);
|
||||
std::complex<double> cf(cd);
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<long double> cd(2.5, 3.5);
|
||||
constexpr std::complex<double> cf(cd);
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<double> cd(2.5, 3.5);
|
||||
std::complex<float> cf(cd);
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<double> cd(2.5, 3.5);
|
||||
constexpr std::complex<float> cf(cd);
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<long double> cd(2.5, 3.5);
|
||||
std::complex<float> cf(cd);
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<long double> cd(2.5, 3.5);
|
||||
constexpr std::complex<float> cf(cd);
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<double> cd(2.5, 3.5);
|
||||
std::complex<long double> cf(cd);
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<double> cd(2.5, 3.5);
|
||||
constexpr std::complex<long double> cf(cd);
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<double> cd(2.5, 3.5);
|
||||
std::complex<long double> cf = cd;
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<double> cd(2.5, 3.5);
|
||||
constexpr std::complex<long double> cf = cd;
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<float> cd(2.5, 3.5);
|
||||
std::complex<long double> cf(cd);
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<float> cd(2.5, 3.5);
|
||||
constexpr std::complex<long double> cf(cd);
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,18 @@
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
const std::complex<float> cd(2.5, 3.5);
|
||||
std::complex<long double> cf = cd;
|
||||
assert(cf.real() == cd.real());
|
||||
assert(cf.imag() == cd.imag());
|
||||
}
|
||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
||||
{
|
||||
constexpr std::complex<float> cd(2.5, 3.5);
|
||||
constexpr std::complex<long double> cf = cd;
|
||||
static_assert(cf.real() == cd.real(), "");
|
||||
static_assert(cf.imag() == cd.imag(), "");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user