15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//===----------------------------------------------------------------------===// 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The LLVM Compiler Infrastructure 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)//===----------------------------------------------------------------------===// 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// <complex> 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// template<class T> 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// complex<T> 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// operator*(const T& lhs, const complex<T>& rhs); 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include <complex> 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include <cassert> 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)template <class T> 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)test(const T& lhs, const std::complex<T>& rhs, std::complex<T> x) 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 2302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch assert(lhs * rhs == x); 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)template <class T> 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)void 2853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)test() 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) T lhs(1.5); 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) std::complex<T> rhs(1.5, 2.5); 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) std::complex<T> x(2.25, 3.75); 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) test(lhs, rhs, x); 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)int main() 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) test<float>(); 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) test<double>(); 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) test<long double>(); 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)