0
사용자에게 플래그를 입력하여 다른 입력 된 값의 반대 값을 가진 플래그를 입력 할 수 없거나 사용자에게 표시 할 수있는 방법 또는 경고를 표시하거나 나타내려면 어떻게합니까? 잘못된 주장을했다.C++ 함수의 "플래그 인수"확인
struct Flags
{
enum Values
{
None = 0,
Yes = 1,
No = 2,
Good = 4,
Bad = 8
};
};
void Function(__in int p_Flag)
{
if(p_Flag & Flags::Yes)
std::cout << "Yes\n";
else if(p_Flag & Flags::No)
std::cout << "No\n";
if(p_Flag & Flags::Good)
std::cout << "Good\n";
else if(p_Flag & Flags::Bad)
std::cout << "Bad\n";
};
int main(void)
{
Function(Flags::Yes | Flags::No); // Error/warning (not OK)
Function(Flags::Good | Flags::Bad); // Error/warning (not OK)
Function(Flags::Yes | Flags::Bad); // OK!
return(0);
};
첫 번째 반대 플래그가 다른 플래그보다 선택되지만 사용자가 실제로 필요로하는 플래그를 확인하기 위해 경고 또는 오류를 표시해야합니다.
Function(Flags::Yes | Flags::No);
static_assert 당신은 단순히 일부 플래그는 다른 사람보다 우선 해당 문서 수 –
보는 가치가 될 수있다, 즉, 암시의 존재는 내가하여야한다 B. –
@Ed S.을 사용하지 않습니다. – CLearner