[解決済み] C++に'byte'データ型はありますか?
質問
インクルードするヘッダーファイルはありますか?
このコードはコンパイルエラーになります。
#include <iostream>
using namespace std;
int main()
{
byte b = 2;
cout << b << endl;
return 0;
}
どのように解決するのですか?
C++にはbyteデータ型はありません。しかし、標準ライブラリから bitset ヘッダをインクルードして、byte の型定義を作成することは可能です。
typedef bitset<8> BYTE;
注:WinDef.hはWindowsのコードにBYTEを定義しているため、Windowsをターゲットにする場合はBYTE以外のものを使用したほうがよいでしょう。
編集: 答えが間違っているという指摘に答えて。 答えは間違っていません。質問は「C++に 'byte' データ型はあるか」でした。答えは「C++にbyteデータ型はない」でした。
質問された可能性のある代替案に関して、提案された代替案はなぜ良いのでしょうか?
当時の私のC++標準のコピーによると。
"文字 (char) として宣言されたオブジェクトは、実装の基本文字セットの任意のメンバーを格納するのに十分な大きさでなければならない" 。3.9.1.1
私は、もしコンパイラの実装が基本文字セットのメンバーを格納するために16ビットを必要とするならば、charのサイズは16ビットであろうということを示唆しているように読みました。今日のコンパイラーは char に 8 ビットを使用する傾向がありますが、私の知る限りでは、確かに 8 ビットである保証はありません。
一方、クラステンプレートbitset<N>は、固定ビット数Nからなるシーケンスを格納できるオブジェクトを記述しています: 20.5.1. つまり、テンプレートパラメータに8を指定することで、8ビットからなるシーケンスを格納することができるオブジェクトを得ることができるのです。
そのため、書かれているプログラムの文脈で、代替案が char に適しているかどうかは、間違っているかもしれませんが、私の理解する限り、コンパイラとその時の要件に依存します。したがって、私が知る限り、コードを書いている個人が、提案された代替案が自分の要件/要望/必要性に適切かどうかを判断することができます。
関連
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み] error: 'this' 引数に xxx を渡すと修飾子が消える
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】構造体のベクター初期化について
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない