197403Sobrien// The template and inlines for the -*- C++ -*- complex number classes. 297403Sobrien 3169691Skan// Copyright (C) 2000, 2001, 2005, 2006 Free Software Foundation, Inc. 497403Sobrien// 597403Sobrien// This file is part of the GNU ISO C++ Library. This library is free 697403Sobrien// software; you can redistribute it and/or modify it under the 797403Sobrien// terms of the GNU General Public License as published by the 897403Sobrien// Free Software Foundation; either version 2, or (at your option) 997403Sobrien// any later version. 1097403Sobrien 1197403Sobrien// This library is distributed in the hope that it will be useful, 1297403Sobrien// but WITHOUT ANY WARRANTY; without even the implied warranty of 1397403Sobrien// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1497403Sobrien// GNU General Public License for more details. 1597403Sobrien 1697403Sobrien// You should have received a copy of the GNU General Public License along 1797403Sobrien// with this library; see the file COPYING. If not, write to the Free 18169691Skan// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 1997403Sobrien// USA. 2097403Sobrien 2197403Sobrien// As a special exception, you may use this file as part of a free software 2297403Sobrien// library without restriction. Specifically, if other files instantiate 2397403Sobrien// templates or use macros or inline functions from this file, or you compile 2497403Sobrien// this file and link it with other files to produce an executable, this 2597403Sobrien// file does not by itself cause the resulting executable to be covered by 2697403Sobrien// the GNU General Public License. This exception does not however 2797403Sobrien// invalidate any other reasons why the executable file might be covered by 2897403Sobrien// the GNU General Public License. 2997403Sobrien 3097403Sobrien#include <complex> 3197403Sobrien 32169691Skan_GLIBCXX_BEGIN_NAMESPACE(std) 33169691Skan 3497403Sobrien template 3597403Sobrien basic_istream<char, char_traits<char> >& 3697403Sobrien operator>>(basic_istream<char, char_traits<char> >&, complex<float>&); 3797403Sobrien 3897403Sobrien template 3997403Sobrien basic_ostream<char, char_traits<char> >& 4097403Sobrien operator<<(basic_ostream<char, char_traits<char> >&, 4197403Sobrien const complex<float>&); 4297403Sobrien 4397403Sobrien template 4497403Sobrien basic_istream<char, char_traits<char> >& 4597403Sobrien operator>>(basic_istream<char, char_traits<char> >&, complex<double>&); 4697403Sobrien 4797403Sobrien template 4897403Sobrien basic_ostream<char, char_traits<char> >& 4997403Sobrien operator<<(basic_ostream<char, char_traits<char> >&, 5097403Sobrien const complex<double>&); 5197403Sobrien 5297403Sobrien template 5397403Sobrien basic_istream<char, char_traits<char> >& 5497403Sobrien operator>>(basic_istream<char, char_traits<char> >&, 5597403Sobrien complex<long double>&); 5697403Sobrien 5797403Sobrien template 5897403Sobrien basic_ostream<char, char_traits<char> >& 5997403Sobrien operator<<(basic_ostream<char, char_traits<char> >&, 6097403Sobrien const complex<long double>&); 6197403Sobrien 62132720Skan#ifdef _GLIBCXX_USE_WCHAR_T 6397403Sobrien template 6497403Sobrien basic_istream<wchar_t, char_traits<wchar_t> >& 6597403Sobrien operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, 6697403Sobrien complex<float>&); 6797403Sobrien 6897403Sobrien template 6997403Sobrien basic_ostream<wchar_t, char_traits<wchar_t> >& 7097403Sobrien operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, 7197403Sobrien const complex<float>&); 7297403Sobrien 7397403Sobrien template 7497403Sobrien basic_istream<wchar_t, char_traits<wchar_t> >& 7597403Sobrien operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, 7697403Sobrien complex<double>&); 7797403Sobrien 7897403Sobrien template 7997403Sobrien basic_ostream<wchar_t, char_traits<wchar_t> >& 8097403Sobrien operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, 8197403Sobrien const complex<double>&); 8297403Sobrien 8397403Sobrien template 8497403Sobrien basic_istream<wchar_t, char_traits<wchar_t> >& 8597403Sobrien operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, 8697403Sobrien complex<long double>&); 8797403Sobrien 8897403Sobrien template 8997403Sobrien basic_ostream<wchar_t, char_traits<wchar_t> >& 9097403Sobrien operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, 9197403Sobrien const complex<long double>&); 92132720Skan#endif //_GLIBCXX_USE_WCHAR_T 93169691Skan 94169691Skan_GLIBCXX_END_NAMESPACE 95169691Skan 96169691Skan// XXX GLIBCXX_ABI Deprecated 97169691Skan#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT 98169691Skan 99169691Skan#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ 100169691Skan extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak)) 101169691Skan 102169691Skan_GLIBCXX_LDBL_COMPAT (_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E, 103169691Skan _ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E); 104169691Skan_GLIBCXX_LDBL_COMPAT (_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E, 105169691Skan _ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E); 106169691Skan_GLIBCXX_LDBL_COMPAT (_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E, 107169691Skan _ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E); 108169691Skan_GLIBCXX_LDBL_COMPAT (_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E, 109169691Skan _ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E); 110169691Skan 111169691Skan#endif // _GLIBCXX_LONG_DOUBLE_COMPAT 112