- 1 名前:デフォルトの名無しさん mailto:sage [2013/10/28(月) 01:00:22.34 ]
- The C++ Standards Committee
www.open-std.org/JTC1/SC22/WG21/ Wikipedia https://en.wikipedia.org/wiki/C%2B%2B14 C++11/C++1y 18 toro.2ch.net/test/read.cgi/tech/1365073520/
- 710 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 19:32:15.59 ID:ZdExmIEg]
- const付きbeginとcbeginの処理が異なっているなんて規格上許されるのか?
- 711 名前:710 mailto:sage [2014/03/22(土) 19:32:49.47 ID:ZdExmIEg]
- ああすまん、自作コンテナの話か。
- 712 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 19:49:09.81 ID:HJ0+n2Jk]
- 自作コンテナの話の方はbeginのconst付きと付いてないの実装の差異だと思うけど。
ただあんまりそんな実装しないよね。 パッと思いつくのrwlockでconst付きはrlock、const無しはwlock するようなコンテナとか? でもconst有りと無しで問題になる程パフォーマンス変わるようなコンテナは逆に使いづらいと思うのよね。
- 713 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 22:37:22.96 ID:j1DZjBUB]
- >>709
そういう問題の解決をcbeginに求めようとしているのだな? 不適切なやり方なのかもしれないし、そうでないかもしれない。
- 714 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 06:39:41.19 ID:Ci/6MbS/]
- 文盲が多いな
constと非constの違いの話だと思うのだけれど どうしてcbeginとbeginの違いの話だと妄想したがるのか
- 715 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 10:39:09.00 ID:buFfa6rW]
- >>714
そもそもは>>670から始まってるから
- 716 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 10:56:12.39 ID:J+Rs1swr]
- 混乱するから誰かまとめて
- 717 名前:デフォルトの名無しさん [2014/03/23(日) 11:36:21.59 ID:sV6DQ8Cb]
- template <class T1, class T2>
auto operator + (T1 x, T2 y) -> decltype(x+y) { return x+y; } 上のところで、 error: template instantiation depth exceeds maximum of 900・・・ recursively required by substitution of 'template<class T1, class T2> decltype ((x + y)) operator+(T1, T2) [with T1 = std::complex<double>; T2 = double] みたいなエラーがでます(gcc4.8.1)。これって、decltype(x+y)のところで、operator+が再帰的に呼ばれているということですか?
- 718 名前:片山博文MZジェバンニ ◆T6xkBnTXz7B0 mailto:sage [2014/03/23(日) 11:39:47.07 ID:FjLlR1KU]
- >>717
それってそもそも必要なの?
- 719 名前:デフォルトの名無しさん [2014/03/23(日) 11:46:12.34 ID:sV6DQ8Cb]
- まあ、auto, decltypeの練習で試しにやってみたんですけど。
- 720 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 12:06:50.29 ID:E9zZ+v+U]
- 再帰だろうね
- 721 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:34:05.08 ID:+klle/r1]
- 演算子+(T1 x,T2 y)の返値の型は
演算子+(T1 x,T2 y)の返値の型と定義しているようなものなのでは
- 722 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 13:55:55.41 ID:wql3g0E+]
- C++1yならそもそも -> から先要らないよね
- 723 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 15:32:38.95 ID:9EUDVluQ]
- 下請けに丸投げ
- 724 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 16:37:18.36 ID:FjLlR1KU]
- 下請けに投げたと思ったら、自分の会社に投げていたでござる
- 725 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 16:42:36.55 ID:wDKVi9AQ]
- decltype以前に無限再帰じゃん
コンパイル時に見つかるだけいいんじゃね template <class T1, class T2> auto operator + (T1 x, T2 y) -> decltype(auto) { return y ? (++x)+(--y) : x; }
- 726 名前:デフォルトの名無しさん [2014/03/23(日) 21:55:13.61 ID:sV6DQ8Cb]
- #include <complex>
... complex<double> z(0,1); cout<<1+z<<endl; をコンパイルすると「複素数と整数の演算+は定義されていない」旨のエラーがでます。ところが template <class T> struct double_trait { typedef T type; }; template <class T> using Dtype=typename double_trait<T>::type; template <class T> std::complex<T> operator + (Dtype<T> c, const std::complex<T>& z) { return c+z; } をmain()関数の前に定義すると、今度はビルド実行できます。わからないのはintの場合の特殊化 をしてないのになぜビルド実行できるかです。 ※complex<double>とintの単純な演算子オーバーロードを使わなかったのは オペランドがchar, unsignedなどの場合にも対応させるためです。それと int iとcomplex<double> zに対して単純にreturn i+z;とするとなぜか実行時 エラーが出ます(TDM gcc4.8.1)。
- 727 名前:デフォルトの名無しさん [2014/03/23(日) 22:06:19.15 ID:sV6DQ8Cb]
- あ・・・ operator+の定義内でreturn i+z; とやるとまた再帰的にw
- 728 名前:デフォルトの名無しさん [2014/03/23(日) 22:56:26.24 ID:sV6DQ8Cb]
- あ・・・。
template <class T> std::complex<T> operator + (Dtype<T> c, const std::complex<T>& z) は実体化される時に std::complex<double> operator + (double c, const std::complex<double>& z) となり、intやchar型の実パラメータが渡されるときに暗黙の型変換が適用されるのか? template <class T> std::complex<T> operator + (T c, const std::complex<T>& z) でもokでした。traitsは関係なしと。お騒がせしました。 今日はもう寝ます。
- 729 名前:デフォルトの名無しさん [2014/03/23(日) 23:05:46.93 ID:sV6DQ8Cb]
- あれえ?もう一回やったらokじゃない。小保方さんのSTAP細胞みたいに
なっちまった。寝る。
- 730 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:17:30.67 ID:k+FbO2rG]
- >>729
お疲れ様。 俺も寝よう。おやすみ。
- 731 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:27:25.54 ID:oWIQ1yda]
- C++11でもOKって、C+1yで使えるならCの質問でもOKスレってことだよね
- 732 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:50:33.19 ID:8OD1stAu]
- そういやC11スレって無いな
- 733 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:53:52.09 ID:Cwtmew+7]
- そもそも環境あるのか?
- 734 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 02:55:24.26 ID:zheSyNc8]
- スマホとMac
- 735 名前:デフォルトの名無しさん [2014/03/24(月) 22:27:29.45 ID:uHELE/QG]
- VC++2013を未だインストールしてないので、次のコード動くか確かめてもらえないでしょうか?
#include "stdafx.h" template <class T> struct double_trait { typedef T type; }; template <class T> using dtype=typename double_trait<T>::type; template <class T> std::complex<T> operator + (dtype<T> c, const std::complex<T>& z) //@ { return c+z; } int main() { using namespace std; complex<double> z(0,1); char c=-1; cout<<c+z<<endl; cin.get(); return 0; }
- 736 名前:デフォルトの名無しさん [2014/03/24(月) 22:46:48.96 ID:uHELE/QG]
- あ・・・。stdafx.hの中に次の2行が必要です。
#include <iostream> #include <complex> >>735の@の引数を直接double cにすると、「多重定義であいまい(ambiguous)」のエラーが出て しまいます。floatにするとコンパイルエラーは出ませんが、無限再帰に陥るのか実行時エラー が出ます。dtype<T> c の場合は、T=doubleなので実質dtype<T>=doubleとなるのになのに、 コンパイラはエラーを出さません。また、正常に実行されます。どうも、コンパイラを欺く トリックではないかと。 ※ 1.0+zと書けばすむ話ですが、数学の教科書では普通にz+1とか、1+zとか書きますよね。 しかし、プログラムでうっかりz+1と書いてしまうと、分けのわからないエラーがベラベラと 出てきて初心者はとまどいます。それで、>>735 みたいな手の込んだことをするわけです。 でも、複素数と整数の混合演算を簡単にできる方法ないですかね。
- 737 名前:デフォルトの名無しさん [2014/03/24(月) 22:48:12.05 ID:uHELE/QG]
- T=doubleなので実質dtype<T>=doubleとなるのになのに、コンパイラはエラーを出さません。
↓ T=doubleなので実質dtype<T>=doubleとなるのに、コンパイラはエラーを出しません。
- 738 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:52:52.12 ID:JglQ1MVO]
- >次のコード動くか確かめてもらえないでしょうか
おまえ御命令だ。やれよ
- 739 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 23:30:50.09 ID:f/NUMeag]
- もはやただのテンプレートの話で11,14関係ないだろ
でもひとついっとくとすでに標準に template<class T> complex<T> operator+(const complex<T>&, const T&); template<class T> complex<T> operator+(const T&, const complex<T>&); はあるから > >>735の@の引数を直接double cにすると、「多重定義であいまい(ambiguous)」のエラーが出て > しまいます。 はそのせいだろ
- 740 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 23:47:28.16 ID:6M4RZ6kU]
- オンラインコンパイラサービスは色々あるからそれを試すのが良いよ
GCC:melpon.org/wandbox/permlink/gCuQdogNabmJhVeF Clang:melpon.org/wandbox/permlink/FkystRrbxJlhHwvf 結論としては、dtype<T>は関係無い。dtype<T>はdouble_trait<T>::typeに展開されるのでTはnon-deduced context、よってここでは推論の対象とならない。 けれども、第二引数のcomplex<T>のTはdeduced contextで推論される。結局Tはcomplexのテンプレート引数に推論されてオーバーロード候補としてマッチする。 参考:melpon.org/wandbox/permlink/CYnRbBgzf2gL4vGL ここも参考になるかも(英語) stackoverflow.com/questions/8775202/how-do-template-aliases-affect-template-parameter-deduction
- 741 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:57:00.26 ID:rAz4buIA]
- >>739-740
俺には?だが、原因が分かるってレベル高いんだな g++にはdemangleする関数あるのか、メモメモ(AA略)
- 742 名前:デフォルトの名無しさん [2014/03/25(火) 01:03:54.21 ID:dLACqsrm]
- >>740
ありがとうございます。 私は、多重定義のチェックと実体化のタイミングの問題かな?と考えました。 となると、コンパイルによってはダメかもしれないと考え、VC++ではどうなるんだろ? と思った次第です。 >dtype<T>は関係無い。 そうですか。私は「double_trait<T>::typeで包むことによってコンパイラ の多重定義のチェックから逃れているが、最終的にはdouble型の引数を もった関数が実体化され、実パラメータがcharやintの時に暗黙の型変換 が働いている。」と解釈していました。 この考えは間違いですかね。
- 743 名前:デフォルトの名無しさん [2014/03/25(火) 01:08:25.46 ID:dLACqsrm]
- 解釈していました。
↓ >>740 さんを読んで解釈しました。
- 744 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 02:59:03.84 ID:cgyBljYJ]
- で、どの辺がC++14なの?
現行規格の質問は現行規格スレでやれ
- 745 名前:デフォルトの名無しさん [2014/03/25(火) 09:56:38.99 ID:aIELEUmN]
- ああ、C+11/C++14じゃなかったんですね。失礼しました。
- 746 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 18:38:12.70 ID:ktix9ZhM]
- C+11ってC++11とC11のどっちだ
- 747 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 22:03:54.20 ID:DjVofhuk]
- C+11 = C+1一 = C++ = C++
- 748 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 00:25:37.22 ID:BPRBwKR1]
- >>740
そのmelponてとこで手持ちのコードを走らせてみたらclang 3.4では通るもののgcc 4.8.1ではコンパイルエラー。 念のためideone(gcc 4.8.1になってる)でやってみるとコンパイル成功して実行もできる。 vc(2010, 2013)でも問題なし。 なんか変だな???
- 749 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 19:10:33.17 ID:ysWuWvgs]
- >>748
呼称はwandboxがよいと思う ソースによるけど新しい機能についてはコンパイラにバグがある可能性もある、またはオプションの関係とかも 詳しいところは実際のソースを見なければわからない
- 750 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 19:56:25.59 ID:9PLgomQW]
- >>749
ソースすら出さないであーだこーだって、独り言(俺日記)カキコしてもって感じだよね
- 751 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 20:40:31.98 ID:BPRBwKR1]
- >>750
そう言われてもね。 ソース垂れ流しても迷惑だし、ちゃんとポイントを絞って提示するのは難しい。
- 752 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 20:42:26.73 ID:2pJmwYuc]
- 無能なのね
- 753 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 21:25:42.63 ID:BPRBwKR1]
- うん。
そのwandboxってやつのgccエラーを読んでもわからないので、抽出できない。 「 'v' は type 'int(int)' であってメンバーポインタじゃねーよ!」と言ってるらしいんだけど、 その行の近辺に 'v' なんて無いし・・・
- 754 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 21:45:50.64 ID:Y1umZvGr]
- auto変数が分からないと飯が食えなくなる?STLでかなり危ないが
- 755 名前:デフォルトの名無しさん mailto:sage [2014/03/26(水) 21:48:18.57 ID:Vfy/7S1e]
- 釣りなら初心者スレでどうぞ
- 756 名前:デフォルトの名無しさん [2014/03/27(木) 16:12:52.97 ID:6aYzX2Zx]
- 飯がどうとかいう話は次元が違うからマ板でやれ。
- 757 名前:デフォルトの名無しさん [2014/04/01(火) 20:42:02.69 ID:gKhRKamL]
- >>755 >>756
馬鹿のくせにエラそうに言うから誰も書き込まんだろ。 もう、お前ら来るな。陰菌じゃなかった、陰気臭い。
- 758 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:14:46.02 ID:28c8XDsv]
- 「俺、auto使えないんだ」と自己紹介乙
- 759 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 22:04:36.61 ID:+EnZFn0e]
- アウト!
- 760 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 00:28:39.77 ID:4mJ5OkVZ]
- auto が使える子になったというのに一向に使えないおまいらワロスw
- 761 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 01:11:58.18 ID:xWN8C05F]
- C++11以降の書籍がほしいお
- 762 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 06:12:23.58 ID:pjklZg5A]
- >>757
> 馬鹿のくせにエラそうに言うから誰も書き込まんだろ。 馬鹿が書き込む必要はないからこれでよい。 過疎板で無理にすれ違い板違い場違いネタ雑談でスレを伸ばす必要はない。
- 763 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 07:26:49.12 ID:16PuwTBy]
- VC++2010でauto使うとたまにコンパイラがエラー吐く
- 764 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 07:42:34.19 ID:SfgYmxWg]
- 規格が改訂される前に出荷されたコンパイラーに文句言うなよ
- 765 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 07:47:42.02 ID:VoSgAfoQ]
- 2013使えよ
- 766 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 10:04:03.61 ID:X8BOgtKu]
- constメンバ関数内で特定のメンバ変数を(自己責任で安全に)書き換える許可を与えるのってなんでしたっけ
- 767 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 10:07:17.45 ID:VoSgAfoQ]
- mutable
- 768 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 10:45:51.70 ID:X8BOgtKu]
- サンクス
- 769 名前: ◆QZaw55cn4c mailto:sage [2014/04/02(水) 18:56:18.22 ID:9lAFE+Pq]
- >>761
まだ外書レベルのようですね.kindle 経由で iPhone でしこしこ読んでいるけど結構厳しい(よる年波で近眼がつらい‥‥)
- 770 名前:デフォルトの名無しさん [2014/04/02(水) 20:50:01.60 ID:Oc3JiJZr]
- というか、何でスレタイが
C++14/C++1yなんだよ。 C++11だって使いこなせていない奴いるのに。
- 771 名前:デフォルトの名無しさん [2014/04/02(水) 20:51:57.60 ID:Oc3JiJZr]
- >>762
じゃあ、お前が書き込むなよ。お前、ウザいんだよ。 職場でも嫌われ者だろ
- 772 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 20:57:19.75 ID:PAouqAzj]
- 現行を使いこなせてないとか次期C++スレで言われても
- 773 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 21:27:44.90 ID:ueE6QFcL]
- 可哀想な子なの。触らないで
- 774 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 21:31:38.39 ID:QnsIQKqw]
- C++を理解していない奴がいる
↓ C++の改定予定の次期規格のスレに物申す この発想がキチガイ
- 775 名前:デフォルトの名無しさん mailto:sage [2014/04/02(水) 21:38:22.33 ID:YTP5IJHu]
- ID:Oc3JiJZrって必死にぐぐりながらカキコしてんだろうなw
いちいち支離滅裂だもんw
- 776 名前:デフォルトの名無しさん [2014/04/02(水) 22:12:14.42 ID:Oc3JiJZr]
- 馬鹿の妄想w
- 777 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 02:29:15.18 ID:xLDtsOGn]
- 人類史上c++を使いこなした人はいません
- 778 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 10:48:28.43 ID:IeRRdjD0]
- じゃあ俺が最初人間だったんだ
- 779 名前:デフォルトの名無しさん mailto:sage [2014/04/03(木) 18:21:45.92 ID:sk+nDb/g]
- はじめ人間ぎゃーとるず
- 780 名前:デフォルトの名無しさん [2014/04/08(火) 20:23:35.09 ID:vxIM531p]
- 使いこなせなくたっていいじゃないの。この言語。
俺は好きだけど
- 781 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 00:42:36.67 ID:jje258uF]
- おまいらオートというよりマニュアルがないとなにもできないマニュアル人間だもんなw
- 782 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 01:21:53.49 ID:g6kjuewa]
- >>781
面白い!()
- 783 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 15:26:13.37 ID:gPopJ2Qe]
- ラーメン作る時も水を計量し茹で時間もぴったりでないと気が済まないマニュアル人間
- 784 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 16:41:19.25 ID:QfBMtLzF]
- 計量もせず料理してんのか
自分で食うだけならいいけど迷惑だから人に振る舞うなよ
- 785 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 16:46:11.25 ID:wSq/pgWA]
- >>783
料理ってそういうもんだから
- 786 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 16:54:31.75 ID:g6kjuewa]
- >>783
目分量を「アート」とか言っちゃう人かな?
- 787 名前:デフォルトの名無しさん [2014/05/01(木) 06:16:27.89 ID:jnur+x0Z]
- Programming: Principles and Practice Using C++ (2nd Edition)がもうすぐ出るな
- 788 名前:デフォルトの名無しさん [2014/05/02(金) 21:31:40.17 ID:IMg3w3Zx]
- 「C++フロントエンドとしてClangを使ってLLVM中間コード(IR)を生成したのち、
プロプライエタリなIntel製のコンパイラでその中間コードをネイティブコードにコンパイルする」 IntelがClangベースのC++コンパイラを開発 | スラッシュドット・ジャパン デベロッパー developers.slashdot.jp/story/14/05/02/0425216/ 2014年05月02日 16時03分
- 789 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 15:33:01.03 ID:J9FrsreK]
- ここはツイッターじゃねぇ
意味不明なクソレスすんな
- 790 名前:デフォルトの名無しさん [2014/05/04(日) 15:47:12.32 ID:fKxZYvEo]
- Clangのは最新のC++規格のサポートが進んでいる
- 791 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 15:48:49.88 ID:uzMRkq8y]
- そうか。
- 792 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 15:51:37.36 ID:8lK5PBNC]
- 進んでるっていうかC++14既に対応してるな
- 793 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 15:51:53.35 ID:ZNtj5n0p]
- >Clangのは最新のC++規格のサポートが進んでいる
ここはツイッターじゃねぇ 意味不明なクソレスすんな
- 794 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 15:52:44.98 ID:LHvIgNMr]
- 完成していない規格に対応とはこれ如何に
- 795 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 15:57:25.44 ID:kkY/TYaH]
- Intelは相変わらずノロマだなw
- 796 名前:デフォルトの名無しさん [2014/05/04(日) 17:50:41.76 ID:j7xk1fk5]
- >>793
おまえのどこがえらいのかさっぱりわからん
- 797 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 18:50:46.13 ID:BIZ4TF2L]
- for(true)
{ 1500行くらい・・・ } キチガイですよね?
- 798 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 18:59:41.45 ID:n8bRVLF6]
- >>797
だね。
- 799 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 00:03:57.91 ID:r55hxj+Y]
- 犯罪行為といっていい
- 800 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 03:18:19.56 ID:Gkok4GNb]
- >>795
Intelは科学計算や高速金融取引が主要顧客だろうから、 無理して新規格に追従しなくてもいいんじゃね?
- 801 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 09:44:39.50 ID:vIqS8S8I]
- プログラマ視点で考えるとコードの生産性が重視されるけど、ユーザー視点
だと実行速度になるからなあ。 C++の最新規格を積極的に取り入れたいならClangだろうけど、実行速度を 考えるとインテルコンパイラなんだよ。コンパイラだけで数倍変わるケースも あるからなあ。まあ、科学技術計算のところは往々にしてC++11すら必要な いからなあ。
- 802 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 13:01:09.16 ID:ulMr1Kur]
- あなたの言うところの科学技術計算とは?
大風呂敷広げずに答えよ
- 803 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 13:42:04.45 ID:vIqS8S8I]
- 未だにFortranが使われているような領域だよ。スパコンなんかgcc4.2とかが未だに
現役なんだよ。スパコン向けのコードを書くときに、規格の問題でコンパイルに苦労 することがある。また、科学技術計算では線形問題を扱うことが多いので、Lapackや MKLが使われるし、自前でコアな部分を書くときはインラインアセンブラだから、 今のところC++11が必要とされないんだよ。最も科学技術計算を行う研究者がC++11 とかに興味がないんだろうけどね。本質じゃないから。個人的には使ってもらいたい と思うんだけどね。
- 804 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 13:47:12.04 ID:dXEEoavT]
- 現実はいろいろってことやね
- 805 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 13:59:29.98 ID:1BHBnJWI]
- 過去の資源にてこ入れできればいちばんよいのだけれどな
コンパイラのソースなんてGPLでもなければまず公開されていないと思われ
- 806 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 20:18:59.16 ID:uepcHE1E]
- Fortran77は氏ね
- 807 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 21:02:53.84 ID:G7yR9GEh]
- >>803
研究者ならC++11覚えるより、研究にはげめだろ 本職、プログラマじゃないしな
- 808 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 22:47:09.24 ID:YSa885x0]
- 今でもFortranのコードは高速に実行される訳だから無理に変える必要も無いわな
- 809 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:21:50.16 ID:NL7z67wf]
- 自動ベクトル化への対応とかを考えると
下手にプラグマとかが足されていないC/C++で書くよりも Fortranコードは高速かもしれない
- 810 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:46:52.06 ID:M8aO/3ni]
- 門外漢だけど1954年生まれの言語が未だに速度でアドバンテージ持ってるってすごいな
と思ってググって覗いて見ると、言語としてはとくに面白さがないようで。。 科学技術計算向けDSLみたいな立ち位置なのかしら
|

|