📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag… |
|||
| (同じ利用者による、間の1版が非表示) | |||
| 140行目: | 140行目: | ||
const int ten3 = twice(ten); // コンパイル可能 | const int ten3 = twice(ten); // コンパイル可能 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | |||
下表に、ROM化できる条件を示す。なお、初期化する変数はconstexpr変数とする。<br> | |||
下表から分かることは以下の3つである。<br> | |||
* 渡す引数の指定子は、<code>const / constexpr</code>を指定する。 | |||
* 仮引数の指定子には、<code>指定子なし / const</code>を指定する。 | |||
* 関数の指定子は、必ず<code>constexpr</code>を指定する。<br> | |||
<center> | |||
{| class="wikitable" | |||
|- | |||
! 引数の指定子 !! 仮引数の指定子 !! 関数の指定子 !! コンパイルの可否 | |||
|- style="text-align:center;" | |||
| × || - || - || × | |||
|- style="text-align:center;" | |||
| - || - || × || × | |||
|- style="text-align:center;" | |||
| - || - || const || × | |||
|- style="text-align:center;" | |||
| - || constexpr || - || × | |||
|- style="text-align:center;" | |||
| const || × || constexpr || ○ | |||
|- style="text-align:center;" | |||
| const || const || constexpr || ○ | |||
|- style="text-align:center;" | |||
| constexpr || × || constexpr || ○ | |||
|- style="text-align:center;" | |||
| constexpr || const || constexpr || ○ | |||
|} | |||
</center> | |||
<br> | <br> | ||
上記の例のように、constexpr関数の引数に何を渡すか、constexpr関数の戻り値で何を初期化するかによって、<br> | 上記の例のように、constexpr関数の引数に何を渡すか、constexpr関数の戻り値で何を初期化するかによって、<br> | ||
| 146行目: | 174行目: | ||
これは、設計者に対して、ROM化できるソースコードを記述する促すことになる。<br> | これは、設計者に対して、ROM化できるソースコードを記述する促すことになる。<br> | ||
<br> | <br> | ||
==== constexpr変数への戻り値の代入 ==== | ==== constexpr変数への戻り値の代入 ==== | ||
constexprは関数にも付加することができる。<br> | constexprは関数にも付加することができる。<br> | ||
| 607行目: | 636行目: | ||
* constexprを付けることができる関数の幅は広いので使用するべきである。<br>ただし、テンプレート関数をconstexprにするときは注意が必要である。 | * constexprを付けることができる関数の幅は広いので使用するべきである。<br>ただし、テンプレート関数をconstexprにするときは注意が必要である。 | ||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C++]] | [[カテゴリ:C++]] | ||