WinXPのVC++6.0です。
コンパイルすると//set standard headerという所に
→_STD_BEGINに印がついて
『error C2059: 構文エラー : 'namespace'』と『error C2334:'{' の前に予期しないトークン
がありました。関数の本体は無視されます』出るんですが、どんな事で回復するのでし
ょうか??
三つのクラスに同様のエラーが出ます。
あなたの書いたコードを見せてもらわんとどーにもなりません。
解決の糸口を出し惜しみして困るのはアナタ。
すいません、どこを載せればよいかわからなくて。
// set standard header
#if _MSC_VER > 1000
#pragma once
#endif#ifndef _SET_
#define _SET_
#include <functional>
#include <xtree>
#ifdef _MSC_VER
#pragma pack(push,8)
#endif /* _MSC_VER */
_STD_BEGIN…※
以下続く
コンパイルしてF4を押すと、※に矢印がついてさっきのコメントがでます。
多分ここをお見せしても意味がないと思うんですが。まず、set standard headerという
のがどこなのかわかりません。
落ち着いて書き込んだ内容でそれだけを読んだ人間が状況を
把握できるのかを考えてみてください。
> コンパイルすると//set standard headerという所に
> →_STD_BEGINに印がついて
これだけ書かれていても何の事だかわからんと思うのですが。
ソースファイルやヘッダーファイルの中身を把握しているのは
あなた自身だけでこれを読んでいる人間には全くわかりません。
あらら、ニアミス。
出しているファイルのファイル名くらいわかりませんか?
普通、エラーコードの所に書いてありそうなもんですが。
なんか、C言語のコンパイルをしているのに
namespaceを使っているような気がするのは私だけですかね。
作成している.cppファイルの\include\setの中のファイルのようですね。
Microsoft提供のヘッダーファイルで無いなら
ファイル名がわかっても多分意味ないですね。
ヘッダーファイルは多分、はなさんの手元にしかない。
はなさんの関係者は持っているかもしれませんけれど、
掲示板を読んでいる人間にはわかりませんし。
_STD_BEGINの定義内容は何処にあるんでしょうねぇ?
仮に_STD_BEGINを
namespace std {
に置き換えたらどうなるのだろう。
もしかしたら
#include <functional>
#include <xtree>
でインクルードしているヘッダーファイルの方に問題があったりして。
VC++6.0ってC++の準拠率が低いからそれで引っかかっているのかも。
>Microsoft提供のヘッダーファイルで無いなら
>ファイル名がわかっても多分意味ないですね。
はじめからあるViewクラスにもエラーが出ているみたいです。
>仮に_STD_BEGINを
>namespace std {
>に置き換えたらどうなるのだろう。
同様のエラーになり、変わりませんでした。
>#include <functional>
>#include <xtree>
>でインクルードしているヘッダーファイルの方に問題があったりして。
>VC++6.0ってC++の準拠率が低いからそれで引っかかっているのかも。
このようなヘッダーファイルはリソース、ヘッダーファイルのどこにも書いてはいない
のですが。
少ない情報で解答してもらってすいませんでした。
まさかと思いますが、
プロジェクトの設定を弄ったりしてませんか?
コンパイラに /TCとか指定してません?
新たにヘッダファイルを作成してその中で
namespace AAA {
int a;
};
としてエラーが起こっていないcppファイルにインクルードすると?
すいません、勉強不足でよくわからなかったのですが、コンパイラは標準のものを使用
していると思います。
>新たにヘッダファイルを作成してその中で
>namespace AAA {
>int a;
>};
>としてエラーが起こっていないcppファイルにインクルードすると?
やり方がわからずできませんでした。せっかくのアドバイスなのに本当にすいません。
その様子だとプロジェクト弄ったりはしてなさそうですが。
問題のプロジェクトは自分で作成したものですか?
それとも人からもらったもの?
他に新たに新しいプロジェクトを作成してビルドしても
同じ事が起こりますか?
どちらかといえばもらったものですね。それをファイル名等を変更して見ているといっ
たとこでしょうか。
新しくプロジェクトを立ち上げて何も書かない状態でコンパイルすると普通にエラー、
警告なしに実行できました。
> どちらかといえばもらったものですね。それをファイル名等を変更して見ているといっ
> たとこでしょうか。
ならば問題は変更の前後でなにが違うか、だ。
class/struct のケツに ; 付け忘れた。とかそんなくだらん原因のよな希ガス。
となるとそのプロジェクトの設定を疑った方がいいかも。
新しく作成したエラーのないプロジェクトの設定を開いて
C/C++タブのプロジェクトオプション欄に/TCを追記したら
同じエラーが起こるか試して見ては?