0
私はC++を初めて使用しており、列挙型の値の配列を含めると、Microsoft Visual Studioで構文エラーが発生します。なぜこのようなケースであるか分かりません。エラー番号はC2061であり、それは「構文エラー状態:。パラメータとしての列挙型C++
ヘッダファイル
#include "verbose_binary.h"
#include "stdafx.h"
#include <bitset>
#include <string>
#include <iostream>
void convert(std::bitset<5> bs, VerboseBinary aVB[6]) {
VerboseBinary VBArray[6] = {
VerboseBinary:: One,
VerboseBinary:: Two,
VerboseBinary:: Four,
VerboseBinary:: Eight,
VerboseBinary:: Sixteen,
VerboseBinary:: Null
};
for (int i = 0; i < 5; i++) {
if (bs.test(i)) {
aVB[i] = VBArray[i];
}
else {
aVB[i] = VerboseBinary::Null;
}
}
aVB[5] = VerboseBinary::Null;
}
メイン
verbose_binary.cpp#pragma once
#include <bitset>
enum class VerboseBinary : int {
One,
Two,
Four,
Eight,
Sixteen,
Null,
};
void convert(std::bitset<5> bs, VerboseBinary aVB[6]);
verbose_binary.h:識別子 'VerboseBinary' をここでは、コードです
#include "stdafx.h"
#include <iostream>
#include <iostream>
#include <bitset>
#include "verbose_binary.h"
int main() {
int a, b;
std::bitset<5> aBs, bBs;
std::cout << "Enter two numbers between 0-31:" << std::endl;
std::cin >> a >> b;
if (a<0 || a>31) return -1;
if (b<0 || b>31) return -2;
aBs = static_cast<std::bitset<5>>(a);
bBs = static_cast<std::bitset<5>>(b);
// std::cout << aBs << " " << bBs << std::endl;
VerboseBinary aVB[6];
VerboseBinary bVB[6];
convert(aBs, aVB);
convert(bBs, bVB);
return 0;
}
私は初心者には非常に有望ではないよない理由を与えdownvoteのための良性のダブル含めることがあります。 – IntegrateThis
慎重にお読みくださいhttp://stackoverflow.com/help/mcveコードは極小ではありません。あなたはエラーのある行番号のコードを書きませんでした。 (私はあなたにdownvoteをしなかった) – SergV
どのVisual Studioのバージョンを使用していますか?あなたのenumの定義の終わりには、迷子カンマがあります。また、stdafx.hは、verbose_binary.cpp内の他のインクルードの前に表示されます。メインは ''のために良性の二重包含を持っています。 –