7.5 文字列終端ナル文字へのポインタ 公開日:2021年8月20日 C++関数・テンプレート集プログラミング技術情報 次のテンプレート関数は、文字列の終端にあるナル文字へのポインタを返します。文字列は、char型またはwchar_t型の配列はもちろん、他の文字様のデータを扱うための型であってもかまいません。ただし、その型に対するstd: […] 続きを読む
7.4 図形文字に対応する制御文字コードを返す。 公開日:2021年8月20日 C++関数・テンプレート集プログラミング技術情報 次のメタ関数は、ASCII 図形文字に対応する ASCII 制御文字コードを返します。 [crayon-676f0dd5862a6718170708/] これだけでも構わないのですが、有効なCの値の範囲は0x3fから0x […] 続きを読む
7. 文字・文字列・文字コードに関する関数・テンプレート 更新日:2021年8月27日 公開日:2021年8月19日 C++関数・テンプレート集プログラミング技術情報 元ネタ 7.1 Unicode関数・テンプレート集 7.1.1 UTF-16 符号単位がサロゲートか否かを判定する。 7.1.2 サロゲート・ペア⇔Unicodeスカラ値変換 7.1.3 UTF-16文字列関数 7.2 […] 続きを読む
6.2 アドレス (値) のアラインメントを返す。 公開日:2021年8月18日 C++関数・テンプレート集プログラミング技術情報 次の関数テンプレートは、ポインタの境界調整を求めるためのものです。厳密にいえば、ポインタを汎整数型に型変換した場合、それを元の型に再変換して値が変わらないこと以外、すべて処理系定義になるわけですが、実際にはポインタの値= […] 続きを読む
6.1 データを逆順にする。 公開日:2021年8月18日 C++関数・テンプレート集プログラミング技術情報 C++では、配列のほか、std::vectorやstd::listのような列コンテナの並びを逆にするための標準関数が用意されています。<algorithm>で宣言・定義されているstd::reverse関数と […] 続きを読む
6. メモリ上のデータ操作テンプレート 更新日:2021年8月18日 公開日:2021年8月17日 C++関数・テンプレート集プログラミング技術情報 元ネタ 6.1 データを逆順にする。 6.2 アドレス (値) のアラインメントを返す。 ↑ C++関数・テンプレート集 続きを読む
5.3 アラインメント調整のため、オフセットを切り上げる。 公開日:2021年8月16日 C++関数・テンプレート集プログラミング技術情報 実用上は元ネタのマクロで十分なのですが、この企画はあくまでも「C++関数・テンプレート集」ですので、ちょっと強引ながらもメタ関数と関数を作ってみることにします。 まずはメタ関数からです。 [crayon-676f0dd5 […] 続きを読む
5.2 型のアラインメントを返す。 公開日:2021年8月16日 C++関数・テンプレート集プログラミング技術情報 境界調整(アラインメント)の要求サイズが必要になることがときどきあります。組込み開発ではとくに必要になることが多いのではないでしょうか? C++11以降であれば、そのものずばりの機能であるalignof演算子が使えます。 […] 続きを読む
5.1 型のビット数を返す。 公開日:2021年8月14日 C++関数・テンプレート集プログラミング技術情報 型のビット数には大きく分けて2種類があります。ひとつは記憶域全体のビット数で、もうひとつは記憶域のうち符号ビットも含めて値を表現するためのビット数です。なお、ここでいう型とはスカラ型(整数型・浮動小数点型・ポインタ型)を […] 続きを読む
5. 一般のデータ型に関するテンプレート 更新日:2021年8月16日 公開日:2021年8月13日 C++関数・テンプレート集プログラミング技術情報 元ネタ 5.1 型のビット数を返す。 5.2 型のアラインメントを返す。 5.3 アラインメント調整のため、オフセットを切り上げる。 ↑ C++関数・テンプレート集 続きを読む