エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1545944692/
探検
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
2019/04/25(木) 06:54:38.08ID:6xUIrXDu
429デフォルトの名無しさん
2019/12/25(水) 20:11:17.23ID:Jr8g24A7 >>427
すみません、言われたことをよく考えたら重要な説明抜けてました
mainの中で先ほどの関数が使われるのは、
const GLuint program(loadProgram("point.vert","point.frag"));
という部分であり、ここで読み込まれている
GLuint loadProgram(const char *vert,const char *frag))
の内部に先ほどのコードがあります。
上の"point.vert"と"point.frag"を"./point.vert"、"./point.frag"に変えたりしましたがダメでした。
/User/~~~ による絶対指定なら動いたのですが、それだと別ファイルに移動した時使えなくなるので
ファイルの階層などを変えても動くようにしたいです。
>>428
とりあえずfileコマンドの結果は
Cのソースファイル(main.cpp): c program text, UTF-8 Unicode text
同ファイル内から読み込んでいるヘッダ(Matrix.hなど): C++ source text, UTF-8 Unicode text
読み込んでいるシェーダーファイル(上記の返答レスの二つ): c program text, ASCII text
実行ファイル: Mach-O 64-bit executable x86_64
dSYMファイル(実行と同時に生成された): directory(IOSの情報ファイル)
という感じです。
実行ファイルなので開くアプリはデフォでterminal、他はバイナリエディタで開けます。
すみません、言われたことをよく考えたら重要な説明抜けてました
mainの中で先ほどの関数が使われるのは、
const GLuint program(loadProgram("point.vert","point.frag"));
という部分であり、ここで読み込まれている
GLuint loadProgram(const char *vert,const char *frag))
の内部に先ほどのコードがあります。
上の"point.vert"と"point.frag"を"./point.vert"、"./point.frag"に変えたりしましたがダメでした。
/User/~~~ による絶対指定なら動いたのですが、それだと別ファイルに移動した時使えなくなるので
ファイルの階層などを変えても動くようにしたいです。
>>428
とりあえずfileコマンドの結果は
Cのソースファイル(main.cpp): c program text, UTF-8 Unicode text
同ファイル内から読み込んでいるヘッダ(Matrix.hなど): C++ source text, UTF-8 Unicode text
読み込んでいるシェーダーファイル(上記の返答レスの二つ): c program text, ASCII text
実行ファイル: Mach-O 64-bit executable x86_64
dSYMファイル(実行と同時に生成された): directory(IOSの情報ファイル)
という感じです。
実行ファイルなので開くアプリはデフォでterminal、他はバイナリエディタで開けます。
430デフォルトの名無しさん
2019/12/25(水) 20:28:55.00ID:KX6i+Zbe >>429
カレントディレクトリの概念は分かったの?
プログラムを何らかの方法で起動したときに、そのプログラムはどこかのディレクトリを「現在位置」として処理を行う。
だからプログラム中でファイルを指定するときに絶対パスではない書き方、つまり相対パス(point.vertや./point.vertという書き方)で指定すると、それは現在位置から見てその名前の場所にあるファイルを指す。
macの環境は詳しくないけど、terminalから実行したならカレントディレクトリはterminal上のカレントディレクトリだろうし、finderから実行したらプログラムの実行ファイルがある場所だろう。
そこと、開きたいファイルの位置関係を確認して、適切な相対パスを指定してみて。
カレントディレクトリの概念は分かったの?
プログラムを何らかの方法で起動したときに、そのプログラムはどこかのディレクトリを「現在位置」として処理を行う。
だからプログラム中でファイルを指定するときに絶対パスではない書き方、つまり相対パス(point.vertや./point.vertという書き方)で指定すると、それは現在位置から見てその名前の場所にあるファイルを指す。
macの環境は詳しくないけど、terminalから実行したならカレントディレクトリはterminal上のカレントディレクトリだろうし、finderから実行したらプログラムの実行ファイルがある場所だろう。
そこと、開きたいファイルの位置関係を確認して、適切な相対パスを指定してみて。
431デフォルトの名無しさん
2019/12/25(水) 20:45:23.56ID:ZI663GBY >>429
loadProgram と言う名前から想像すると、
特定のディレクトリだけから、ファイルを探すとか?
カレントディレクトリ内からは、探さないとか?
絶対パスなら読めるのなら、絶対パスへ変換すれば?
例えば、ruby -e 'puts $:'
と、Ruby でライブラリの探索パス・ロードパスを表示すると、
その中に、カレントディレクトリは入っていない
他には、エラーの前後で、カレントディレクトリがどこにあるか、確認すれば?
loadProgram と言う名前から想像すると、
特定のディレクトリだけから、ファイルを探すとか?
カレントディレクトリ内からは、探さないとか?
絶対パスなら読めるのなら、絶対パスへ変換すれば?
例えば、ruby -e 'puts $:'
と、Ruby でライブラリの探索パス・ロードパスを表示すると、
その中に、カレントディレクトリは入っていない
他には、エラーの前後で、カレントディレクトリがどこにあるか、確認すれば?
432デフォルトの名無しさん
2019/12/25(水) 20:48:27.13ID:88EUoeVm まず相対パスを絶対パスに変換してどうなるか確認したらいいんでないの
433デフォルトの名無しさん
2019/12/25(水) 21:06:23.06ID:KX6i+Zbe434デフォルトの名無しさん
2019/12/25(水) 21:07:02.85ID:KX6i+Zbe 上のレスは>>431宛だった
435デフォルトの名無しさん
2019/12/25(水) 22:03:46.49ID:R9J1PIns iOSのシミュレータで実行するアプリ??(IOSとか書いてるから
それだったらfstreamには絶対パスを渡すしかなかったはず
あんま自信ないので違ってたらすまん
それだったらfstreamには絶対パスを渡すしかなかったはず
あんま自信ないので違ってたらすまん
436デフォルトの名無しさん
2019/12/25(水) 22:09:17.12ID:ulJiubw3 ほんとruby君はどこのスレでも邪魔しかしないね
437デフォルトの名無しさん
2019/12/25(水) 22:18:35.22ID:ZI663GBY Ruby なら簡単!
これだけでカレントディレクトリが分かるw
p Dir.pwd
これだけでカレントディレクトリが分かるw
p Dir.pwd
438デフォルトの名無しさん
2019/12/25(水) 23:47:22.85ID:Jr8g24A7 >>430
カレントディレクトリは多分terminal上での起動でもfinderでも同じです。
426が分かりづらい文章で申し訳ないのですが、なぜかクリックした時
新規にterminalのウィンドウが出て実行ファイルまでの絶対パスまで出てきたので。
terminal上での起動方法はカレントディレクトリに移動してからの"$ ./実行ファイル"です
>>432
一応./とか../とか新規ディレクトリ作ってその中にぶち込むとかはやったんですが、それでも
結果は変わりませんでした。改めて自分で見ても分かりづらいのですが、429の9行目の/User/~~
というのが読み込み部分を絶対パスにしたやつで、その場合はFinderからでも読み込めました。
>>435
OpenGLで簡単な描画をするやつです。
ビルドが
c++ main.cpp -g -Wall -std=c++11 -I/usr/local/include -L/usr/local/lib -lglfw3 \
-lGLEW -framework OpenGL -framework CoreVideo -framework IOKit -framework Cocoa
とかそんな感じでIOKitが入ってるので多分そうかもしれません、入門書
(ttp://marina.sys.wakayama-u.ac.jp/~tokoi/GLFWdraft.pdf)のコピペです。
もしかしてMacでOpenGLを動かす場合って全てiOS対応しなきゃいけないんでしょうか…?
後遅いかもしれませんが長文&多レスと先ほどのお礼を言い忘れててすみません。
非常に稚拙な文章ですが、質問に答えてくださってありがとうございます。
カレントディレクトリは多分terminal上での起動でもfinderでも同じです。
426が分かりづらい文章で申し訳ないのですが、なぜかクリックした時
新規にterminalのウィンドウが出て実行ファイルまでの絶対パスまで出てきたので。
terminal上での起動方法はカレントディレクトリに移動してからの"$ ./実行ファイル"です
>>432
一応./とか../とか新規ディレクトリ作ってその中にぶち込むとかはやったんですが、それでも
結果は変わりませんでした。改めて自分で見ても分かりづらいのですが、429の9行目の/User/~~
というのが読み込み部分を絶対パスにしたやつで、その場合はFinderからでも読み込めました。
>>435
OpenGLで簡単な描画をするやつです。
ビルドが
c++ main.cpp -g -Wall -std=c++11 -I/usr/local/include -L/usr/local/lib -lglfw3 \
-lGLEW -framework OpenGL -framework CoreVideo -framework IOKit -framework Cocoa
とかそんな感じでIOKitが入ってるので多分そうかもしれません、入門書
(ttp://marina.sys.wakayama-u.ac.jp/~tokoi/GLFWdraft.pdf)のコピペです。
もしかしてMacでOpenGLを動かす場合って全てiOS対応しなきゃいけないんでしょうか…?
後遅いかもしれませんが長文&多レスと先ほどのお礼を言い忘れててすみません。
非常に稚拙な文章ですが、質問に答えてくださってありがとうございます。
439デフォルトの名無しさん
2019/12/26(木) 00:25:36.72ID:qMazsM0J すまんそれならiOS関係無いな
カレントディレクトリがどうなってるか、MacOSのAPIで取って
それを表示してみてターミナルとFinderでどう違うか確認した方がいいかと
カレントディレクトリがどうなってるか、MacOSのAPIで取って
それを表示してみてターミナルとFinderでどう違うか確認した方がいいかと
440デフォルトの名無しさん
2019/12/26(木) 00:44:53.30ID:mIZi4PgB MacってBSDらしいじゃん
多分じゃなくて、getcwd()すればいいんじゃ
>カレントディレクトリに移動して
どこにいても、今いるところがcurrentなのだが
多分じゃなくて、getcwd()すればいいんじゃ
>カレントディレクトリに移動して
どこにいても、今いるところがcurrentなのだが
441デフォルトの名無しさん
2019/12/26(木) 00:51:48.47ID:aYxazJyl ファイル読み込みをそのまま生成に変更してみ
カレントディレクトリちゃんと考慮してないよ相対パスと絶対パスでファイル生成される場所かわるよ
カレントディレクトリちゃんと考慮してないよ相対パスと絶対パスでファイル生成される場所かわるよ
442デフォルトの名無しさん
2019/12/26(木) 01:09:15.00ID:uS8pvwi2 >>438
Finder上でダブルクリックで起動する場合はカレントディレクトリはホームディレクトリだったように思うよ。
ダブルクリックで起動したいなら、
#!/bin/sh
cd "$(dirname "$0")"
./program
と書いたprogram.commandをprogramと同じ場所に作ってchmod +xし、それから起動するとよい。
program.commandのあるディレクトリに移動してからプログラムを移動するシェルスクリプトだから、確実に
カレントディレクトリをprogramのあるディレクトリに変更できる。
Finder上でダブルクリックで起動する場合はカレントディレクトリはホームディレクトリだったように思うよ。
ダブルクリックで起動したいなら、
#!/bin/sh
cd "$(dirname "$0")"
./program
と書いたprogram.commandをprogramと同じ場所に作ってchmod +xし、それから起動するとよい。
program.commandのあるディレクトリに移動してからプログラムを移動するシェルスクリプトだから、確実に
カレントディレクトリをprogramのあるディレクトリに変更できる。
443デフォルトの名無しさん
2019/12/26(木) 01:14:40.83ID:T0QuicHn Ruby なら、File.expand_path で、相対パスを絶対パスへ変換できる
相対パスでエラーになるなら、それを絶対パスへ変換すれば?
相対パスでエラーになるなら、それを絶対パスへ変換すれば?
444デフォルトの名無しさん
2019/12/26(木) 01:17:24.37ID:91oPsedU Ruby ならって情報意味ないから消えて
445デフォルトの名無しさん
2019/12/26(木) 01:18:31.55ID:hx3t0oVF >>439 >>440
とりあえず実行ファイルの入ってるディレクトリ名はsampleで、
カレントディレクトリに移動して~というのはterminalでそこまで移動した
という意味です、念の為付け加えたのですが説明がヘタクソ故分かりづらくてすみません。
そして言われた通り
getcwd(pathname, PATHNAME_SIZE);
fprintf(stdout,"現在のファイルパス:%s\n", pathname);
をmainの最初にぶち込んだところ。
ターミナルでの実行では
現在のファイルパス: /Users/username/program/GLFW_tutorial/sample/sample
finderでの実行では
finderからsample内の実行ファイルをダブルクリックするとterminalのウィンドウが出て
Last login: [前回のログイン情報]
username:~ usename$ /Users/username/中略/実行ファイル ; exit;
現在のファイルパス:/Users/username
Error: Can't open source file: point.vert
Error: Can't open source file: point.frag
とterminal上に表示されました。
finderの最初の方で実行ファイルまでの絶対パスが出てたので、多分同じところ開いてると
思い込んでましたがなぜか /User/username になってたみたいです
素人の先入観で余計な一手間を掛けさせてしまって申し訳ありません orz
とりあえず実行ファイルの入ってるディレクトリ名はsampleで、
カレントディレクトリに移動して~というのはterminalでそこまで移動した
という意味です、念の為付け加えたのですが説明がヘタクソ故分かりづらくてすみません。
そして言われた通り
getcwd(pathname, PATHNAME_SIZE);
fprintf(stdout,"現在のファイルパス:%s\n", pathname);
をmainの最初にぶち込んだところ。
ターミナルでの実行では
現在のファイルパス: /Users/username/program/GLFW_tutorial/sample/sample
finderでの実行では
finderからsample内の実行ファイルをダブルクリックするとterminalのウィンドウが出て
Last login: [前回のログイン情報]
username:~ usename$ /Users/username/中略/実行ファイル ; exit;
現在のファイルパス:/Users/username
Error: Can't open source file: point.vert
Error: Can't open source file: point.frag
とterminal上に表示されました。
finderの最初の方で実行ファイルまでの絶対パスが出てたので、多分同じところ開いてると
思い込んでましたがなぜか /User/username になってたみたいです
素人の先入観で余計な一手間を掛けさせてしまって申し訳ありません orz
446デフォルトの名無しさん
2019/12/26(木) 04:42:31.39ID:T0QuicHn Ruby なら、あちこちに、p Dir.pwd
って書けば、その時点のカレントディレクトリがどこか、すぐわかる
それに、File.expand_path で、相対パスを絶対パスへ変換できるし
何でも、p を付けるだけで、分かるから!
エラーを解決する速さが、桁違い!
C/C++ とかは、ポインターもあるし、1週間ぐらい解決できないのも、ザラ。
効率が悪い
って書けば、その時点のカレントディレクトリがどこか、すぐわかる
それに、File.expand_path で、相対パスを絶対パスへ変換できるし
何でも、p を付けるだけで、分かるから!
エラーを解決する速さが、桁違い!
C/C++ とかは、ポインターもあるし、1週間ぐらい解決できないのも、ザラ。
効率が悪い
447デフォルトの名無しさん
2019/12/26(木) 04:48:44.82ID:91oPsedU 消えろ
448430
2019/12/26(木) 06:51:13.58ID:CYmUjjjA449デフォルトの名無しさん
2019/12/26(木) 09:04:48.57ID:cN+Hl7PN450デフォルトの名無しさん
2019/12/26(木) 11:32:31.02ID:qmNoWNu8 CどころかOSすらまともに使えないような香具師は
まずpythonで練習汁
話はそれからだ
まずpythonで練習汁
話はそれからだ
451426
2019/12/26(木) 11:47:02.89ID:hx3t0oVF >>442,448,449
(安価打ちすぎると書き込めないらしいのでひとまとめになります)
ありがとうございました、書き忘れてましたが無事解決しました!
とりあえず442さんのやり方と449さんのやり方両方で成功しました、
430さんのレスがきっかけでカレントディレクトリについて考えることになったのでありがとうございます!
長文&稚拙な説明で長い間付き合わせてしまいましたが、
懇切丁寧に解説してくださった皆様方にはただただ感謝の極みですm(_ _)m
(安価打ちすぎると書き込めないらしいのでひとまとめになります)
ありがとうございました、書き忘れてましたが無事解決しました!
とりあえず442さんのやり方と449さんのやり方両方で成功しました、
430さんのレスがきっかけでカレントディレクトリについて考えることになったのでありがとうございます!
長文&稚拙な説明で長い間付き合わせてしまいましたが、
懇切丁寧に解説してくださった皆様方にはただただ感謝の極みですm(_ _)m
452デフォルトの名無しさん
2019/12/26(木) 12:51:22.31ID:DjlxxgLR c++20対応してる処理系てどれ?
453デフォルトの名無しさん
2019/12/26(木) 14:08:21.39ID:AOHRGRKj clが全く対応してないのは知ってる。
454デフォルトの名無しさん
2019/12/26(木) 15:03:20.65ID:91oPsedU VCは一部対応してる
455デフォルトの名無しさん
2019/12/27(金) 11:59:00.73ID:mPCTTnxc どっちやねん
456デフォルトの名無しさん
2019/12/27(金) 14:20:44.04ID:rOhR0D35457デフォルトの名無しさん
2019/12/27(金) 14:23:56.07ID:eT+8Od/E コンセプト使おうと思ってgccビルドしたけど、ビルド成功に満足して結局何もしてない
458デフォルトの名無しさん
2019/12/27(金) 18:15:17.64ID:XdsZzS9X > ビルド成功に満足して結局何もしてない
あるあるやな
あるあるやな
459デフォルトの名無しさん
2019/12/27(金) 18:26:52.15ID:SnoWmlYG じゃあ話はかんたんだ
gccの改造をすればいい
gccの改造をすればいい
460デフォルトの名無しさん
2019/12/28(土) 08:02:42.09ID:YMDBWz/J gccは真っ先に規格に対応するけど、
コード品質が糞すぎて結局商用には使えない
コード品質が糞すぎて結局商用には使えない
461デフォルトの名無しさん
2019/12/28(土) 14:03:33.98ID:YMDBWz/J ubuntuでapt install clangをさっきインストールしてみた。
gccで正常に動くプログラムが動作しないんで調べてみると
#pragma omp parallel
で使ってるomp_get_thread_num()がスレッドidを0しか返してない。
スレッドそのものは指定した数だけ、立ち上がってるのにどのスレッドも0しか返してないんだけどなんで?
gccで正常に動くプログラムが動作しないんで調べてみると
#pragma omp parallel
で使ってるomp_get_thread_num()がスレッドidを0しか返してない。
スレッドそのものは指定した数だけ、立ち上がってるのにどのスレッドも0しか返してないんだけどなんで?
462デフォルトの名無しさん
2019/12/28(土) 16:04:39.76ID:y9mZ+5If それが返すのはスレッドIDじゃなくない?
463デフォルトの名無しさん
2019/12/28(土) 16:11:50.22ID:c5TG1bir OpenMP知らないのに関数名だけ見てレスしただろ
464デフォルトの名無しさん
2019/12/28(土) 16:14:16.51ID:y9mZ+5If 知ってるけど関数間違えてた
465デフォルトの名無しさん
2019/12/28(土) 17:13:12.18ID:YMDBWz/J #pragma omp parallel num_threads(16)
{
#pragma omp critical
{
cerr << "thnum = "<< omp_get_thread_num()<"\n";
}
}
単にこれだけ。
gccは問題ないのに
clangが 0 しか返さない。
clangのエラーメッセージがよさげなんで乗り換えたいんだけど
{
#pragma omp critical
{
cerr << "thnum = "<< omp_get_thread_num()<"\n";
}
}
単にこれだけ。
gccは問題ないのに
clangが 0 しか返さない。
clangのエラーメッセージがよさげなんで乗り換えたいんだけど
466デフォルトの名無しさん
2019/12/28(土) 17:15:58.80ID:izuDiHMA スレッド出来てるならコンパイルオプションじゃないよなあ
467デフォルトの名無しさん
2019/12/28(土) 18:59:17.80ID:wFzdDG/T omp_get_thread_num always returns 0
で調べてみて
で調べてみて
468デフォルトの名無しさん
2019/12/29(日) 00:45:01.76ID:DJG0a+qG clang の omp 解決しました
469デフォルトの名無しさん
2020/01/01(水) 11:25:57.89ID:EQq3rigy Win10上のVS2019でもParallel Studio2020でも、
ubuntuのgccでもコンパイル&実行できる、コンソールプログラムを書きました。
標準で勝手にリンクされるライブラリ以外にライブラリの指定などは一切行っていないのですが、
Parallel Studioでコンパイルしたものだけ、実行直後すぐに終了されてしまうので、
デバッガで実行させると、
序数270がダイナミック ライブラリから見つかりませんでした
と表示されます。
どなたかこの件で情報お持ちじゃないですか?
ちなみにVSでもネイティブ/WSL ubuntuのgccでは正しく実行できています
ubuntuのgccでもコンパイル&実行できる、コンソールプログラムを書きました。
標準で勝手にリンクされるライブラリ以外にライブラリの指定などは一切行っていないのですが、
Parallel Studioでコンパイルしたものだけ、実行直後すぐに終了されてしまうので、
デバッガで実行させると、
序数270がダイナミック ライブラリから見つかりませんでした
と表示されます。
どなたかこの件で情報お持ちじゃないですか?
ちなみにVSでもネイティブ/WSL ubuntuのgccでは正しく実行できています
470デフォルトの名無しさん
2020/01/01(水) 11:38:25.85ID:UDgnGpGd >>469Intellのなんかをインストすればok
471デフォルトの名無しさん
2020/01/01(水) 11:40:01.97ID:tqBP4ADq .def 使えば解決するはず
472デフォルトの名無しさん
2020/01/01(水) 12:17:27.05ID:EQq3rigy >>470
今コンパイルして動かないので、dllのチェックはしてるんだろうと思いましたが、
void
main(){
cout << "Hello World\n";
}
はインテルでも何の問題もなく動いたのでdllが足りないんだと思います
今コンパイルして動かないので、dllのチェックはしてるんだろうと思いましたが、
void
main(){
cout << "Hello World\n";
}
はインテルでも何の問題もなく動いたのでdllが足りないんだと思います
473デフォルトの名無しさん
2020/01/01(水) 12:54:53.74ID:kPvcajv8 いまさらながら、std::vector::swap がC++14までnoexceptじゃなかったことに気付いた。
今までvectorをメンバに持つクラスのmoveコンストラクタ/代入の中でswapを使って
しれっとnoexceptを付けてたけど、C++11では本来どうすべきだったんだろう。
今までvectorをメンバに持つクラスのmoveコンストラクタ/代入の中でswapを使って
しれっとnoexceptを付けてたけど、C++11では本来どうすべきだったんだろう。
474デフォルトの名無しさん
2020/01/01(水) 14:11:16.43ID:Y/jFplKd swapを例外吐くように実装するほうが難しそう…
>>469
これかしら
https://software.intel.com/en-us/articles/redistributable-libraries-for-intel-c-and-fortran-2019-compilers-for-windows
>>469
これかしら
https://software.intel.com/en-us/articles/redistributable-libraries-for-intel-c-and-fortran-2019-compilers-for-windows
475デフォルトの名無しさん
2020/01/01(水) 15:11:33.16ID:kPvcajv8476デフォルトの名無しさん
2020/01/01(水) 15:40:05.94ID:MYEeMeEE noexcepつける理由ってほぼ自己満足だよな
unwindの最適化気にするぐらいなら例外禁止にするわ
unwindの最適化気にするぐらいなら例外禁止にするわ
477デフォルトの名無しさん
2020/01/01(水) 16:29:22.59ID:kPvcajv8478はちみつ餃子 ◆8X2XSCHEME
2020/01/01(水) 17:53:46.55ID:6jqQqgz1 C++17 からは noexcept 指定は型の一部ってことに変更されてる。
(noexcept から非 noexcept への型変換は有りだが逆は駄目。 まあ無理にキャストすればできなくはないだろうけど……。)
型が合わなきゃコンパイルエラーだ。
各種ライブラリとの組み合わせの関係で否応なく気にしなきゃならんってこともあるんじゃないの?
(noexcept から非 noexcept への型変換は有りだが逆は駄目。 まあ無理にキャストすればできなくはないだろうけど……。)
型が合わなきゃコンパイルエラーだ。
各種ライブラリとの組み合わせの関係で否応なく気にしなきゃならんってこともあるんじゃないの?
479デフォルトの名無しさん
2020/01/03(金) 12:36:25.83ID:umaZYxrI Intel Compiler 19.1の序数270エラー解決しません Help me
480デフォルトの名無しさん
2020/01/03(金) 14:13:50.99ID:FKz36Fkl >>479
だから、intelのmathmaticsライブラリをインストしろ
だから、intelのmathmaticsライブラリをインストしろ
481デフォルトの名無しさん
2020/01/03(金) 19:33:04.88ID:umaZYxrI MKLですか?
482デフォルトの名無しさん
2020/01/04(土) 11:34:30.60ID:fWyFLqKp mkl2019というか
インテルコンパイラツール 2019なんかをインストールすると
Visual Studio16.4環境を破壊するよ
単にコンパイラ環境だけでなくプルダウンメニューの内容とかも破壊してしまう。
VS 16.4以降はParallel Studio 2020以降じゃないと対応しない
インテルコンパイラツール 2019なんかをインストールすると
Visual Studio16.4環境を破壊するよ
単にコンパイラ環境だけでなくプルダウンメニューの内容とかも破壊してしまう。
VS 16.4以降はParallel Studio 2020以降じゃないと対応しない
483デフォルトの名無しさん
2020/01/04(土) 20:26:44.77ID:WECvYau6 副作用で草
484デフォルトの名無しさん
2020/01/05(日) 00:12:30.19ID:HA4RDQkA 環境破壊とかグレタ嬢に報告しないといかんな
485デフォルトの名無しさん
2020/01/05(日) 15:10:03.49ID:cAxs9Xlp >>480
知りもしないでいい加減なレスすんなアホ
知りもしないでいい加減なレスすんなアホ
486デフォルトの名無しさん
2020/01/06(月) 13:40:33.49ID:Q/9nqAWN487デフォルトの名無しさん
2020/01/08(水) 16:50:37.82ID:3hPXf+vV >>486
parallel Studio 2020えコンパイルに必要なライブラリ一式がすべてそろってるのに
わざわざ別途mklなんか必要あるかよ。わかってんのか馬鹿たれ。
しかも今,mkl2019しか入手できない中、
最新VSにインストしたら不具合起こすことわかってる2019ツールのインストすすめてどうすんだアホ
死ね情弱ゴミ
夢でも見てんのか?
parallel Studio 2020えコンパイルに必要なライブラリ一式がすべてそろってるのに
わざわざ別途mklなんか必要あるかよ。わかってんのか馬鹿たれ。
しかも今,mkl2019しか入手できない中、
最新VSにインストしたら不具合起こすことわかってる2019ツールのインストすすめてどうすんだアホ
死ね情弱ゴミ
夢でも見てんのか?
488デフォルトの名無しさん
2020/01/08(水) 23:18:09.28ID:qsayucr9 人を罵倒せずにいられない人っているよね
489デフォルトの名無しさん
2020/01/09(木) 08:33:01.04ID:pwu9e7aL 他では自信がないんでしょうね
490デフォルトの名無しさん
2020/01/13(月) 12:28:29.10ID:Tr5rZ1p8 テンプレートテンプレートパラメタに関する質問です。
こういうのはどう書けばいいのでしょうか?
以下はコンパイラできないんですが、
意図としては
テンプレート引数の型を関数引数として使いたい。
そして、テンプレートテンプレート引数の型Xを返したい
Xの型としてはデフォルトで'+'が定義されているdouble とか intが入ります
template < template<typename X> class L, template<typename X> class R>
X &
Func(const L<X> & l, const R<X> & r)
{
return l + r;
}
こういうのはどう書けばいいのでしょうか?
以下はコンパイラできないんですが、
意図としては
テンプレート引数の型を関数引数として使いたい。
そして、テンプレートテンプレート引数の型Xを返したい
Xの型としてはデフォルトで'+'が定義されているdouble とか intが入ります
template < template<typename X> class L, template<typename X> class R>
X &
Func(const L<X> & l, const R<X> & r)
{
return l + r;
}
491デフォルトの名無しさん
2020/01/13(月) 12:49:13.64ID:Tr5rZ1p8 コンパイラできないじゃなく
コンパイルできない
です
L<X>の部分をどう書けばいいのかわからないんです。
ところで、
clangってデフォルトテンプレート引数を正しく処理できないんですね
template< typename T = int>
class C{
};
・・・・
C x;
がエラーになってしまう。
C<> x; と書けばokです
gccは<>がなくてもokです
コンパイルできない
です
L<X>の部分をどう書けばいいのかわからないんです。
ところで、
clangってデフォルトテンプレート引数を正しく処理できないんですね
template< typename T = int>
class C{
};
・・・・
C x;
がエラーになってしまう。
C<> x; と書けばokです
gccは<>がなくてもokです
492デフォルトの名無しさん
2020/01/13(月) 12:56:31.05ID:A/MByXKy Xが何者か書いてない
Xが型ならtypename Xを<>の中に付け足すべし
Xが型ならtypename Xを<>の中に付け足すべし
493デフォルトの名無しさん
2020/01/13(月) 13:00:00.75ID:A/MByXKy template<template<typename X> L>
はtemplate<template<typename> L>と同じでXはなんの意味も持たない
はtemplate<template<typename> L>と同じでXはなんの意味も持たない
494デフォルトの名無しさん
2020/01/13(月) 13:11:53.50ID:A/MByXKy classが抜けてた
495デフォルトの名無しさん
2020/01/13(月) 13:33:15.28ID:Tr5rZ1p8 >Xが型ならtypename Xを<>の中に付け足すべし
Func(const L<teypename X> & l, const R<teypename X> & r)
ってこと???
テンプレート引数の X の型を返すのはどうすればいいんですかね?
Func(const L<teypename X> & l, const R<teypename X> & r)
ってこと???
テンプレート引数の X の型を返すのはどうすればいいんですかね?
496デフォルトの名無しさん
2020/01/13(月) 13:38:01.62ID:A/MByXKy template<typename X,
template<typename> class L,
template<typename> class R>
X Func(const L<X>& l,const R<X>& r)
template<typename> class L,
template<typename> class R>
X Func(const L<X>& l,const R<X>& r)
497デフォルトの名無しさん
2020/01/13(月) 13:44:12.54ID:Tr5rZ1p8 >>492
>Xが型ならtypename Xを<>の中に付け足すべし
Func(const L<double> & l, const R<double> & r)
と具体的にXを書く必要があるってことでしょーか?
>Xが型ならtypename Xを<>の中に付け足すべし
Func(const L<double> & l, const R<double> & r)
と具体的にXを書く必要があるってことでしょーか?
498デフォルトの名無しさん
2020/01/13(月) 14:14:22.42ID:Tr5rZ1p8499デフォルトの名無しさん
2020/01/13(月) 14:26:44.12ID:Tr5rZ1p8 Funcが2項演算
X operator+ (const L<X> &l, const L<X> &r)
だと
template < typename X,
template<typename> typename L,
template<typename> typename R>
は,clangで
invalid operands to binary expressionになりますね。
X operator+ (const L<X> &l, const L<X> &r)
だと
template < typename X,
template<typename> typename L,
template<typename> typename R>
は,clangで
invalid operands to binary expressionになりますね。
500デフォルトの名無しさん
2020/01/13(月) 15:21:33.84ID:Tr5rZ1p8 https://faithandbrave.hateblo.jp/entry/20081003/1223026720
ここにある
floatを例えばdoubleとかintとか汎用性を持たせたい
Vector<double> x;
Vector<double> y;
Vector<double> z;
Vector<double> t;
で
t= x+y+z;
という計算ができるようにしたい。
このとき
template <typename T>
class Vector{
ここに式テンプレート一切合切をメンバに持たせる
};
と定義して、式テンプレートの一切合切をVectorクラスのメンバとしてしまえば、うまくいくことがわかりましたが、
式テンプレートを独立させると、2項演算の型情報"float" をどう渡せばいいのか困っています。
2項演算の一番最初に呼ばれる
template <class L, class R>
Expression<L, Plus, R> operator+(const L& lhs, const R& rhs)
ここにfloatやdoubleの型情報を埋め込むにはどうすればいいのか?
ってことになると思うんですが。
ここにある
floatを例えばdoubleとかintとか汎用性を持たせたい
Vector<double> x;
Vector<double> y;
Vector<double> z;
Vector<double> t;
で
t= x+y+z;
という計算ができるようにしたい。
このとき
template <typename T>
class Vector{
ここに式テンプレート一切合切をメンバに持たせる
};
と定義して、式テンプレートの一切合切をVectorクラスのメンバとしてしまえば、うまくいくことがわかりましたが、
式テンプレートを独立させると、2項演算の型情報"float" をどう渡せばいいのか困っています。
2項演算の一番最初に呼ばれる
template <class L, class R>
Expression<L, Plus, R> operator+(const L& lhs, const R& rhs)
ここにfloatやdoubleの型情報を埋め込むにはどうすればいいのか?
ってことになると思うんですが。
501デフォルトの名無しさん
2020/01/14(火) 12:00:41.65ID:AM8t1N0H C++に108ある苦行の一つ、テンプレートの明示的特殊化
502デフォルトの名無しさん
2020/01/14(火) 12:10:40.04ID:AAWN8rY8 108で済むのか?
503デフォルトの名無しさん
2020/01/14(火) 12:53:30.61ID:KjTpusiu Vector内にtype持たせるなりget_type構造体作って特殊化で取るなりして合わないものをenable_ifで弾くなり
operator +の特殊化を書くなりいくらでもやり方はある
operator +の特殊化を書くなりいくらでもやり方はある
504デフォルトの名無しさん
2020/01/14(火) 13:00:30.38ID:Sh3SY+TQ 簡単に描けないと意味が無い
505デフォルトの名無しさん
2020/01/14(火) 13:05:03.28ID:KjTpusiu ETがそんな簡単に書けるわけねーだろ
506デフォルトの名無しさん
2020/01/14(火) 17:54:11.46ID:3su9tm6y >>500
そのサイトをちょっと読んでみたんだけど、LとRがすでにfloatやdoubleの型情報を持っているように思うのですが。
そのサイトをちょっと読んでみたんだけど、LとRがすでにfloatやdoubleの型情報を持っているように思うのですが。
507デフォルトの名無しさん
2020/01/14(火) 18:39:49.77ID:3su9tm6y508デフォルトの名無しさん
2020/01/15(水) 09:17:00.06ID:kgDFfipS >>506
完成形はサイトの一番最後にある
Expression , Plus , operator+
で、operator+ -> Expression -> Plusの順で呼ばれる、
operator+ に演算型(floatやdouble)がないので、ExpressionとPlusのfloatが自動的に選択されてしまう。
一番はじめのoperator+にデータ型を識別する仕組みを入れてそれを引き継いでいくか、
ExpressionとPlus内部でデータ型を認識することが必要だと思うんだけど?
2項演算でなければ3つの型を並べれば済むのにと思ってました。
>>507
using valu_type か
めっちゃ参考になります。
てかこれでほぼ解決です。
聞いて良かった。ありがとうございました
完成形はサイトの一番最後にある
Expression , Plus , operator+
で、operator+ -> Expression -> Plusの順で呼ばれる、
operator+ に演算型(floatやdouble)がないので、ExpressionとPlusのfloatが自動的に選択されてしまう。
一番はじめのoperator+にデータ型を識別する仕組みを入れてそれを引き継いでいくか、
ExpressionとPlus内部でデータ型を認識することが必要だと思うんだけど?
2項演算でなければ3つの型を並べれば済むのにと思ってました。
>>507
using valu_type か
めっちゃ参考になります。
てかこれでほぼ解決です。
聞いて良かった。ありがとうございました
509デフォルトの名無しさん
2020/01/15(水) 15:44:09.21ID:0mJheqXR なんでこの子そんなに上からなんだろ。
510デフォルトの名無しさん
2020/01/15(水) 22:41:08.06ID:kgDFfipS どこが上から?
511デフォルトの名無しさん
2020/01/15(水) 22:55:31.27ID:CBF4WmsT ちょっと賢そうだから嫉妬してる感
512デフォルトの名無しさん
2020/01/15(水) 23:10:31.17ID:kgDFfipS 見下して質問やレスした箇所がどこかわからん。
513503
2020/01/16(木) 10:42:26.08ID:CVktcrTk514430
2020/01/16(木) 11:28:05.62ID:0X0XQobn もしかすると文字でのコミュニケーションが下手なだけかも。直接対話しているならイントネーションやニュアンスで伝わるものが文字では伝わらない、誤解され得る、ということが分かってないとか。
「〜思うのですが。」ではなく「〜思うのですが、どうでしょうか?」と書けば言い返しているのではなく疑問点を質問していると明確になるのにね。
「〜思うのですが。」ではなく「〜思うのですが、どうでしょうか?」と書けば言い返しているのではなく疑問点を質問していると明確になるのにね。
515デフォルトの名無しさん
2020/01/16(木) 11:29:06.76ID:0X0XQobn >>514の名前欄は間違いなので無視してください
516デフォルトの名無しさん
2020/01/16(木) 11:36:45.85ID:N6AzyVRW int main() {
while(1) {
if (kbhit()) return -1;
}
}
while(1) {
if (kbhit()) return -1;
}
}
517デフォルトの名無しさん
2020/01/16(木) 13:18:13.07ID:lpjDYSs5 環境はMac Mojave10.14.6、VScodeは1.14.1
clang,gccはApple LLVM version 10.0.1 (clang-1001.0.46.4)です。
他VScodeの設定で"clang.cxxflags": [
"-std=c++17"
]
としています。
VScodeを使っていて、/Users/[USERNAME]/PATH/にある
c.cppというファイルを右上の矢印でコンパイルしてたら急に
cd "/Users/[USERNAME]/[PATH]/" && runFiles=`ls *.cpp` &&
g++ -std=c++17 `echo ${runFiles}` -o c && "/Users/[USERNAME]/[PATH]/"c
duplicate symbol _main in:
/var/folders/fy/0rw1xdjd3csf2v8nzp2wb4vc0000gn/T/c-216688.o
/var/folders/fy/0rw1xdjd3csf2v8nzp2wb4vc0000gn/T/d-c0a03b.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが出てきました。
対応するにもこの/var/folders/fy/以下にあるファイル群がなんなのか分かりません、
どうすれば良いのでしょうか。
clang,gccはApple LLVM version 10.0.1 (clang-1001.0.46.4)です。
他VScodeの設定で"clang.cxxflags": [
"-std=c++17"
]
としています。
VScodeを使っていて、/Users/[USERNAME]/PATH/にある
c.cppというファイルを右上の矢印でコンパイルしてたら急に
cd "/Users/[USERNAME]/[PATH]/" && runFiles=`ls *.cpp` &&
g++ -std=c++17 `echo ${runFiles}` -o c && "/Users/[USERNAME]/[PATH]/"c
duplicate symbol _main in:
/var/folders/fy/0rw1xdjd3csf2v8nzp2wb4vc0000gn/T/c-216688.o
/var/folders/fy/0rw1xdjd3csf2v8nzp2wb4vc0000gn/T/d-c0a03b.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが出てきました。
対応するにもこの/var/folders/fy/以下にあるファイル群がなんなのか分かりません、
どうすれば良いのでしょうか。
518蟻人間 ◆T6xkBnTXz7B0
2020/01/16(木) 13:27:47.37ID:xhLhfq9D519デフォルトの名無しさん
2020/01/16(木) 14:34:35.42ID:vo+Ub67N520デフォルトの名無しさん
2020/01/16(木) 14:39:29.98ID:vo+Ub67N521デフォルトの名無しさん
2020/01/16(木) 14:50:56.26ID:sHruIOmX 乞田川
乞田型
乞田首
乞田型
乞田首
522513
2020/01/16(木) 16:00:48.56ID:CVktcrTk523デフォルトの名無しさん
2020/01/16(木) 16:06:03.64ID:CVktcrTk524デフォルトの名無しさん
2020/01/16(木) 16:21:00.89ID:vo+Ub67N >>522
やっぱりな
auto一発ですむ話に
>>503
>Vector内にtype持たせるなりget_type構造体作って特殊化で取るなりして合わないものをenable_ifで弾くなり
>operator +の特殊化を書くなりいくらでもやり方はある
こういう寝言ほざいてたんだな。
質問者は
>>500
>Vector<double> x;
>Vector<double> y;
>Vector<double> z;
>Vector<double> t;
>t= x+y+z;
>という計算ができるようにしたい。
>式テンプレートの一切合切をVectorクラスのメンバとしてしまえば、うまくいくことがわかりましたが、
>式テンプレートを独立させると、2項演算の型情報"float" をどう渡せばいいのか困っています。
やっぱりな
auto一発ですむ話に
>>503
>Vector内にtype持たせるなりget_type構造体作って特殊化で取るなりして合わないものをenable_ifで弾くなり
>operator +の特殊化を書くなりいくらでもやり方はある
こういう寝言ほざいてたんだな。
質問者は
>>500
>Vector<double> x;
>Vector<double> y;
>Vector<double> z;
>Vector<double> t;
>t= x+y+z;
>という計算ができるようにしたい。
>式テンプレートの一切合切をVectorクラスのメンバとしてしまえば、うまくいくことがわかりましたが、
>式テンプレートを独立させると、2項演算の型情報"float" をどう渡せばいいのか困っています。
525デフォルトの名無しさん
2020/01/16(木) 16:21:26.81ID:vo+Ub67N >>522
つづき
内部に
type持たせるも何も
auto
operator[](std::size_t i) const{
return Op::Apply(l_[i], r_[i]);
}
として、
struct Plus{
struct Plus
{
template <typename T>
とするだけで、
質問者のやりたいことはいくらでも出来ますがなにか。
お前自身低レベルの極みなんだよ馬鹿たれ
つづき
内部に
type持たせるも何も
auto
operator[](std::size_t i) const{
return Op::Apply(l_[i], r_[i]);
}
として、
struct Plus{
struct Plus
{
template <typename T>
とするだけで、
質問者のやりたいことはいくらでも出来ますがなにか。
お前自身低レベルの極みなんだよ馬鹿たれ
526デフォルトの名無しさん
2020/01/16(木) 16:23:29.03ID:vo+Ub67N527デフォルトの名無しさん
2020/01/16(木) 16:27:23.02ID:CVktcrTk 質問者は型情報を渡したいと言ってるだろうが
お前のやり方だと要素ごとのbitwise orとか実装するときに困るんだよアホ(多分他にも困る場面あるはず
整数だろうが浮動少数点数だろうが表記が同じ演算ならお前の言うそれでいいけどな
お前のやり方だと要素ごとのbitwise orとか実装するときに困るんだよアホ(多分他にも困る場面あるはず
整数だろうが浮動少数点数だろうが表記が同じ演算ならお前の言うそれでいいけどな
528デフォルトの名無しさん
2020/01/16(木) 16:28:28.38ID:CVktcrTk あと
>オマエ何様のつもりだ。
>匿名掲示板でいったいどんな言葉使いを期待してるんだアホww
そっくりそのまま返すわキチガイが
>オマエ何様のつもりだ。
>匿名掲示板でいったいどんな言葉使いを期待してるんだアホww
そっくりそのまま返すわキチガイが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 三角形はカッコいい
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- みなみけ三姉妹誰が一番好き?
- 俺はヤンキーだから
- 【速報】高市早苗、起床 [779938112]
- ぬるぽ
