>>71 の関数を C++ によって実装してみた。

#include <string>
#include <iostream>
typedef unsigned int uint32; /* uint32 というデータ型を作成。 (処理系によって整数型のビット幅が違うため、違う環境では変更を容易にするため。) */
std::string f(uint32 x){ /* f(uint32 buttons) : 引数 buttons からオプションを調べる */
 std::string result;
 char *btn[] = {"vbOKOnly", "vbOKCancel", "vbAbortRetryIgnore", "vbYesNoCancel", "vbYesNo", "vbRetryCancel", "???", "???"};
 char *ico[] = {"???", "vbCritical", "vbQuestion", "vbExclamation", "vbInformation", "???", "???", "???", "???"};
 char *dfbtn[] = {"vbDefaultButton1", "vbDefaultButton2", "vbDefaultButton3", "vbDefaultButton4"};
 size_t b = x & 7, i = (x & 112) >> 4, db = (x & 768) >> 8;
 if(b > 5 || !i || (i > 5) || x & 0xFFFFFC80) {
  result = "ERROR!";
  return result;
 }
 result = btn[b];
 result += " | ";
 result += ico[i];
 result += " | ";
 result += dfbtn[db];
 return result;
}
int main(int argc, char *argv[]){ /* 実際に表示してみる */
 uint32 i;
 char *btn[] = {"vbOKOnly", "vbOKCancel", "vbAbortRetryIgnore", "vbYesNoCancel", "vbYesNo", "vbRetryCancel", "???", "???"};
 char *ico[] = {"vbCritical", "vbQuestion", "vbExclamation", "vbInformation"};
 char *dfbtn[] = {"vbDefaultButton1", "vbDefaultButton2", "vbDefaultButton3", "vbDefaultButton4"};
 for(i = 0; i < 1024; ++i){
  std::cout << "f(" << i << ") = " << f(i) << '\n';
 }
 return 0;
}