• ベストアンサー

複素数<complex.h>のErrorに関して

初めて質問させて貰います。 質問するにあたり至らない点もあるかもしれませんが、その際は御指摘頂ければ随時訂正していきたいと考えています。 プログラムに関しては素人と考えてください。 複素数を使った計算プログラムを書きたく思い、色々と調べたところcomplexをincludeすれば複素数が定義できるという所まで調べられました。 早速調べたとおりにプログラムを書いてみたのですが、エラーが発生してしまいます。 エラーの示すことも、何故エラーがでたのかも分かりません。 よろしければ、御助言の方よろしくお願いします。 使用ソフト→ Microsoft Visual C++ 2008です。 以下プログラム(num001.cppで保存)→ #include<stdio.h> #include<complex.h> ~以下略 という感じでプログラムを書いたのですが、コンパイルしてみると、以下のようなエラーが発生してしまいます。 以下発生したエラーです→ num001.cpp C:\program\C++5.5\include\complex.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\complex.h(3) : warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\stdcomp.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\compnent.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stddefs.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stddefs.h(3) : warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\stdcomp.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stdwind.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stdwind.h(3) : warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\rw/stdwind.h(208) :warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\rw/stddefs.h(181) :warning C4068: 不明なプラグマがありました。 C:\VC\INCLUDE\xlocale(342) : warning C4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 C:\program\C++5.5\include\complex.h(1488) : warning C4068: 不明なプラグマがありました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

まあ、そうですね。C++に行くのも一つの手かも。 ただ、目的にも依りますが、「CからC++に言語を変える」んだったら、いっその事、複素数を最初からサポートしている別言語に変えても良いかもしれませんね。見る限り、オイラーの公式exp(iπ)計算したいだけかもしれませんし。 例えばPython Python: http://www.python.jp/Zope/ だと、 cametan@cametan-laptop:~$ python Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import cmath # 複素数ライブラリをインポート >>> cmath.exp(cmath.pi * 1j) #オイラーの公式 (-1+1.2246063538223773e-16j) >>> とたった2行で結果が出ます。 Ruby: http://www.ruby-lang.org/ja/ でも cametan@cametan-laptop:~$ irb irb(main):001:0> require 'complex' # 複素数クラスを導入 => true irb(main):002:0> Math.exp(Math::PI * Complex::I) => Complex(-1.0, 1.22460635382238e-16) irb(main):003:0> と実質二行ですね。 ANSI Common Lispだと、 CL-USER> (exp (* pi #c(0 1))) ; オイラーの公式 #C(-1.0d0 1.2246063538223773d-16) CL-USER> とたったの一行。 (実装は例えばWindowsならCLISP: http://clisp.cons.org/ とか) Schemeでも、 Welcome to MzScheme v4.2.1 [3m], Copyright (c) 2004-2009 PLT Scheme Inc. > (exp (* pi 0+1i)) ; オイラーの公式 -1.0+1.2246063538223773e-16i > とまたもや1行です。 (実装は例えばWindowsならPLT Scheme: http://www.plt-scheme.org/ とか) まあ、これ考えてみるとcomplex.h探してコンパイルしなきゃなんない、って面倒って言えば面倒ですよね。 他にも、数値演算専用のMatlabと言う言語のクローン、GNU Octaveってのがあって、Windowsでは Octave Workshop: http://www.unige.ch/math/folks/loisel/www.math.mcgill.ca/loisel/octave-workshop/ と言う統合環境があるんですが、これでも、 cametan@cametan-laptop:~$ octave GNU Octave, version 3.0.1 Copyright (C) 2008 John W. Eaton and others. This is free software; see the source code for copying conditions. There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'. Octave was configured for "i486-pc-linux-gnu". Additional information about Octave is available at http://www.octave.org. Please contribute if you find this software useful. For more information, visit http://www.octave.org/help-wanted.html Report bugs to <bug@octave.org> (but first, please read http://www.octave.org/bugs.html to learn how to write a helpful report). For information about changes from previous versions, type `news'. octave:1> exp(pi * 1i) # オイラーの公式 ans = -1.0000e+00 + 1.2246e-16i octave:2> と、1行で済みますね。 (Octaveに関しては、以下の参考リンクを参照して下さい) まあ、本当に目的にも依るんですが、場合によっては単に「数値計算したい」ってだけならC系で組むより別の言語でやった方が簡易に結果を見れる場合もあります。 参考までに。

参考URL:
http://www.ishida-df.jp/octave/octave.html, http://octave.futene.net/
kitatabi
質問者

お礼

返答ありがとうございます。 あと、返信が遅くなってしまったこと申し訳ありません。 御助言いただいた「言語を変える」ということですが、申し訳ありません、今回はVisualStudioを使わなければいけないので、ご助言は嬉しかったのですが、今回は言語変えは無しの方向で行きたいと思います。 その他にも色々と参考まで出していただき、ありがとうございました。 これからも、よろしければ御助言などいただけたら幸いです。 それでは、ありがとございました。

その他の回答 (6)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.6

VisualStudio で複素数を使いたいなら, いっそ C++ にいってしまった方が楽な気がする. というか拡張子が cpp になってるから, コンパイラは C++ だと思っているはず. #include <cstdio> #include <complex> #include <cmath> using namespace std; #ifndef M_PI #define M_PI M_PI const double M_PI = 4*atan(1.0); #endif int main(void){ complex<double> z, x; x = complex<double>(0, M_PI); z = exp(x); printf("real=%f\timag=%f\n", z.real(), z.imag()); return 0; } って感じかな. VisualStudio はもう C の規格についていく気なさそうだし.

kitatabi
質問者

お礼

返答ありがとうございます。 少し返信が遅くなってしまい申し訳ありません。 ソースの提示までしていただき非常に助かります。 cppだとC++を意味しているんですね……すいません、初めてそのことに気付きました。 一度これでやってみます。ありがとうございました。

回答No.5

どうなんでしょうねえ(笑)。 まず、僕が使ったコンパイラはgcc(GNU Compiler Collection)です。 まあ、BCCにもcomplex.hってのがある、って話が出てきましたが、それは使っていません。当然Visual C++でのコンパイルではない、のです。 紹介したminGWってのは、平たく言うと(正確じゃなく端折っていますが)、Windowsで使えるgccです。ですから、再現するにはminGWを入れるのが手っ取り早いだろう、って事ですね。 ええと、今Cの規格、って大まかに言うと3つあるんですよ。詳しくはWikipediaの記事を参照して欲しいんですが、 C言語: http://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E 今、最新規格は俗称C99って言われているものらしくって、複素数型はこれで追加された模様です。 C99: http://ja.wikipedia.org/wiki/C99 ただ、ネットでザーッと検索した限り、Visual C++はどうやらC99には未対応みたいですね。残念ながら。 一応、complex.hに関する定義は、次のページで解説されています。 9. 標準ライブラリ(新規): http://seclan.dll.jp/c99d/c99d09.htm ただ、これを自分で実装するのは骨が折れるんじゃないでしょうか。メンド臭そうです(笑)。 素直に、C99対応のコンパイラを使った方が良いような気がしますね。僕はBCCは調べてないんですが、もしBCCでcomplex.hが使えるようだったら、それをダウンロードして使ってみるのが一番簡単じゃないか、とは思います。 CodeGearが買収されてから、ページ構成が変わっちゃって良く分かんなくなっちゃってんですが(笑)、多分このページ Download a Trial or Free Version : https://downloads.embarcadero.com/free/c_builder の下から2番目の「C++ Compiler 5.5」ってのがBCC5.5かな?多分。良く分かりませんが(笑)。 まあ、このページはトライアル版かフリー版の提供ページなんで、間違ってダウンロードしてもそんなに酷い結果にはならないんじゃないか、って思うんですが(笑)。 BCCは割に有名で、有志によって次のようなフリーのIDEなんかも作られているんで、Visual C++から乗り換えてもそんなに困んないと思います(少なくとも、複素数絡みが問題だとして、bccでcomplex.hを使えるとすれば)。 CPad: http://hp.vector.co.jp/authors/VA017148/pages/cpad.html#cpadintroduction 次のようなページもあるんで、参考までに。 Borland C++ Compiler のインストール: http://homepage3.nifty.com/mmgames/c_guide/p_bcc.html

kitatabi
質問者

お礼

再びの返答ありがとうございます。 幾つもの参照助かります。 薦められたように、一度どれかダウンロードしてコンパイルしてみます。 大して支障が無いとの御助言もありましたので、一度試して見ます。 色々と教えていただきありがとうございました。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

それはborlandのBCC5.5用のヘッダじゃないでしょうか VisualC++では使えませんよ VisualC++のincludeパスにBCC5.5用のパスが通ってるのも不思議ですが

kitatabi
質問者

お礼

返答ありがとうございます。 なるほど、やはりVisualStudionでは使えないヘッダなのですか……。 どうしても虚数を定義して扱いたいのですが、そういった場合どうすればいいでしょうか? よろしければ教えてもらえると幸いです。 何度も聞いてしまうようで申し訳ないですが、よろしくお願いします。

回答No.3

う~~ん、そうですねえ……。 うちの環境だと確かにコンパイル出来ました。 real=-1.000000 imag=0.000000 ってのが欲しい結果でしょうか? 調べてみると、complex.hってのは、どうやらglibc(GNU C Library)の付属物のようですね。 GNU C Library: http://www.gnu.org/software/libc/ ソースコードは以下の模様です。 complex.h: http://www.google.co.jp/codesearch/p?hl=ja&sa=N&cd=2&ct=rc#bZFm81g2I8w/glibc-2.1.1/math/complex.h&q=complex.h%20lang:c 見た感じ、minGWには含まれているようなんで、「どーしてもコンパイルして動作を見たい」のなら、minGW minGW: http://www.mingw.org/ 使った方がいいかもしれませんね。 minGWのインストール/設定は次のページ辺りを参考にして下さい。 MinGW のインストール: http://www.knatech.info/Dev-mingw-install.html

kitatabi
質問者

お礼

返答ありがとうございます。 欲しい結果、まさにその通りです。 VisualStudioでcomplex.hを使えるようにする。ということはできるのでしょうか? 参照で載せていただいたURLを拝借させていただいたのですが、ちょっと自分では理解できませんでした……。 ソースを直接プログラム中に打ち込んだりしたらよいのでしょうか? よろしければ、再びの御助言お願いいたします。 よろしくお願いします。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

残念ながら, VisualStudio 2008 に complex.h はないのですよ. ついでにいえば, ヘッダファイルがあるディレクトリに rw というサブディレクトリもありません. ところで, あなたが使っているのは C と C++ のどちら? C++ なら, complex を #include すればいいだけなんだけど.

kitatabi
質問者

お礼

返答ありがとうございます。 すいません、実はCかC++なのかもよくわかっておりません。 VisualStudioにcomplex.hは無いのですか……分かりました。 ありがとうございます。 もしよろしければ、complex.hを使わずに虚数を定義するにはどうすればいいか、御教えいただけないでしょうか? 何度も頼ってしまうようで申し訳ないですが、よろしくお願いします。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

どのようなプログラムを書いたのですか? その C:\program\C++5.5\include\complex.h とやらの中身はどうなっているのですか?

kitatabi
質問者

お礼

早速の返信ありがとうございます。 そもそもの考えが間違っているのかも知れませんが、complex.hはVisual C++についているものではないのですか? 付属しているものと思っているのですが……。 すいません、#include<math.h>を入力し忘れました。 プログラムの全容は以下の通りです→ #include <stdio.h> #include <complex.h> #include <math.h>   int main(void){ double _Complex z, x; x=I*M_PI; z=cexp(x); printf("real=%f\timag=%f\n", creal(z),cimag(z)); return 0; } よろしくお願いします。

関連するQ&A

  • 複素数complex.hがおかしいのでしょうか?

    C言語初心者です。 根本的に間違えているかと思いますが、下記内容で困ってます。 C++で複素数を扱いたいと思い #include<complex.h> うんだら ふんだら と書きました。 環境は、Borland C++ 5.6 for Win32だと思います。 メモ帳でソースを作って、コマンドプロンプトでbcc32 ***.c とコンパイルしたのですが、ヘッダーファイルのエラー?が 出てるようです。(詳細は下記に示してます。) おそらく根本的なエラーが出てるとはおもうのですが、 エラーの内容が理解できません。ヘッダーファイルがどこにあるのかも わかりません。どうすればエラーがなくなるのか教えて頂きたいです。 よろしく御願い致します。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ エラー E2257 C:\Program Files\Borland\CBuilder6\Include\stl/_mbstate.h 52: , が必要 エラー E2453 C:\Program Files\Borland\CBuilder6\Include\stl/type_traits.h 64: '__true_type' 型のサイズは未知あるいはゼロ エラー E2453 C:\Program Files\Borland\CBuilder6Include\stl/type_traits.h 65: '__false_type' 型のサイズは未知あるいはゼロ エラー E2141 C:\Program Files\Borland\CBuilder6\Include\stl/type_traits.h 68: 宣言の構文エラー           ・           ・           ・ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

  • Complex.h

    C++Builderで複素数やそれを使った演算を扱っていますが、以下のような使い方が出来ても #include <complex.h> ・ ・ int B=10; complex<double> *A = new complex<double>[B]; 次のような動的な配列の宣言が出来ません。 #include <complex.h> int B=10; int C=500; ・ ・ complex<double> *A = new complex<double>[B][C]; E2034’complex<double>(*)[500]'型は’'complex<double>*'型に変換できない とのエラーが出ます。 正しい、複素数行列の宣言の仕方を教えてください。

  • 困っています。

    困っています。 #pragma ADDRESS pm0_addr 0004h エラーで error C2059: 構文エラー : 'サフィックスが無効です。' warning C4068: 不明なプラグマがありました。 とでるのですが、何がいけないのでしょうか? VisualC++ 6.0を使用しています。

  • 【VC++】 学校のプロジェクトを家で続けたい

    学校で使っているVisual Studio2010で使っているプロジェクト(ソリューション)を、家のPCのVisual C++ 2010 Expressで使いたいのですが、エラーが出てうまく移行できません。 家のPCをうまく設定して学校のPCと両方でプロジェクトを使いたいのですがどうすれば良いのでしょうか。 もしかすると、以前設定を変更してデフォルトの状態ではないかもしれません… //インクルード文 #include "DxAll3.h" //エラーメッセージ(抜粋) 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h : warning C4821: Unicode エンコードの種類を指定できません。シグネチャ (BOM) つきファイルを保存してください。 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h(1): error C2018: 文字 '0x4' は認識できません。 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h(1): error C2018: 文字 '0x6' は認識できません。 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h(1): error C2018: 文字 '0x2' は認識できません。 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h(1): error C2018: 文字 '0x7' は認識できません。 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\driverspecs.h(1): error C2146: 構文エラー : ';' が、識別子 'Ntff' の前に必要です。 以下100エラーでコンパイル中断。

  • Visual studio 文字コード変更

    Visual C++ 2010 expressを使ってC言語をやっている者です。「1.c : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。」というような事がコンパイルした時に表示されてしまい、実行すると、文字化けしてしまいます。文字コードを設定し直したいのですが、インターネットで調べても以前のバージョンばかりで方法が分かりません。どなたか分かる方いらっしゃいませんでしょうか。よろしくお願いいたします。

  • Visual C++ 2008で<stdio.h>のインクルード文が使えない!?

    #include <stdio.h> int main(){ printf("hello!"); } で実行すると、 : warning C4627: '#include <stdio.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します .\■■■.cpp(5) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? と言ったエラーが起きてしまいます。 ちなみに、インクルードファイルらしき物を削除しまくった覚えがあります…。100%これが原因かと。 これが原因だとしたらどうすればいいんでしょうか? あと、DXライブラリが使えるように設定を変えたこともあります。 どこの何を変えたかは忘れてしまいましたけど。

  • 構文エラーについて教えてください

    申し訳ありません、初心者なので教えてください。 VC2005を使ってプログラミングをしております。 エラーは、以下のようになっております。 見づらいと思いますが、ご親切な方、よろしくお願いします。 申し訳ありません、初心者なので教えてください。 VC2005を使ってプログラミングをしております。 エラーは、以下のようになっております。 見づらいと思いますが、ご親切な方、よろしくお願いします。 c:\program files\microsoft platform sdk\include\mmreg.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\dxlib.h(1529) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C3872: '0x3000': この文字を識別子で使用することはできません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C3872: '0x3000': この文字を識別子で使用することはできません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(8) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(8) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ブラウザ情報ファイルを作成しています... Microsoft Browse Information Maintenance Utility Version 8.00.50727 Copyright (C) Microsoft Corporation. All rights reserved. ビルドログは "file://c:\Documents and Settings\yu-ki-pippi\デスクトップ\DxLib_VC\サンプルプログラム実行用フォルダ\Debug\BuildLog.htm" に保存されました。 DxLib - エラー 7、警告 2 #include "Dxlib.h" struct CharaData{ int x; //左上座標 int y; int ghandle; //画像ハンドル int life;   //ライフ int image_w; //イメージの大きさ int image_h; int bounds_w; //判定領域の大きさ int bounds_h; }; *エラーをクリックするとこの部分でエラーが出てしまいます。

  • backward_warning.hによる警告

    こんにちは。 独自で作成した、C:\Emacs_for_Windows\My_C++_Header_for_Bash.hというファイルパスを持つヘッダファイルをインクルードしているC++のソースファイルのtest.cppを、Cygwinのbash上で、g++コマンドを使い、 g++ test.cpp のようにビルドしたところ、以下のような警告が出ました。 ------------------------------------------------------------ bin/../lib/gcc/i686-pc-cygwin/4.3.4/include/c++/backward/strstream:51 から include されたファイル中, C:\Emacs_for_Windows\My_C++_Header_for_Bash.h:35 から, test.cpp:2 から: /bin/../lib/gcc/i686-pc-cygwin/4.3.4/include/c++/backward/backward_warning.h:33:2: 警告: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. ------------------------------------------------------------ Borland C++ Compiler 5.5 のbcc32コマンドでは、こういった警告は出ません。 /bin/../lib/gcc/i686-pc-cygwin/4.3.4/include/c++/backward/backward_warning.h:33 を参考に、backward_warning.hの33行目以降をみると、以下のようになっていました。 ------------------------------------------------------------ #ifdef __DEPRECATED 33 #warning \ 34 This file includes at least one deprecated or antiquated header which \ 35 may be removed without further notice at a future date. Please use a \ 36 non-deprecated interface with equivalent functionality instead. For a \ 37 listing of replacement headers and interfaces, consult the file \ 38 backward_warning.h. To disable this warning use -Wno-deprecated. ------------------------------------------------------------ どうやら「__DEPRECATED」が定義されているので、こういった警告が出ているようなのですが、 __DEPRECATEDの意味が分かりません。 警告の指示通り、-Wno-deprecatedを付けたままC++開発を続けて問題ないのでしょうか? ちなみに、C:\Emacs_for_Windows\My_C++_Header_for_Bash.hの内容は以下の通りです。 ------------------------------------------------------------ #ifndef MYHEADER_H #define MYHEADER_H //C言語のヘッダファイル #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <time.h> #include <math.h> #include <stddef.h> //C++言語のヘッダの標準識別子 #include <iostream> #include <fstream> #include <cctype> #include <cstring> #include <cstdlib> #include <ctime> #include <cstdio> #include <new> #include <iomanip> #include <strstream> #include <typeinfo> //STLに関するヘッダ #include <string> #include <vector> #include <deque> #include <list> #include <set> #include <map> #include <algorithm> #include <functional> #include <utility> #include <numeric> #include <cassert> #include <iterator> //namespaceの解決 using namespace std; #endif ------------------------------------------------------------ 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

  • VC++2005でLAPACKを使用するとエラーが出る

    タイトルの通りなのですが,VC++2005でLAPACKを使用するとエラーが出て,困っています. vc\include\clapack.h(1486) : error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。 vc\include\clapack.h(1486) : error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。 vc\include\clapack.h(1486) : warning C4091: '' : 変数が何も宣言されていないときは、'char' の左辺を無視します。 vc\include\clapack.h(1486) : error C2143: 構文エラー : ';' が ',' の前にありません。 vc\include\clapack.h(1486) : error C2059: 構文エラー : ',' vc\include\clapack.h(1486) : error C2059: 構文エラー : ')' vc\include\clapack.h(2861) : error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。 vc\include\clapack.h(2861) : error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。 vc\include\clapack.h(2861) : warning C4091: '' : 変数が何も宣言されていないときは、'char' の左辺を無視します。 vc\include\clapack.h(2861) : error C2143: 構文エラー : ';' が ',' の前にありません。 vc\include\clapack.h(2861) : error C2059: 構文エラー : ',' vc\include\clapack.h(2861) : error C2059: 構文エラー : ')' 主にhttp://sakura.math.kyushu-u.ac.jp/wiki/index.php?%E8%A8%88%E7%AE%97%E6%A9%9F%E8%A8%AD%E5%AE%9A%2FCLAPACKを参考にして作成しているのですが・・・上手くいきません.詳しい方,ご教授お願い致します.

  • winnetwk.hについて

    ネットワークプロバイダーのバージョンなどを表示されるプログラムを実行しようとしたのですが、以下のようなエラーがでて先に進めません。どうしたら直すことが出来るでしょうか? 1>c:\program files\microsoft platform sdk\include\winnetwk.h(142) : error C2146: 構文エラー : ';' が、識別子 'dwScope' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(142) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(142) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(143) : error C2146: 構文エラー : ';' が、識別子 'dwType' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(143) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(143) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(144) : error C2146: 構文エラー : ';' が、識別子 'dwDisplayType' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(144) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(144) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(145) : error C2146: 構文エラー : ';' が、識別子 'dwUsage' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(145) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(145) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(146) : error C2146: 構文エラー : ';' が、識別子 'lpLocalName' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(146) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(146) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(147) : error C2146: 構文エラー : ';' が、識別子 'lpRemoteName' の前に必要です。 環境はVC++2005です。