28.4 Complex numbers [complex.numbers] C++N4910:2022 (667) p1270.cpp

# はじめに(Introduction)
N4910  Working Draft, Standard for Programming Language C++
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4910.pdf

n4910は、ISO/IEC JTC1 SC22 WG21の作業原案(Working Draft)です。
公式のISO/IEC 14882原本ではありません。
ISO/IEC JTC1 SC22 WG21では、可能な限り作業文書を公開し、幅広い意見を求めています。
一連の記事はコード断片をコンパイルできる形にする方法を検討してコンパイル、リンク、実行して、規格案の原文と処理系(g++, Clang++)との違いを確認し、技術内容を検討し、ISO/IEC JTC1 SC22 WG21にフィードバックするために用います。
また、CERT C++, MISRA C++等のコーディング標準のコード断片をコンパイルする際の参考にさせていただこうと考えています。CERT C++, MISRA C++が標準化の動きとの時間的なずれがあれば確認できれば幸いです。また、boostライブラリとの関連、Linux OS, TOPPERSカーネル、g++(GCC), clang++(LLVM）との関係も調査中です。
何か、抜け漏れ、耳より情報がありましたらおしらせくださると幸いです。

 <この項は書きかけです。順次追記します。>

## 背景(back ground)
C/C++でコンパイルエラーが出ると、途方にくれることがしばしばあります。
何回かに１回は、該当するエラーが検索できます。
ただ、条件が違っていて、そこでの修正方法では目的を達成しないこともしばしばです。いろいろな条件のコンパイルエラーとその対応方法について、広く記録することによって、いつか同じエラーに遭遇した時にやくに立つことを目指しています。

この半年の間で、三度、自分のネットでの記録に助けられたことがあります。
また過去に解決できなかった記録を１０種類以上、最近になって解決できたことがあります。それは、主に次の３つの情報に基づいています。
https://stackoverflow.com
http://ja.cppreference.com/

cpprefjp - C++日本語リファレンス
https://cpprefjp.github.io/

コンパイラの実装状況
https://cpprefjp.github.io/implementation-status.html

また
https://researchmap.jp/joub9b3my-1797580/#_1797580
に記載したサイトのお世話になっています。

## 作業方針(sequence)
Clang++では-std=c++03, C++2bの2種類
g++では-std=c++03, c++2bの２種類
でコンパイルし、

１）コンパイルエラーを収集する。
２）コンパイルエラーをなくす方法を検討する。
コンパイルエラーになる例を示すだけが目的のコードは、コンパイルエラーをなくすのではなく、コンパイルエラーの種類を収集するだけにする。
文法を示すのが目的のコード場合に、コンパイルエラーをなくすのに手間がかかる場合は、順次作業します。
３）リンクエラーをなくす方法を検討する。
文法を示すのが目的のコード場合に、リンクエラーをなくすのに手間がかかる場合は、順次作業します。
４）意味のある出力を作る。
コンパイル、リンクが通っても、意味のある出力を示そうとすると、コンパイル・リンクエラーが出て収拾できそうにない場合がある。順次作業します。

１）だけのものから４）まで進んだものと色々ある状態です。一歩でも前に進むご助言をお待ちしています。「検討事項」の欄に現状を記録するようにしています。

### C++N4910:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list  

https://qiita.com/kaizen_nagoya/items/fc957ddddd402004bb91

### C++N4741, 2018 Standard Working Draft on ISO/IEC 14882 sample code compile list
https://qiita.com/kaizen_nagoya/items/3294c014044550896010

### C++N4606, 2016符号断片編纂一覧(example code compile list)
C++N4606, 2016 Working Draft 2016, ISO/IEC 14882, C++ standard(1) Example code compile list
https://qiita.com/kaizen_nagoya/items/df5d62c35bd6ed1c3d43/

### C++N3242, 2011 sample code compile list on clang++ and g++
https://qiita.com/kaizen_nagoya/items/685b5c1a2c17c1bf1318

## 編纂器(Compiler)
### clang++ --version
> Debian clang version 14.0.5-++20220610033153+c12386ae247c-1~exp1~20220610153237.151
Target: x86_64-pc-linux-gnu, Thread model: posix, InstalledDir: /usr/bin

### g++- --version
> g++ (GCC) 12.1.0  Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# 28.4 Complex numbers [complex.numbers] C++N4910:2022 (667) p1270.cpp

## 算譜(source code)

```c++:p1270.cpp
// C++N4910 Committee Draft, Standard for Programming Language C++
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4910.pdf
const char * n4910 = "28.4 Complex numbers [complex.numbers] C++N4910:2022 (667) p1270.cpp";
// Debian clang version 14.0.5-++20220610033153+c12386ae247c-
// g++ (GCC) 12.1.0 Copyright (C) 2022 Free Software Foundation, Inc.
// Edited by Dr. OGAWA Kiyoshi. Compile procedure and results record.
// C++N4910:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list
// https://qiita.com/kaizen_nagoya/items/fc957ddddd402004bb91

#include "N4910.h"

using namespace std;

// 28.4.1 General [complex.numbers.general]
//  The header <complex> defines a class template, and numerous functions for representing and manipulating complex numbers.
//  The effect of instantiating the template complex for any type other than float, double, or long double is unspecified. The specializations complex<float>, complex<double>, and complex<long double> are literal types (6.8.1).
//  If the result of a function is not mathematically defined or not in the range of representable values for its type, the behavior is undefined.
//  If z is an lvalue of type cv complex<T> then:
// Moreover, if a is an expression of type cv complex<T>* and the expression a[i] is well-defined for an integer expression i, then:
// — reinterpret_cast<cv T*>(a)[2*i] designates the real part of a[i], and
// — reinterpret_cast<cv T*>(a)[2*i + 1] designates the imaginary part of a[i].
// 28.4.2 Header <complex> synopsis [complex.syn]
namespace std {
// 28.4.3, class template complex template<class T> class complex;
// 28.4.4, specializations
template<> class complex<float>;
template<> class complex<double>;
template<> class complex<long double>;
// 28.4.7, operators
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&);
template<class T> constexpr complex<T> operator+(const complex<T>&, const T&);
template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
template<class T> constexpr complex<T> operator-(const complex<T>&, const complex<T>&);
template<class T> constexpr complex<T> operator-(const complex<T>&, const T&);
template<class T> constexpr complex<T> operator-(const T&, const complex<T>&);
template<class T> constexpr complex<T> operator*(const complex<T>&, const complex<T>&);
template<class T> constexpr complex<T> operator*(const complex<T>&, const T&);
template<class T> constexpr complex<T> operator*(const T&, const complex<T>&);
template<class T> constexpr complex<T> operator/(const complex<T>&, const complex<T>&);
template<class T> constexpr complex<T> operator/(const complex<T>&, const T&);
template<class T> constexpr complex<T> operator/(const T&, const complex<T>&);
template<class T> constexpr complex<T> operator+(const complex<T>&);
template<class T> constexpr complex<T> operator-(const complex<T>&);
template<class T> constexpr bool operator==(const complex<T>&, const complex<T>&);
template<class T> constexpr bool operator==(const complex<T>&, const T&);
template<class T, class charT, class traits>
basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>&, complex<T>&);
template<class T, class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>&, const complex<T>&);
// 28.4.8, values
template<class T> constexpr T real(const complex<T>&);
template<class T> constexpr T imag(const complex<T>&);
template<class T> T abs(const complex<T>&);
template<class T> T arg(const complex<T>&);
template<class T> constexpr T norm(const complex<T>&);
template<class T> constexpr complex<T> conj(const complex<T>&);
template<class T> complex<T> proj(const complex<T>&);
template<class T> complex<T> polar(const T&, const T& = T());
// 28.4.9, transcendentals
template<class T> complex<T> acos(const complex<T>&);
template<class T> complex<T> asin(const complex<T>&);
template<class T> complex<T> atan(const complex<T>&);
template<class T> complex<T> acosh(const complex<T>&);
template<class T> complex<T> asinh(const complex<T>&);
template<class T> complex<T> atanh(const complex<T>&);
template<class T> complex<T> cos  (const complex<T>&);
template<class T> complex<T> cosh (const complex<T>&);
template<class T> complex<T> exp  (const complex<T>&);
template<class T> complex<T> log  (const complex<T>&);
template<class T> complex<T> log10(const complex<T>&);
template<class T> complex<T> pow  (const complex<T>&, const T&);
template<class T> complex<T> pow  (const complex<T>&, const complex<T>&);
template<class T> complex<T> pow  (const T&, const complex<T>&);
template<class T> complex<T> sin  (const complex<T>&);
template<class T> complex<T> sinh (const complex<T>&);
template<class T> complex<T> sqrt (const complex<T>&);
template<class T> complex<T> tan  (const complex<T>&);
template<class T> complex<T> tanh (const complex<T>&);
// 28.4.11, complex literals
inline namespace literals {
inline namespace complex_literals {
constexpr complex<long double> operator""il(long double);
constexpr complex<long double> operator""il(unsigned long long);
constexpr complex<double> operator""i(long double);
constexpr complex<double> operator""i(unsigned long long);
constexpr complex<float> operator""if(long double);
constexpr complex<float> operator""if(unsigned long long);
}
}
}
// 28.4.3 Class template complex
namespace std {
template<class T> class complex {
public:
    using value_type = T;
    constexpr complex(const T& re = T(), const T& im = T());
    constexpr complex(const complex&);
    template<class X> constexpr complex(const complex<X>&);
    constexpr T real() const;
    constexpr void real(T);
    constexpr T imag() const;
    constexpr void imag(T);
    constexpr complex& operator= (const T&);
    constexpr complex& operator+=(const T&);
    constexpr complex& operator-=(const T&);
    constexpr complex& operator*=(const T&);
    constexpr complex& operator/=(const T&);
    constexpr complex& operator=(const complex&);
    template<class X> constexpr complex& operator= (const complex<X>&);
    template<class X> constexpr complex& operator+=(const complex<X>&);
    template<class X> constexpr complex& operator-=(const complex<X>&);
    template<class X> constexpr complex& operator*=(const complex<X>&);
    template<class X> constexpr complex& operator/=(const complex<X>&);
};
}
//  The class complex describes an object that can store the Cartesian components, real() and imag(), of a complex number.
// 28.4.4 Specializations [complex.special]
namespace std {
template<> class complex<float> {
public:
    using value_type = float;
    constexpr complex(float re = 0.0f, float im = 0.0f);
    constexpr complex(const complex<float>&) = default;
    constexpr explicit complex(const complex<double>&);
    constexpr explicit complex(const complex<long double>&);
    constexpr float real() const;
    constexpr void real(float);
    constexpr float imag() const;
    constexpr void imag(float);
    constexpr complex& operator= (float);
    constexpr complex& operator+=(float);
    constexpr complex& operator-=(float);
    constexpr complex& operator*=(float);
    constexpr complex& operator/=(float);
    constexpr complex& operator=(const complex&);
    template<class X> constexpr complex& operator= (const complex<X>&);
    template<class X> constexpr complex& operator+=(const complex<X>&);
    template<class X> constexpr complex& operator-=(const complex<X>&);
    template<class X> constexpr complex& operator*=(const complex<X>&);
    template<class X> constexpr complex& operator/=(const complex<X>&);
};
template<> class complex<double> {
public:
    using value_type = double;
    constexpr complex(double re = 0.0, double im = 0.0);
    constexpr complex(const complex<float>&);
    constexpr complex(const complex<double>&) = default;
    constexpr explicit complex(const complex<long double>&);
    constexpr double real() const;
    constexpr void real(double);
    constexpr double imag() const;
    constexpr void imag(double);
    constexpr complex& operator= (double);
    constexpr complex& operator+=(double);
    constexpr complex& operator-=(double);
    constexpr complex& operator*=(double);
    constexpr complex& operator/=(double);
    constexpr complex& operator=(const complex&);
    template<class X> constexpr complex& operator= (const complex<X>&);
    template<class X> constexpr complex& operator+=(const complex<X>&);
    template<class X> constexpr complex& operator-=(const complex<X>&);
    template<class X> constexpr complex& operator*=(const complex<X>&);
    template<class X> constexpr complex& operator/=(const complex<X>&);
};
template<> class complex<long double> {
public:
    using value_type = long double;
    constexpr complex(long double re = 0.0L, long double im = 0.0L);
    constexpr complex(const complex<float>&);
    constexpr complex(const complex<double>&);
    constexpr complex(const complex<long double>&) = default;
    constexpr long double real() const;
    constexpr void real(long double);
    constexpr long double imag() const;
    constexpr void imag(long double);
    constexpr complex& operator= (long double);
    constexpr complex& operator+=(long double);
    constexpr complex& operator-=(long double);
    constexpr complex& operator*=(long double);
    constexpr complex& operator/=(long double);
    constexpr complex& operator=(const complex&);
    template<class X> constexpr complex& operator= (const complex<X>&);
    template<class X> constexpr complex& operator+=(const complex<X>&);
    template<class X> constexpr complex& operator-=(const complex<X>&);
    template<class X> constexpr complex& operator*=(const complex<X>&);
    template<class X> constexpr complex& operator/=(const complex<X>&);
};
}
// 28.4.5 Member functions [complex.members]
template<class T> constexpr complex(const T& re = T(), const T& im = T());
// Postconditions: real() == re && imag() == im is true. constexpr T real() const;
// Returns: The value of the real component. constexpr void real(T val);
// Effects: Assigns val to the real component. constexpr T imag() const;
// Returns: The value of the imaginary component. constexpr void imag(T val);
// Effects: Assigns val to the imaginary component.
// 28.4.6 Member operators [complex.member.ops]
constexpr complex& operator+=(const T& rhs);
// Effects: Adds the scalar value rhs to the real part of the complex value *this and stores the result in the real part of *this, leaving the imaginary part unchanged.
// Returns: *this.
constexpr complex& operator-=(const T& rhs);
// Effects: Subtracts the scalar value rhs from the real part of the complex value *this and stores the result in the real part of *this, leaving the imaginary part unchanged.
// Returns: *this.
constexpr complex& operator*=(const T& rhs);
// Effects: Multiplies the scalar value rhs by the complex value *this and stores the result in *this. Returns: *this.
constexpr complex& operator/=(const T& rhs);
// Effects: Divides the scalar value rhs into the complex value *this and stores the result in *this. Returns: *this.
template<class X> constexpr complex& operator+=(const complex<X>& rhs);
// Effects: Adds the complex value rhs to the complex value *this and stores the sum in *this. Returns: *this.
template<class X> constexpr complex& operator-=(const complex<X>& rhs);
// Effects: Subtracts the complex value rhs from the complex value *this and stores the difference in *this.
// Returns: *this.
template<class X> constexpr complex& operator*=(const complex<X>& rhs);
// Effects: Multiplies the complex value rhs by the complex value *this and stores the product in *this. Returns: *this.
template<class X> constexpr complex& operator/=(const complex<X>& rhs);
// Effects: Divides the complex value rhs into the complex value *this and stores the quotient in *this. Returns: *this.
// 28.4.7 Non-member operations [comple.ops]
template<class T> constexpr complex<T> operator+(const complex<T>& lhs);
// Returns: complex<T>(lhs).
template<class T> constexpr complex<T> operator+(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator+(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator+(const T& lhs, const complex<T>& rhs);
// Returns: complex<T>(lhs) += rhs.
template<class T> constexpr complex<T> operator-(const complex<T>& lhs);
// Returns: complex<T>(-lhs.real(),-lhs.imag()).
template<class T> constexpr complex<T> operator-(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator-(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator-(const T& lhs, const complex<T>& rhs);
// Returns: complex<T>(lhs) -= rhs.
template<class T> constexpr complex<T> operator*(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator*(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator*(const T& lhs, const complex<T>& rhs);
// Returns: complex<T>(lhs) *= rhs.
template<class T> constexpr complex<T> operator/(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr complex<T> operator/(const complex<T>& lhs, const T& rhs);
template<class T> constexpr complex<T> operator/(const T& lhs, const complex<T>& rhs);
// Returns: complex<T>(lhs) /= rhs.
template<class T> constexpr bool operator==(const complex<T>& lhs, const complex<T>& rhs);
template<class T> constexpr bool operator==(const complex<T>& lhs, const T& rhs);
// Returns: lhs.real() == rhs.real() && lhs.imag() == rhs.imag(). Remarks: The imaginary part is assumed to be T(), or 0.0, for the T arguments.
template<class T, class charT, class traits>
basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, complex<T>& x);
// Preconditions: The input values are convertible to T.
// Effects: Extracts a complex number x of the form: u, (u), or (u,v), where u is the real part and v is the imaginary part (31.7.4.3). If bad input is encountered, calls is.setstate(ios_base::failbit) (which may throw ios_base::failure (31.5.4.4)).
// Returns: is.
// Remarks: This extraction is performed as a series of simpler extractions. Therefore, the skipping of whitespace is specified to be the same for each of the simpler extractions.
template<class T, class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& o, const complex<T>& x);
// Effects: Inserts the complex number x onto the stream o as if it were implemented as follows:
basic_ostringstream<charT, traits> s;
s.flags(o.flags());
s.imbue(o.getloc());
s.precision(o.precision());
s << '(' << x.real() << "," << x.imag() << ')';
return o << s.str();
// [Note 1: In a locale in which comma is used as a decimal point character, the use of comma as a field separator can be ambiguous. Inserting showpoint into the output stream forces all outputs to show an explicit decimal point character; as a result, all inserted sequences of complex numbers can be extracted unambiguously.
// 28.4.8 Value operations [complex.value.ops]
template<class T> constexpr T real(const complex<T>& x);
// Returns: x.real().
template<class T> constexpr T imag(const complex<T>& x);
// Returns: x.imag().
template<class T> T abs(const complex<T>& x);
// Returns: The magnitude of x. template<class T> T arg(const complex<T>& x);
// Returns: The phase angle of x, or atan2(imag(x), real(x)). template<class T> constexpr T norm(const complex<T>& x);
// Returns: The squared magnitude of x.
template<class T> constexpr complex<T> conj(const complex<T>& x);
// Returns: The complex conjugate of x.
template<class T> complex<T> proj(const complex<T>& x);
// Returns: The projection of x onto the Riemann sphere. Remarks: Behaves the same as the C function cproj. See also: ISO C 7.3.9.5 ISO C 7.3.5.1 ISO C 7.3.5.2 ISO C 7.3.5.3 ISO C 7.3.6.1
template<class T> complex<T> polar(const T& rho, const T& theta = T());
// Preconditions: rho is non-negative and non-NaN. theta is finite.
// Returns: The complex value corresponding to a complex number whose magnitude is rho and whose phase angle is theta.
// 28.4.9 Transcendentals [complex.transcendentals]
template<class T> complex<T> acos(const complex<T>& x);
// Returns: The complex arc cosine of x.
// Remarks: Behaves the same as the C function cacos. See also:
template<class T> complex<T> asin(const complex<T>& x);
// Returns: The complex arc sine of x.
// Remarks: Behaves the same as the C function casin. See also:
template<class T> complex<T> atan(const complex<T>& x);
// Returns: The complex arc tangent of x.
// Remarks: Behaves the same as the C function catan. See also:
template<class T> complex<T> acosh(const complex<T>& x);
// Returns: The complex arc hyperbolic cosine of x.
// Remarks: Behaves the same as the C function cacosh. See also:
template<class T> complex<T> asinh(const complex<T>& x);
//  The following function templates shall have additional overloads:
// Returns: The complex arc hyperbolic sine of x.
// Remarks: Behaves the same as the C function casinh. See also: ISO C 7.3.6.2 ISO C 7.3.6.3
template<class T> complex<T> atanh(const complex<T>& x);
// Returns: The complex arc hyperbolic tangent of x.
// Remarks: Behaves the same as the C function catanh. See also:
template<class T> complex<T> cos(const complex<T>& x);
// Returns: The complex cosine of x.
template<class T> complex<T> cosh(const complex<T>& x);
// Returns: The complex hyperbolic cosine of x. template<class T> complex<T> exp(const complex<T>& x);
// Returns: The complex base-e exponential of x. template<class T> complex<T> log(const complex<T>& x);
// Returns: The complex natural (base-e) logarithm of x. For all x, imag(log(x)) lies in the interval [−π, π].
// [Note 1: The semantics of this function are intended to be the same in C++ as they are for clog in C.
// Remarks: The branch cuts are along the negative real axis.
template<class T> complex<T> log10(const complex<T>& x);
// Returns: The complex common (base-10) logarithm of x, defined as log(x) / log(10). Remarks: The branch cuts are along the negative real axis.
template<class T> complex<T> pow(const complex<T>& x, const complex<T>& y);
template<class T> complex<T> pow(const complex<T>& x, const T& y);
template<class T> complex<T> pow(const T& x, const complex<T>& y);
// Returns: The complex power of base x raised to the yth power, defined as exp(y * log(x)). The value returned for pow(0, 0) is implementation-defined.
// Remarks: The branch cuts are along the negative real axis. template<class T> complex<T> sin(const complex<T>& x);
// Returns: The complex sine of x.
template<class T> complex<T> sinh(const complex<T>& x);
// Returns: The complex hyperbolic sine of x.
template<class T> complex<T> sqrt(const complex<T>& x);
// Returns: The complex square root of x, in the range of the right half-plane.
// [Note 2: The semantics of this function are intended to be the same in C++ as they are for csqrt in C.
// Remarks: The branch cuts are along the negative real axis.
template<class T> complex<T> tan(const complex<T>& x);
// Returns: The complex tangent of x.
template<class T> complex<T> tanh(const complex<T>& x);
// Returns: The complex hyperbolic tangent of x.
// 28.4.10 Additional overloads [cmplx.over]
// — If the argument has type long double, then it is effectively cast to complex<long double>.
// — Otherwise, if the argument has type double or an integer type, then it is effectively cast to complex<double>.
// — Otherwise, if the argument has type float, then it is effectively cast to complex<float>.
// — If either argument has type complex<long double> or type long double, then both arguments are of type complex<T>:
//     arg                   norm
//     conj                  proj
//     imag                  real
// where norm, conj, imag, and real are constexpr overloads. 2 The additional overloads shall be sufficient to ensure:
// Function template pow shall have additional overloads sufficient to ensure, for a call with at least one argument
//  This subclause describes literal suffixes for constructing complex number literals. The suffixes i, il, and if create complex numbers of the types complex<double>, complex<long double>, and complex<float> respectively, with their imaginary part denoted by the given literal number and the real part being zero.
// — Otherwise, if either argument has type complex<double>, double, or an integer type, then both effectively cast to complex<long double>. arguments are effectively cast to complex<double>.
// — Otherwise, if either argument has type complex<float> or float, then both arguments are effectively cast to complex<float>.
// 28.4.11 Suffixes for complex number literals [complex.literals]
constexpr complex<long double> operator""il(long double d);
constexpr complex<long double> operator""il(unsigned long long d);
// Returns: complex<long double>{0.0L, static_cast<long double>(d)}. constexpr complex<double> operator""i(long double d);
constexpr complex<double> operator""i(unsigned long long d);
// Returns: complex<double>{0.0, static_cast<double>(d)}. constexpr complex<float> operator""if(long double d);
constexpr complex<float> operator""if(unsigned long long d);
int main() {
    cout  <<  n4910 << endl;
    return EXIT_SUCCESS;
}```

## 編纂・実行結果(compile and go)

```ubuntu:bash
$ clang++ p1270.cpp -std=03 -o p1270l -I. -Wall
In file included from p1270.cpp:10:
In file included from ./N4910.h:11:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/atomic:38:
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support \
 ^
p1270.cpp:28:19: error: unknown type name 'constexpr'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                  ^
p1270.cpp:28:29: error: no variable template matches partial specialization
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                            ^
p1270.cpp:28:39: error: expected ';' at end of declaration
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                      ^
                                      ;
p1270.cpp:28:64: error: use of undeclared identifier 'T'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                               ^
p1270.cpp:28:83: error: use of undeclared identifier 'T'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                  ^
p1270.cpp:28:40: error: C++ requires a type specifier for all declarations
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                       ^
p1270.cpp:28:107: error: unknown type name 'constexpr'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                          ^
p1270.cpp:28:117: error: no variable template matches partial specialization
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                    ^
p1270.cpp:28:127: error: expected ';' at end of declaration
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                              ^
                                                                                                                              ;
p1270.cpp:28:152: error: use of undeclared identifier 'T'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                       ^
p1270.cpp:28:163: error: unknown type name 'T'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                  ^
p1270.cpp:28:128: error: C++ requires a type specifier for all declarations
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                               ^
p1270.cpp:28:186: error: unknown type name 'constexpr'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                                         ^
p1270.cpp:28:196: error: no variable template matches partial specialization
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                                                   ^
p1270.cpp:28:206: error: expected ';' at end of declaration
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                                                             ^
                                                                                                                                                                                                             ;
p1270.cpp:28:223: error: unknown type name 'T'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                                                                              ^
p1270.cpp:28:241: error: use of undeclared identifier 'T'
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                                                                                                ^
p1270.cpp:28:207: error: C++ requires a type specifier for all declarations
template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
                                                                                                                                                                                                              ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
$ clang++ p1270.cpp -std=2b -o p1270l -I. -Wall
p1270.cpp:53:55: error: redefinition of default argument
template<class T> complex<T> polar(const T&, const T& = T());
                                                      ^ ~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:83:68: note: previous definition is here
  template<typename _Tp> complex<_Tp> polar(const _Tp&, const _Tp& = 0);
                                                                   ^ ~
p1270.cpp:75:36: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
    constexpr complex<long double> operator""il(long double);
                                   ^
p1270.cpp:76:36: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
    constexpr complex<long double> operator""il(unsigned long long);
                                   ^
p1270.cpp:77:31: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
    constexpr complex<double> operator""i(long double);
                              ^
p1270.cpp:78:31: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
    constexpr complex<double> operator""i(unsigned long long);
                              ^
p1270.cpp:79:30: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
    constexpr complex<float> operator""if(long double);
                             ^
p1270.cpp:80:30: warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
    constexpr complex<float> operator""if(unsigned long long);
                             ^
p1270.cpp:85:29: error: redefinition of 'complex'
    template<class T> class complex {
                            ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: previous definition is here
    struct complex
           ^
p1270.cpp:110:25: error: redefinition of 'complex<float>'
       template<> class complex<float> {
                        ^~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:1082:12: note: previous definition is here
    struct complex<float>
           ^
p1270.cpp:133:18: error: redefinition of 'complex<double>'
template<> class complex<double> {
                 ^~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:1227:12: note: previous definition is here
    struct complex<double>
           ^
p1270.cpp:156:18: error: redefinition of 'complex<long double>'
template<> class complex<long double> {
                 ^~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:1372:12: note: previous definition is here
    struct complex<long double>
           ^
p1270.cpp:180:32: error: deduction guide must be declared in the same scope as template 'std::complex'
   template<class T> constexpr complex(const T& re = T(), const T& im = T());
                               ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:180:32: error: deduction guide cannot be declared 'constexpr'
   template<class T> constexpr complex(const T& re = T(), const T& im = T());
                     ~~~~~~~~~ ^
p1270.cpp:180:32: error: deduction guide declaration without trailing return type
p1270.cpp:187:37: error: unknown type name 'T'
constexpr complex& operator+=(const T& rhs);
                                    ^
p1270.cpp:187:11: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
constexpr complex& operator+=(const T& rhs);
          ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:190:37: error: unknown type name 'T'
constexpr complex& operator-=(const T& rhs);
                                    ^
p1270.cpp:190:11: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
constexpr complex& operator-=(const T& rhs);
          ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:193:37: error: unknown type name 'T'
constexpr complex& operator*=(const T& rhs);
                                    ^
p1270.cpp:193:11: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
constexpr complex& operator*=(const T& rhs);
          ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:195:37: error: unknown type name 'T'
constexpr complex& operator/=(const T& rhs);
                                    ^
p1270.cpp:195:11: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
constexpr complex& operator/=(const T& rhs);
          ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:197:29: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
template<class X> constexpr complex& operator+=(const complex<X>& rhs);
                            ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:199:29: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
template<class X> constexpr complex& operator-=(const complex<X>& rhs);
                            ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
p1270.cpp:202:32: error: use of class template 'complex' requires template arguments; argument deduction not allowed in function return type
   template<class X> constexpr complex& operator*=(const complex<X>& rhs);
                               ^~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/complex:127:12: note: template is declared here
    struct complex
           ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
6 warnings and 20 errors generated.

$ g++ p1270.cpp -std=03 -o p1270g -I. -Wall
In file included from /usr/local/include/c++/12.1.0/atomic:38,
                 from N4910.h:11,
                 from p1270.cpp:10:
/usr/local/include/c++/12.1.0/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
   32 | #error This file requires compiler and library support \
      |  ^~~~~
p1270.cpp:28:19: warning: identifier 'constexpr' is a keyword in C++11 [-Wc++11-compat]
   28 | template<class T> constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:28:19: error: 'constexpr' does not name a type
p1270.cpp:28:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:28:107: error: 'constexpr' does not name a type
   28 | constexpr complex<T> operator+(const complex<T>&, const complex<T>&); template<class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
      |                                                                                         ^~~~~~~~~

p1270.cpp:28:107: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:28:186: error: 'constexpr' does not name a type
   28 | class T> constexpr complex<T> operator+(const complex<T>&, const T&); template<class T> constexpr complex<T> operator+(const T&, const complex<T>&);
      |                                                                                         ^~~~~~~~~

p1270.cpp:28:186: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:29:19: error: 'constexpr' does not name a type
   29 | template<class T> constexpr complex<T> operator-(const complex<T>&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:29:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:30:19: error: 'constexpr' does not name a type
   30 | template<class T> constexpr complex<T> operator-(const complex<T>&, const T&);
      |                   ^~~~~~~~~
p1270.cpp:30:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:31:19: error: 'constexpr' does not name a type
   31 | template<class T> constexpr complex<T> operator-(const T&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:31:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:32:19: error: 'constexpr' does not name a type
   32 | template<class T> constexpr complex<T> operator*(const complex<T>&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:32:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:33:19: error: 'constexpr' does not name a type
   33 | template<class T> constexpr complex<T> operator*(const complex<T>&, const T&);
      |                   ^~~~~~~~~
p1270.cpp:33:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:34:19: error: 'constexpr' does not name a type
   34 | template<class T> constexpr complex<T> operator*(const T&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:34:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:35:19: error: 'constexpr' does not name a type
   35 | template<class T> constexpr complex<T> operator/(const complex<T>&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:35:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:36:19: error: 'constexpr' does not name a type
   36 | template<class T> constexpr complex<T> operator/(const complex<T>&, const T&);
      |                   ^~~~~~~~~
p1270.cpp:36:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:37:19: error: 'constexpr' does not name a type
   37 | template<class T> constexpr complex<T> operator/(const T&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:37:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:38:19: error: 'constexpr' does not name a type
   38 | template<class T> constexpr complex<T> operator+(const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:38:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:39:19: error: 'constexpr' does not name a type
   39 | template<class T> constexpr complex<T> operator-(const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:39:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:40:19: error: 'constexpr' does not name a type
   40 | template<class T> constexpr bool operator==(const complex<T>&, const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:40:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:41:19: error: 'constexpr' does not name a type
   41 | template<class T> constexpr bool operator==(const complex<T>&, const T&);
      |                   ^~~~~~~~~
p1270.cpp:41:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:47:19: error: 'constexpr' does not name a type
   47 | template<class T> constexpr T real(const complex<T>&); template<class T> constexpr T imag(const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:47:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:47:74: error: 'constexpr' does not name a type
   47 | template<class T> constexpr T real(const complex<T>&); template<class T> constexpr T imag(const complex<T>&);
      |                                                                          ^~~~~~~~~
p1270.cpp:47:74: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:50:19: error: 'constexpr' does not name a type
   50 | template<class T> constexpr T norm(const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:50:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:51:19: error: 'constexpr' does not name a type
   51 | template<class T> constexpr complex<T> conj(const complex<T>&);
      |                   ^~~~~~~~~
p1270.cpp:51:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:53:30: error: redeclaration of 'template<class T> std::complex<_Tp> std::polar(const T&, const T&' may not have default arguments [-fpermissive]
   53 | template<class T> complex<T> polar(const T&, const T& = T());
      |                              ^~~~~
p1270.cpp:75:5: error: 'constexpr' does not name a type
   75 |     constexpr complex<long double> operator""il(long double);
      |     ^~~~~~~~~
p1270.cpp:75:5: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:76:5: error: 'constexpr' does not name a type
   76 |     constexpr complex<long double> operator""il(unsigned long long);
      |     ^~~~~~~~~
p1270.cpp:76:5: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:77:5: error: 'constexpr' does not name a type
   77 |     constexpr complex<double> operator""i(long double);
      |     ^~~~~~~~~
p1270.cpp:77:5: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:78:5: error: 'constexpr' does not name a type
   78 |     constexpr complex<double> operator""i(unsigned long long);
      |     ^~~~~~~~~
p1270.cpp:78:5: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:79:5: error: 'constexpr' does not name a type
   79 |     constexpr complex<float> operator""if(long double);
      |     ^~~~~~~~~
p1270.cpp:79:5: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:80:5: error: 'constexpr' does not name a type
   80 |     constexpr complex<float> operator""if(unsigned long long);
      |     ^~~~~~~~~
p1270.cpp:80:5: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:85:29: error: redefinition of 'class std::complex<_Tp>'
   85 |     template<class T> class complex {
      |                             ^~~~~~~
In file included from N4910.h:9:
/usr/local/include/c++/12.1.0/complex:127:11: note: previous definition of 'class std::complex<_Tp>'
  127 |     class complex
      |           ^~~~~~~
p1270.cpp:110:25: error: redefinition of 'class std::complex<float>'
  110 |        template<> class complex<float> {
      |                         ^~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/complex:1083:11: note: previous definition of 'class std::complex<float>'
 1083 |     class complex<float>
      |           ^~~~~~~~~~~~~~
p1270.cpp:133:18: error: redefinition of 'class std::complex<double>'
  133 | template<> class complex<double> {
      |                  ^~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/complex:1229:11: note: previous definition of 'class std::complex<double>'
 1229 |     class complex<double>
      |           ^~~~~~~~~~~~~~~
p1270.cpp:156:18: error: redefinition of 'class std::complex<long double>'
  156 | template<> class complex<long double> {
      |                  ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/complex:1375:11: note: previous definition of 'class std::complex<long double'
 1375 |     class complex<long double>
      |           ^~~~~~~~~~~~~~~~~~~~
p1270.cpp:180:22: error: 'constexpr' does not name a type
  180 |    template<class T> constexpr complex(const T& re = T(), const T& im = T());
      |                      ^~~~~~~~~
p1270.cpp:180:22: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:187:1: error: 'constexpr' does not name a type
  187 | constexpr complex& operator+=(const T& rhs);
      | ^~~~~~~~~
p1270.cpp:187:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:190:1: error: 'constexpr' does not name a type
  190 | constexpr complex& operator-=(const T& rhs);
      | ^~~~~~~~~
p1270.cpp:190:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:193:1: error: 'constexpr' does not name a type
  193 | constexpr complex& operator*=(const T& rhs);
      | ^~~~~~~~~
p1270.cpp:193:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:195:1: error: 'constexpr' does not name a type
  195 | constexpr complex& operator/=(const T& rhs);
      | ^~~~~~~~~
p1270.cpp:195:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:197:19: error: 'constexpr' does not name a type
  197 | template<class X> constexpr complex& operator+=(const complex<X>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:197:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:199:19: error: 'constexpr' does not name a type
  199 | template<class X> constexpr complex& operator-=(const complex<X>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:199:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:202:22: error: 'constexpr' does not name a type
  202 |    template<class X> constexpr complex& operator*=(const complex<X>& rhs);
      |                      ^~~~~~~~~
p1270.cpp:202:22: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:204:19: error: 'constexpr' does not name a type
  204 | template<class X> constexpr complex& operator/=(const complex<X>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:204:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:207:19: error: 'constexpr' does not name a type
  207 | template<class T> constexpr complex<T> operator+(const complex<T>& lhs);
      |                   ^~~~~~~~~
p1270.cpp:207:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:209:19: error: 'constexpr' does not name a type
  209 | template<class T> constexpr complex<T> operator+(const complex<T>& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:209:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:210:19: error: 'constexpr' does not name a type
  210 | template<class T> constexpr complex<T> operator+(const complex<T>& lhs, const T& rhs);
      |                   ^~~~~~~~~
p1270.cpp:210:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:211:19: error: 'constexpr' does not name a type
  211 | template<class T> constexpr complex<T> operator+(const T& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:211:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:213:19: error: 'constexpr' does not name a type
  213 | template<class T> constexpr complex<T> operator-(const complex<T>& lhs);
      |                   ^~~~~~~~~
p1270.cpp:213:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:215:19: error: 'constexpr' does not name a type
  215 | template<class T> constexpr complex<T> operator-(const complex<T>& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:215:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:216:19: error: 'constexpr' does not name a type
  216 | template<class T> constexpr complex<T> operator-(const complex<T>& lhs, const T& rhs);
      |                   ^~~~~~~~~
p1270.cpp:216:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:217:19: error: 'constexpr' does not name a type
  217 | template<class T> constexpr complex<T> operator-(const T& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:217:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:219:19: error: 'constexpr' does not name a type
  219 | template<class T> constexpr complex<T> operator*(const complex<T>& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:219:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:220:19: error: 'constexpr' does not name a type
  220 | template<class T> constexpr complex<T> operator*(const complex<T>& lhs, const T& rhs);
      |                   ^~~~~~~~~
p1270.cpp:220:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:221:19: error: 'constexpr' does not name a type
  221 | template<class T> constexpr complex<T> operator*(const T& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:221:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:223:19: error: 'constexpr' does not name a type
  223 | template<class T> constexpr complex<T> operator/(const complex<T>& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:223:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:224:19: error: 'constexpr' does not name a type
  224 | template<class T> constexpr complex<T> operator/(const complex<T>& lhs, const T& rhs);
      |                   ^~~~~~~~~
p1270.cpp:224:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:225:19: error: 'constexpr' does not name a type
  225 | template<class T> constexpr complex<T> operator/(const T& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:225:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:227:19: error: 'constexpr' does not name a type
  227 | template<class T> constexpr bool operator==(const complex<T>& lhs, const complex<T>& rhs);
      |                   ^~~~~~~~~
p1270.cpp:227:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:228:19: error: 'constexpr' does not name a type
  228 | template<class T> constexpr bool operator==(const complex<T>& lhs, const T& rhs);
      |                   ^~~~~~~~~
p1270.cpp:228:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:239:23: error: 'charT' was not declared in this scope; did you mean 'char'?
  239 |   basic_ostringstream<charT, traits> s;
      |                       ^~~~~
      |                       char
p1270.cpp:239:30: error: 'traits' was not declared in this scope
  239 |   basic_ostringstream<charT, traits> s;
      |                              ^~~~~~
p1270.cpp:239:36: error: template argument 1 is invalid
  239 |   basic_ostringstream<charT, traits> s;
      |                                    ^
p1270.cpp:239:36: error: template argument 2 is invalid
p1270.cpp:239:36: error: template argument 3 is invalid
p1270.cpp:240:3: error: 's' does not name a type
  240 |   s.flags(o.flags());
      |   ^
p1270.cpp:241:3: error: 's' does not name a type
  241 |   s.imbue(o.getloc());
      |   ^
p1270.cpp:242:3: error: 's' does not name a type
  242 |   s.precision(o.precision());
      |   ^
p1270.cpp:243:3: error: 's' does not name a type
  243 |   s << '(' << x.real() << "," << x.imag() << ')';
      |   ^
p1270.cpp:244:3: error: expected unqualified-id before 'return'
  244 |   return o << s.str();
      |   ^~~~~~
p1270.cpp:247:19: error: 'constexpr' does not name a type
  247 | template<class T> constexpr T real(const complex<T>& x);
      |                   ^~~~~~~~~
p1270.cpp:247:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:249:19: error: 'constexpr' does not name a type
  249 | template<class T> constexpr T imag(const complex<T>& x);
      |                   ^~~~~~~~~
p1270.cpp:249:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:255:19: error: 'constexpr' does not name a type
  255 | template<class T> constexpr complex<T> conj(const complex<T>& x);
      |                   ^~~~~~~~~
p1270.cpp:255:19: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:322:1: error: 'constexpr' does not name a type
  322 | constexpr complex<long double> operator""il(long double d);
      | ^~~~~~~~~
p1270.cpp:322:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:323:1: error: 'constexpr' does not name a type
  323 | constexpr complex<long double> operator""il(unsigned long long d);
      | ^~~~~~~~~
p1270.cpp:323:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:325:1: error: 'constexpr' does not name a type
  325 | constexpr complex<double> operator""i(unsigned long long d);
      | ^~~~~~~~~
p1270.cpp:325:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'
p1270.cpp:327:1: error: 'constexpr' does not name a type
  327 | constexpr complex<float> operator""if(unsigned long long d);
      | ^~~~~~~~~
p1270.cpp:327:1: note: C++11 'constexpr' only available with '-std=c++11' or '-std=gnu++11'

$ g++ p1270.cpp -std=2b -o p1270g -I. -Wall
p1270.cpp:53:30: error: redeclaration of 'template<class T> std::complex<_Tp> std::polar(const T&, const T&' may not have default arguments [-fpermissive]
   53 | template<class T> complex<T> polar(const T&, const T& = T());
      |                              ^~~~~
p1270.cpp:75:36: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
   75 |     constexpr complex<long double> operator""il(long double);
      |                                    ^~~~~~~~
p1270.cpp:76:36: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
   76 |     constexpr complex<long double> operator""il(unsigned long long);
      |                                    ^~~~~~~~
p1270.cpp:77:31: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
   77 |     constexpr complex<double> operator""i(long double);
      |                               ^~~~~~~~
p1270.cpp:78:31: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
   78 |     constexpr complex<double> operator""i(unsigned long long);
      |                               ^~~~~~~~
p1270.cpp:79:30: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
   79 |     constexpr complex<float> operator""if(long double);
      |                              ^~~~~~~~
p1270.cpp:80:30: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
   80 |     constexpr complex<float> operator""if(unsigned long long);
      |                              ^~~~~~~~
p1270.cpp:85:29: error: redefinition of 'class std::complex<_Tp>'
   85 |     template<class T> class complex {
      |                             ^~~~~~~
In file included from N4910.h:9,
                 from p1270.cpp:10:
/usr/local/include/c++/12.1.0/complex:127:11: note: previous definition of 'class std::complex<_Tp>'
  127 |     class complex
      |           ^~~~~~~
p1270.cpp:110:25: error: redefinition of 'class std::complex<float>'
  110 |        template<> class complex<float> {
      |                         ^~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/complex:1083:11: note: previous definition of 'class std::complex<float>'
 1083 |     class complex<float>
      |           ^~~~~~~~~~~~~~
p1270.cpp:133:18: error: redefinition of 'class std::complex<double>'
  133 | template<> class complex<double> {
      |                  ^~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/complex:1229:11: note: previous definition of 'class std::complex<double>'
 1229 |     class complex<double>
      |           ^~~~~~~~~~~~~~~
p1270.cpp:156:18: error: redefinition of 'class std::complex<long double>'
  156 | template<> class complex<long double> {
      |                  ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/complex:1375:11: note: previous definition of 'class std::complex<long double'
 1375 |     class complex<long double>
      |           ^~~~~~~~~~~~~~~~~~~~
p1270.cpp:180:22: error: 'decl-specifier' in declaration of deduction guide
  180 |    template<class T> constexpr complex(const T& re = T(), const T& im = T());
      |                      ^~~~~~~~~
p1270.cpp:180:32: error: deduction guide for 'std::complex<_Tp>' must have trailing return type
  180 |    template<class T> constexpr complex(const T& re = T(), const T& im = T());
      |                                ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:187:37: error: 'T' does not name a type
  187 | constexpr complex& operator+=(const T& rhs);
      |                                     ^
p1270.cpp:187:11: error: deduced class type 'complex' in function return type
  187 | constexpr complex& operator+=(const T& rhs);
      |           ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:190:37: error: 'T' does not name a type
  190 | constexpr complex& operator-=(const T& rhs);
      |                                     ^
p1270.cpp:190:11: error: deduced class type 'complex' in function return type
  190 | constexpr complex& operator-=(const T& rhs);
      |           ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:193:37: error: 'T' does not name a type
  193 | constexpr complex& operator*=(const T& rhs);
      |                                     ^
p1270.cpp:193:11: error: deduced class type 'complex' in function return type
  193 | constexpr complex& operator*=(const T& rhs);
      |           ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:195:37: error: 'T' does not name a type
  195 | constexpr complex& operator/=(const T& rhs);
      |                                     ^
p1270.cpp:195:11: error: deduced class type 'complex' in function return type
  195 | constexpr complex& operator/=(const T& rhs);
      |           ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:197:29: error: deduced class type 'complex' in function return type
  197 | template<class X> constexpr complex& operator+=(const complex<X>& rhs);
      |                             ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:199:29: error: deduced class type 'complex' in function return type
  199 | template<class X> constexpr complex& operator-=(const complex<X>& rhs);
      |                             ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:202:32: error: deduced class type 'complex' in function return type
  202 |    template<class X> constexpr complex& operator*=(const complex<X>& rhs);
      |                                ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:204:29: error: deduced class type 'complex' in function return type
  204 | template<class X> constexpr complex& operator/=(const complex<X>& rhs);
      |                             ^~~~~~~
/usr/local/include/c++/12.1.0/complex:67:32: note: 'template<class _Tp> class std::complex' declared here
   67 |   template<typename _Tp> class complex;
      |                                ^~~~~~~
p1270.cpp:239:23: error: 'charT' was not declared in this scope; did you mean 'char'?
  239 |   basic_ostringstream<charT, traits> s;
      |                       ^~~~~
      |                       char
p1270.cpp:239:30: error: 'traits' was not declared in this scope
  239 |   basic_ostringstream<charT, traits> s;
      |                              ^~~~~~
p1270.cpp:239:36: error: template argument 1 is invalid
  239 |   basic_ostringstream<charT, traits> s;
      |                                    ^
p1270.cpp:239:36: error: template argument 2 is invalid
p1270.cpp:239:36: error: template argument 3 is invalid
p1270.cpp:240:3: error: 's' does not name a type
  240 |   s.flags(o.flags());
      |   ^
p1270.cpp:241:3: error: 's' does not name a type
  241 |   s.imbue(o.getloc());
      |   ^
p1270.cpp:242:3: error: 's' does not name a type
  242 |   s.precision(o.precision());
      |   ^
p1270.cpp:243:3: error: 's' does not name a type
  243 |   s << '(' << x.real() << "," << x.imag() << ')';
      |   ^
p1270.cpp:244:3: error: expected unqualified-id before 'return'
  244 |   return o << s.str();
      |   ^~~~~~
p1270.cpp:322:32: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
  322 | constexpr complex<long double> operator""il(long double d);
      |                                ^~~~~~~~
p1270.cpp:323:32: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
  323 | constexpr complex<long double> operator""il(unsigned long long d);
      |                                ^~~~~~~~
p1270.cpp:325:27: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
  325 | constexpr complex<double> operator""i(unsigned long long d);
      |                           ^~~~~~~~
p1270.cpp:327:26: warning: literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
  327 | constexpr complex<float> operator""if(unsigned long long d);
      |                          ^~~~~~~~
```

## 検討事項(agenda)
コンパイルエラーを取るか、コンパイルエラーの理由を解説する。

<!-- リンクエラーの解説をする。clang++とg++の比較。意味のある出力。
コンパイルエラーを取るか、コンパイルエラーの理由を解説する。-->

## 応用例1　AUTOSAR C++

AUTOSARでC++のコーディング標準を作っている。　
MISRA-C++コーディング標準の改訂をまたずに、C++14に対応したかったためかもしれない。　


Autosar Guidelines C++14 example code compile list


https://qiita.com/kaizen_nagoya/items/8ccbf6675c3494d57a76

## 応用例2　MISRA C++

MISRA C++, AUTOSAR C++について

https://qiita.com/kaizen_nagoya/items/3436fbd49865e0da7d35

MISRA C++ 5-0-16

https://qiita.com/kaizen_nagoya/items/7df2d4e05db724752a74


## 応用例3 CERT C++

MISRA C/C++, AUTOSAR C++, CERT C/C++とC/C++工業標準をコンパイルする

https://qiita.com/kaizen_nagoya/items/8dff19511e42b2593db1

## 応用例4 箱庭　

箱庭ではUnityをはじめC++を使っているらしい。　

ここでコンパイルしたコードと同じようなコードを使っているか、
ここで出たコンパイルエラーと同じようなエラーがでたかを
いろいろな版のコンパイラでコンパイルして確認していく。

仮想戦略会議「箱庭」

https://qiita.com/kaizen_nagoya/items/73cb132707653176a461

お盆には「箱庭」記事を書きましょう「もくもく会」の題材になる（１）

https://qiita.com/kaizen_nagoya/items/a22bf2b1dab0ad3258d4

お盆には「箱庭」記事を書きましょう「もくもく会」の題材になる（2）

https://qiita.com/kaizen_nagoya/items/e3c0ceb2dcc9cf3f3fac


# 参考資料(reference)

エンジニア夏休み企画 個人開発

https://qiita.com/official-events/6d31965c499a69377c0b


## 自己参考資料(self reference)

関連する自己参照以外は、こちらの先頭に移転。

C言語（C++)に対する誤解、曲解、無理解、爽快。

https://qiita.com/kaizen_nagoya/items/3f3992c9722c1cee2e3a

#include "N4910.h"

https://qiita.com/kaizen_nagoya/items/163a47cef7d6bb1c33a8

C++N4910資料の改善点

https://qiita.com/kaizen_nagoya/items/fb4ceb5d117a54641af3

dockerにclang

https://qiita.com/kaizen_nagoya/items/8829ffeee397eda50e80

docker gnu(gcc/g++) and llvm(clang/clang++)

https://qiita.com/kaizen_nagoya/items/059874ea39c4de64c0f7

コンパイル用shell script C版(clangとgcc)とC++版(clang++とg++)

https://qiita.com/kaizen_nagoya/items/74220c0577a512c2d7da


C++N4910:2022 tag follower 300人超えました。ありがとうございます。

https://qiita.com/kaizen_nagoya/items/a63fb96d351ac5c16ff7

astyle 使ってみた

https://qiita.com/kaizen_nagoya/items/3c9a87a781d53a1a23f3

【個人開発】　効率的な背景　＜エンジニア夏休み企画＞

https://qiita.com/kaizen_nagoya/items/3ebab436e63731e4b885

<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words and/or centences in order.
Este artículo no está completo. Agregaré algunas palabras en orden.

## 知人資料
' @kazuo_reve 私が効果を確認した「小川メソッド」
https://qiita.com/kazuo_reve/items/a3ea1d9171deeccc04da

' @kazuo_reve 新人の方によく展開している有益な情報
https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1

' @kazuo_reve Vモデルについて勘違いしていたと思ったこと
https://qiita.com/kazuo_reve/items/46fddb094563bd9b2e1e

## 自己記事一覧
Qiitaで逆リンクを表示しなくなったような気がする。時々、スマフォで表示するとあらわっることがあり、完全に削除したのではなさそう。

４月以降、せっせとリンクリストを作り、統計を取って確率を説明しようとしている。
2025年２月末を目標にしている。

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

仮説（0）一覧（目標100現在40）
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

Qiita(0)Qiita関連記事一覧（自分）
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

C++ Support(0)　
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514

Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48) 
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

プログラムちょい替え（0）一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394

言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53

安全（0）安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

技術士(0)一覧
https://qiita.com/kaizen_nagoya/items/ce4ccf4eb9c5600b89ea

Reserchmap(0) 一覧
https://qiita.com/kaizen_nagoya/items/506c79e562f406c4257e

物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学 
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事１００
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

coq(0) 一覧
https://qiita.com/kaizen_nagoya/items/d22f9995cf2173bc3b13

統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba

図(0) state, sequence and timing. UML and お絵描き 
https://qiita.com/kaizen_nagoya/items/60440a882146aeee9e8f

色(0) 記事100書く切り口 
https://qiita.com/kaizen_nagoya/items/22331c0335ed34326b9b

品質一覧 
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971

言語・文学記事　１００
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

水の資料集(0)　方針と成果
https://qiita.com/kaizen_nagoya/items/f5dbb30087ea732b52aa

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

日本語（０）一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

音楽　一覧(0) 
https://qiita.com/kaizen_nagoya/items/b6e5f42bbfe3bbe40f5d

「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧 
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b

鉄道（０）鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/faa4ea03d91d901a618a

OSEK OS設計の基礎　OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68

官公庁・学校・公的団体（NPOを含む）システムの課題、官（０）
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ　 ベクタージャパン　
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧　
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧（０）
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧　
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

programの本質は計画だ。programは設計だ。
https://qiita.com/kaizen_nagoya/items/c8545a769c246a458c27

登壇直後版 色使い(JIS安全色) Qiita Engineer Festa 2023〜私しか得しないニッチな技術でLT〜 スライド編 0.15
https://qiita.com/kaizen_nagoya/items/f0d3070d839f4f735b2b

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

逆も真：社会人が最初に確かめるとよいこと。OSEK(69)、Ethernet(59)
https://qiita.com/kaizen_nagoya/items/39afe4a728a31b903ddc

統計の嘘。仮説（127）
https://qiita.com/kaizen_nagoya/items/63b48ecf258a3471c51b

自分の言葉だけで論理展開できるのが天才なら、文章の引用だけで論理展開できるのが秀才だ。仮説（136）
https://qiita.com/kaizen_nagoya/items/97cf07b9e24f860624dd

参考文献駆動執筆(references driven writing)・デンソークリエイト編
https://qiita.com/kaizen_nagoya/items/b27b3f58b8bf265a5cd1

「何を」よりも「誰を」。１０年後のために今見習いたい人たち
https://qiita.com/kaizen_nagoya/items/8045978b16eb49d572b2

Qiitaの記事に３段階または５段階で到達するための方法
https://qiita.com/kaizen_nagoya/items/6e9298296852325adc5e

出力(output)と呼ばないで。これは状態(state)です。
https://qiita.com/kaizen_nagoya/items/80b8b5913b2748867840

祝休日・謹賀新年 2025年の目標
https://qiita.com/kaizen_nagoya/items/dfa34827932f99c59bbc

Qiita 1年間をまとめた「振り返りページ」＠2024
https://qiita.com/kaizen_nagoya/items/ed6be239119c99b15828

2024 参加・主催Calendarと投稿記事一覧 Qiita(248)
https://qiita.com/kaizen_nagoya/items/d80b8fbac2496df7827f

主催Calendar2024分析 Qiita(254)
https://qiita.com/kaizen_nagoya/items/15807336d583076f70bc

Calendar 統計
https://qiita.com/kaizen_nagoya/items/e315558dcea8ee3fe43e

LLM 関連 Calendar 2024 
https://qiita.com/kaizen_nagoya/items/c36033cf66862d5496fa

Large Language Model Related Calendar 
https://qiita.com/kaizen_nagoya/items/3beb0bc3fb71e3ae6d66

博士論文 Calendar 2024 を開催します。 
https://qiita.com/kaizen_nagoya/items/51601357efbcaf1057d0

博士論文(0)関連記事一覧
https://qiita.com/kaizen_nagoya/items/8f223a760e607b705e78

coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68

あなたは「勘違いまとめ」から、勘違いだと言っていることが勘違いだといくつ見つけられますか。人間の間違い(human error(125))の種類と対策
https://qiita.com/kaizen_nagoya/items/ae391b77fffb098b8fb4

プログラマの「プログラムが書ける」思い込みは強みだ。３つの理由。仮説（168）統計と確率(17) , OSEK(79)
https://qiita.com/kaizen_nagoya/items/bc5dd86e414de402ec29

出力(output)と呼ばないで。これは状態(state)です。
https://qiita.com/kaizen_nagoya/items/80b8b5913b2748867840

これからの情報伝達手段の在り方について考えてみよう。炎上と便乗。
https://qiita.com/kaizen_nagoya/items/71a09077ac195214f0db

ISO/IEC JTC1 SC7 Software and System Engineering
https://qiita.com/kaizen_nagoya/items/48b43f0f6976a078d907

アクセシビリティの知見を発信しよう！（再び）
https://qiita.com/kaizen_nagoya/items/03457eb9ee74105ee618

統計論及確率論輪講（再び）
https://qiita.com/kaizen_nagoya/items/590874ccfca988e85ea3

読者の心をグッと惹き寄せる7つの魔法
https://qiita.com/kaizen_nagoya/items/b1b5e89bd5c0a211d862

「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b

ソースコードで議論しよう。日本語で議論するの止めましょう（あるプログラミング技術の議論報告）
https://qiita.com/kaizen_nagoya/items/8b9811c80f3338c6c0b0

脳内コンパイラの3つの危険
https://qiita.com/kaizen_nagoya/items/7025cf2d7bd9f276e382

心理学の本を読むよりはコンパイラ書いた方がよくね。仮説（34）
https://qiita.com/kaizen_nagoya/items/fa715732cc148e48880e

NASAを超えるつもりがあれば読んでください。
https://qiita.com/kaizen_nagoya/items/e81669f9cb53109157f6

データサイエンティストの気づき!「勉強して仕事に役立てない人。大嫌い!!」『それ自分かも?』ってなった!!! 
https://qiita.com/kaizen_nagoya/items/d85830d58d8dd7f71d07

「ぼくの好きな先生」「人がやらないことをやれ」プログラマになるまで。仮説（37）　
https://qiita.com/kaizen_nagoya/items/53e4bded9fe5f724b3c4

なぜ経済学徒を辞め、計算機屋になったか（経済学部入学前・入学後・卒業後対応） 転職(1)  
https://qiita.com/kaizen_nagoya/items/06335a1d24c099733f64    

プログラミング言語教育のXYZ。 仮説（52） 
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4

【24卒向け】9ヶ月後に年収１０００万円を目指す。二つの関門と三つの道。
https://qiita.com/kaizen_nagoya/items/fb5bff147193f726ad25

「【25卒向け】Qiita Career Meetup for STUDENT」予習の勧め
https://qiita.com/kaizen_nagoya/items/00eadb8a6e738cb6336f

大学入試不合格でも筆記試験のない大学に入って卒業できる。卒業しなくても博士になれる。
https://qiita.com/kaizen_nagoya/items/74adec99f396d64b5fd5

全世界の不登校の子供たち「博士論文」を書こう。世界子供博士論文遠隔実践中心 安全(99)
https://qiita.com/kaizen_nagoya/items/912d69032c012bcc84f2

日本のプログラマが世界で戦える16分野。仮説(53),統計と確率(25) 転職(32)、Ethernet(58)
https://qiita.com/kaizen_nagoya/items/a7e634a996cdd02bc53b

小川メソッド　覚え（書きかけ）
https://qiita.com/kaizen_nagoya/items/3593d72eca551742df68

DoCAP（ドゥーキャップ）って何ですか？
https://qiita.com/kaizen_nagoya/items/47e0e6509ab792c43327

views 20,000越え自己記事一覧
https://qiita.com/kaizen_nagoya/items/58e8bd6450957cdecd81

Views１万越え、もうすぐ１万記事一覧 最近いいねをいただいた213記事
https://qiita.com/kaizen_nagoya/items/d2b805717a92459ce853

amazon 殿堂入りNo1レビュアになるまで。仮説(102)
https://qiita.com/kaizen_nagoya/items/83259d18921ce75a91f4

100以上いいねをいただいた記事16選
https://qiita.com/kaizen_nagoya/items/f8d958d9084ffbd15d2a

水道局10年(1976,4-1986,3)を振り返る
https://qiita.com/kaizen_nagoya/items/707fcf6fae230dd349bf

小川清最終講義、最終講義（再）計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on my individual experience. It has nothing to do with the organization or business to which I currently belong.
Este artículo es una impresión personal basada en mi experiencia personal. No tiene nada que ver con la organización o empresa a la que pertenezco actualmente.
### 文書履歴(document history)
ver. 0.01 初稿 　20220817
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
#### Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.
#### Muchas gracias por leer hasta la última oración.
Por favor, haz clic en el ícono Me gusta 💚 y sígueme para tener una vida feliz.