• 締切済み

OMANIP

VC++6.0にて開発中です。 標準出力に対して画面を消去する処理子cls、 表示色を設定する処理子color(c)、 表現位置を設定する処理子locate(x, y)、 アラームをn回鳴らす処理子beep(n)を作成したいのですが、 下のようにしてもOMANIPの部分でコンパイルエラーが出てしまいます。 どうしたらエラーを出さずに作動してくれるでしょうか? #include <iostream> #include <iomanip> using namespace std; const char ESC = 0x1B; //エスケープコード //---画面消去---// ostream& cls(ostream& os) { if (os == cout) os << ESC << "[2J"; return (os); } //---色設定---// ostream& color(ostream& os, int c) { if (os == cout) os << ESC << "[3" << char(c + '0') << 'm'; return (os); } OMANIP<int> color(int c) { return (OMANIP<int>(color, c)); } //---座標設定---// class Pos { int x; int y; public: Pos(int x, int y){Pos::x = x; Pos::y = y;} void locate(ostream& os) { os << ESC << '[' << x << ';' << y << 'H'; } }; ostream& locate(ostream& os, Pos xy) { if (os == cout) xy.locate(os); return (os); } OMANIP<Pos> locate(int x, int y) { Pos xy(x, y); return ( OMANIP<Pos>(locate, xy) ); } //---アラームをnum回鳴らす---// ostream& beep(ostream& os, int num) { if (os == cout) while (num--) os << '\a'; return (os); } OMANIP<int> beep(int n) { return (OMANIP<int> (beep, n)); }

みんなの回答

回答No.1

VC++6.0 の <iomanip> のコードを読めばわかります。 OMANIP<> は存在しません。

関連するQ&A