Sibainu Relax Room

愛犬の柴犬とともに過ごす部屋

VB98 VC98 を使ってみる2

遠く何かあるのか見つめて自分の世界に入り込んでいる柴犬です。

概要

「ストラウストラップのプログラミング入門」のハンズオンは、しばらくの間、VisualStudioCode でいいと思われますが、読み進めてグラフィック関係に入ってきた時のことを考えて VC++ でもできるか試してみます。

プログラミングの10年の差は大きいようで、コピペのみではエラーになりました。

修正はまた勉強になりますので、我慢して続けることにします。

VC++ で実行

「ストラウストラップのプログラミング入門」を進めて行くと、グラフィックが出てきますのでVC++での必要なってくるのではと思いますので、VC++でやってみました。

プロジェクト text2 を作り、そのプロジェクトを選択して新規で空のヘッダーファイル(std_lib_facilities.h)とソースファイル(test2.cpp)を作りました。

そのファイルに、コードをコピペしました。

ビルドをしてみました。

残念ながらエラーとなりました。

std_lib_facilities.h の見直し

エラーの原因は std_lib_facilities.h にありますので、少しづつそぎ落としてみました。次のコードの状態まで削りました。

例えば「#include <forward_list>」がどうしてできないのかは今後少しずつ調べるようにします。

copy

/*
std_lib_facilities.h
*/

/*
simple "Programming: Principles and Practice using C++ (second edition)" course header to
be used for the first few weeks.
It provides the most common standard headers (in the global namespace)
and minimal exception/error support.

Students: please don't try to understand the details of headers just yet.
All will be explained. This header is primarily used so that you don't have
to understand every concept all at once.

By Chapter 10, you don't need this file and after Chapter 21, you'll understand it

Revised April 25, 2010: simple_error() added

Revised November 25 2013: remove support for pre-C++11 compilers, use C++11: <chrono>
Revised November 28 2013: add a few container algorithms
Revised June 8 2014: added #ifndef to workaround Microsoft C++11 weakness
Revised Febrary 2 2015: randint() can now be seeded (see exercise 5.13).
Revised August 3, 2020: a cleanup removing support for ancient compilers
*/


#ifndef H112
#define H112 080315L


#include<iostream>
#include<iomanip>
#include<fstream>
#include<sstream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<list>
//#include <forward_list>
#include<vector>
//#include<unordered_map>
#include<algorithm>
//#include <array>
//#include <regex>
//#include<random>
//#include<stdexcept>

//------------------------------------------------------------------------------


typedef long Unicode;

//------------------------------------------------------------------------------

using namespace std;

inline void keep_window_open()
{
	cin.clear();
	cout << "Please enter a character to exit\n";
	char ch;
	cin >> ch;
	return;
}

#endif //H112

今度は、エラーもなく実行ファイルが作成できました。

できた実行ファイルを見てみます。VisualStudioCode で作成したファイルよりかなり大きいです。

実行してみても外見の違いはありません。

ここまでとします。