- 1 名前:デフォルトの名無しさん [2015/07/04(土) 09:38:36.75 ID:G5g709D9.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part117 peace.2ch.net/test/read.cgi/tech/1431187685/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.96【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1433514467/ 次期規格C++1zはこちら C++14/C++1z 20 peace.2ch.net/test/read.cgi/tech/1410382924/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
- 809 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 07:10:19.74 ID:RcluoQUw.net]
- >>792
渾身は >>788 だろ 滑ってるけど
- 810 名前:デフォルトの名無しさん [2015/08/21(金) 08:23:40.22 ID:4Z8Mt89I.net]
- operator new のデバッグに malloc が何の役に立つんだ?
- 811 名前:デフォルトの名無しさん [2015/08/21(金) 08:26:11.08 ID:E5L2ZBIK.net]
- ログ取ったりカウントしたり
- 812 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 08:40:46.72 ID:JFe3Ml2I.net]
- >>802
operator new のデバッグじゃなくて、デバッグ目的でoperator newをオーバーロードするってことね。 まさに>>803の通り。 俺が自演したのかと思ったぜ。
- 813 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 09:20:54.88 ID:BlDTYlt7.net]
- mallocでログを取るのは某QZがやってなかったか
- 814 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 11:04:19.93 ID:RwXqV507.net]
- ツールかライブラリ使えばいいのになんでそんな無駄な事を
- 815 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 11:07:25.95 ID:9PM+ePh4.net]
- よろしげなライブラリあったら教えて下さい
- 816 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 11:27:46.72 ID:02HHuEF9.net]
- gperftools
- 817 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:00:17.09 ID:ALerSfbe.net]
- 全ての環境に理想的なツールやライブラリが揃ってるわけではない
そしてそれらをインストールすることが許可されない環境とかある
- 818 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:30:57.28 ID:sHjAdKxZ.net]
- vsなら各種ツールが標準で使えるやん
- 819 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 22:00:16.40 ID:ALerSfbe.net]
- Windowsスレか
- 820 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:11:21.65 ID:efFDPChC.net]
- >>809
開発効率も考えない糞な現場があるってことがどうかしたん?
- 821 名前:デフォルトの名無しさん [2015/08/21(金) 23:15:54.47 ID:XWi2OaDt.net]
- VSなんて存在しない環境なんて山ほどあるけど
Windowsアプリしか作ったことないの?
- 822 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:22:07.67 ID:qqfWoXP/.net]
- 話、噛み合ってる?
- 823 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:25:22.05 ID:NEaqZUwT.net]
- みんな言いたい事だけ言ってる
- 824 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:31:02.04 ID:ENucIhJC.net]
- 噛みつきあってます
- 825 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:34:13.00 ID:WXHpGDQN.net]
- z/OSですが参加していいですか
- 826 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:15:33.08 ID:OQgdhBkf.net]
- アンカー付けてない奴は誰に言ってんのかすらわからんしな。
- 827 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 04:59:47.99 ID:50TgdakN.net]
- >>A£A?A¢A£A?A3A£A?A≪A£A?A?A?A≫A?A£A?A?A£A?A|A£A?AaA£A?A?A\A\A´A£
A?A ̄A¨AaA°A£A?A≪A¨A¨AA£A?A£A£A?A|A£A?A?A£A?ARA£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A£A?A?A £A?AaA£AA? A£A?A≫A£A?A?A£A?A¨A£A?A?A£A?A?A£AA? a?≫a??a?¨a??a??a?
- 828 名前:デフォルトの名無しさん [2015/08/22(土) 17:58:15.34 ID:YIhcmBww.net]
- 使いどころがわからないと思っていた
CRTPの使いどころがやっとわかったので 発表してもいいですか?
- 829 名前:デフォルトの名無しさん [2015/08/22(土) 18:09:03.96 ID:YIhcmBww.net]
- 駄目なようなので止めますね
ありがとうございました
- 830 名前:デフォルトの名無しさん [2015/08/22(土) 18:55:46.35 ID:YIhcmBww.net]
- テンプレートの関数定義をクラスの外部に書くと全部の
パラメータを書かないといけないから糞長くなるな かといって外側でエイリアス定義するとカプセル化が壊れるからな
- 831 名前:デフォルトの名無しさん [2015/08/23(日) 00:13:56.66 ID:cE4E7c5e.net]
- 符号あり整数の型から値の最大値をコンパイル時に求める方法を教えて下さい
max<int>::value == 0x7fffffff max<short>::value == 0x7fff みたいな
- 832 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 00:32:30.85 ID:9aqT3FI6.net]
- へぼいけど
webkaru.net/clang/limits-header/
- 833 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 00:37:54.31 ID:9aqT3FI6.net]
- C++的には
std::numeric_limits<int>::max() すきなのどうぞ
- 834 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:27:25.76 ID:6ms/2Czf.net]
- numeric_limits<T>::max() == 0x7fffffff
この比較って安全? 型不明のリテラルと比較するのが気持ち悪いんだけど
- 835 名前:デフォルトの名無しさん [2015/08/23(日) 10:31:31.03 ID:NrGPu3iT.net]
- #include <iostream>
#include<utility> using namespace std; struct A{ int i; int * a; A():i{0}{} A(A&& x) : i{x.i},a{x.a} { x.a=nullptr; cout<<"move"<<endl; } auto f(){ ++i; return move(*this); } }; int main() { A a; a.a=new int[1]; A b=a.f(); a.f(); return 0; } 2回目のfがコンストラクトしてないのにムーブコンストラクタが呼ばれるのが納得できません そうしたらポインターを消すことができなくなります コピーした相手がポインターを消せるときだけムーブコンストラクターを呼びたいです
- 836 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:38:28.91 ID:P//TMFNX.net]
- >>826
max()をリテラルと比較する必要性が見出せない
- 837 名前:826 [2015/08/23(日) 10:41:25.48 ID:NrGPu3iT.net]
- ポインターが消せると蚊の問題じゃなくて
int * aがnullptrになってしまうことが問題でした
- 838 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:45:45.52 ID:JQjk+2hP.net]
- >>829
自分でクリアしておいてわがままな奴だな 参照でも返すようにしとけ
- 839 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:54:22.51 ID:Nt/W7ZYs.net]
- >>827
突っ込みどころが多すぎる
- 840 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:56:41.91 ID:pq0DEhMn.net]
- どうせまたQ渾身の炎上学習法だろ
- 841 名前:デフォルトの名無しさん [2015/08/23(日) 12:00:41.35 ID:rz9Nyde6.net]
- >>828
例としてだしただけなので必要性は関係ないです そんなこともわからないんですか
- 842 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 12:30:02.22 ID:P//TMFNX.net]
- 例も何もnumeric_limits<T>::max()のTに型名を入れるんだからmax()を呼び出す段階では型が決まってるだろ?
問題はconstexprとリテラルを比較する意味だ
- 843 名前:デフォルトの名無しさん [2015/08/23(日) 12:36:34.24 ID:rz9Nyde6.net]
- >>834
なんで同じ事言わないといけないんですか。 例に出したコードに意味はないです この値が返るのを望んでいるという事をわかりやすく書いただけで 得られる動作に意味なんてないです。脳味噌ないんですか
- 844 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:39:24.02 ID:dERNPP1W.net]
- >>835
脳みそがないのはそっちの方です
- 845 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:53:08.92 ID:Rmxdvxky.net]
- 意味がないとか言う低能は
if (sizeof(int) >= 4) みたいなコードも意味がないとか言っちゃうわけ?
- 846 名前:デフォルトの名無しさん [2015/08/23(日) 16:04:24.53 ID:rz9Nyde6.net]
- >>837
少しは脳味噌を使ったらどうですか そうやって意味をつけたコードと 説明の為の無意味な一例を比較する馬鹿いますか
- 847 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:31:13.82 ID:wtabsgY2.net]
- >>838
まあ落ち着け 意味が無いとか言い張り出したお前の脳みそが沸騰してるだけだから
- 848 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:02:24.77 ID:2+jwKIuc.net]
- 触っちゃいけない人が暴れだしてるだけでしょ
- 849 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:47:17.40 ID:jdIAA1rP.net]
- ・constexprとリテラルの比較に意味がない派
・constexprとリテラルの比較にも意味はある派 ・説明のためのコードに意味を求めんな派 今日もキチガイ共が湧いてるな
- 850 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:39:02.23 ID:npr8vrNT.net]
- Effective C++ 第3版 37頁 11行目
【ところが、仮想関数が全くないクラスでも、「仮想でないデストラクタ」で問題が起こることがあります。】 という一文があるのですが、どうにも理解するのが難しく 下記のように読み替えると正しい意味になるのかな、と予想しました。 【つまり、仮想関数が全くないクラスでは、「仮想でないデストラクタ」で問題が起こるのです。】 問題ないでしょうか。 間違っていたらすみません。
- 851 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:45:37.46 ID:RkLv6vuw.net]
- 間違ってます
何故ならば、仮想関数が全くないクラスで、「仮想でないデストラクタ」で問題が起きない場合もある
- 852 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:09:29.71 ID:wtabsgY2.net]
- >>841
・constexprとリテラルの比較にも意味はある の何がおかしいのか言ってみろ ひたすら上から目線の総括キチガイ君
- 853 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:56:20.61 ID:M8PQmWuI.net]
- 2chと繋がったまま上から目上で罵られて
頭がフットーしそうだよ
- 854 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:56:28.07 ID:wDslJmRu.net]
- まず先に
>【仮想関数を含むクラスでは、「仮想でないデストラクタ」で問題が起こることがあります。】 ・・・(1) という言明でも無いと、>>842の >【ところが、仮想関数が全くないクラスでも、「仮想でないデストラクタ」で問題が起こることがあります。】 ・・・(2) という文((1)の裏が真ならずということを強調する文)につながらないと思うんだけども、 (1)で言う「問題」ってなんじゃ…? それとも原文には(1)ではないもっと異様なことが書いてあるのか…
- 855 名前:845 mailto:sage [2015/08/23(日) 22:06:08.53 ID:wDslJmRu.net]
- スマンわからないのは(2)だった;
(1)はポリモーフィズムやったとき基底クラスの仮想でないデストラクタが呼ばれないことなんでワカル (2)がわからん… 仮想でない、仮想関数が全く無いクラスを継承したクラスでおもむろにポリモーフィズムしようとした場合に 基底クラスの仮想でないデストラクタが呼ばれない問題のこと?
- 856 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:06:23.69 ID:MaJZaRGO.net]
- >>842
要するに仮想デストラクタが宣言されていないクラスAを継承したクラスを書いたりすると、 クラスAが完全な具象クラスだったとしても未定義な動作を引き起こすよという話 まとめると継承されることを期待してるかクラスなのかどうかはデストラクタがvirtualかどうかで判断しましょう 逆に言うとあなたの書いたクラスも同じ基準で判断されるから気をつけるのよ って感じの項だった記憶 出先なので見当違いだったらすまん
- 857 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:16:31.85 ID:ZKG2IY6j.net]
- 「継承されることを期待してるかクラスなのかどうかはデストラクタがvirtualかどうかで判断しましょう」
→そういうスタイルを推奨するのはわかる 「あなたの書いたクラスも同じ基準で判断されるから気をつけるのよ」 →お前の脳内ルールを押しつけるな低能 結論:スコットメイヤーの糞本は読んではいけない
- 858 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:17:41.15 ID:RkLv6vuw.net]
- どっかのコンパイラでdynamic_castが使えるかどうかがその判断だった気がする
- 859 名前:841 mailto:sage [2015/08/23(日) 22:32:26.99 ID:npr8vrNT.net]
- 説明足らずですみません。前後の文を引用すると以下のようになります。
▼引用ここから 結論を言うと、「理由もなくすべてのデストラクタを仮想にするのは、 すべてのデストラクタを非仮想にするのと同様に誤り」ということです。 そこで、多くの人は、次のように言います:クラスが仮想関数を保つ場合、デストラクタを仮想にせよ、と。 ところが、仮想関数が全くないクラスでも、「仮想でないデストラクタ」で問題が起こることがあります。 たとえば、標準のstringは仮想関数を持っていません。 しかし、よく理解していないプログラマが、stringを基底クラスに使うことがあるかもしれません。 ▲ここまで 一見自然な文章に見えるのですが、【ところが】というところが不自然な感じがして 【つまり】に変えて読んでみたら意味が通るような気がしたのですが 正しく内容を理解できているのか不安になったので
- 860 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:38:33.53 ID:npr8vrNT.net]
- 保つ場合→持つ場合
- 861 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:39:33.02 ID:F9/N0IWT.net]
- c++って何でこんなにごちゃごちゃしてるの?デストラクタなんて気にしなくても自動的に上手い事やってくれる仕組みって無いの?
- 862 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:40:35.65 ID:RkLv6vuw.net]
- ところがであってるよ
つまりにすると意味がとぶ
- 863 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 22:44:12.82 ID:HkRU0Alf.net]
- >>851
『クラスが仮想関数を保つ場合、デストラクタを仮想にせよ』 →デストラクターを仮想にするかはクラスが仮想関数を持つかで判断せよ →そのルールに従うと、仮想関数を持たないクラスはデストラクターを仮想にしないことになる どう考えても自然な繋がりなのだが
- 864 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 23:58:58.30 ID:JQjk+2hP.net]
- >>850
そんな規格を無視したうんこコンパイラーは早く捨てた方がいい
- 865 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 04:57:30.96 ID:IoI82vF0.net]
- >>853
効率厨だから うまいこと勝手にやってくれるのがお好みならそういう言語使えばいい
- 866 名前:デフォルトの名無しさん [2015/08/24(月) 11:50:51.90 ID:1RhzDVi9.net]
- >>853
自動的に上手い事やってもらっても請求書は回ってくるんだよ お値段を確認しない殿様商売のための言語ではないってこと
- 867 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 12:03:10.29 ID:v68vlkfs.net]
- >>847
「ポリモーフィズムやったとき」だの「おもむろにポリモーフィズムしようとした場合」だの、感覚的で不明瞭な議論はよろしくない。
- 868 名前:デフォルトの名無しさん [2015/08/24(月) 15:40:34.39 ID:1RhzDVi9.net]
- template <typename T>
void try_delete(T* ptr) { if(std::has_virtual_destructor<T>::value) delete ptr; else throw std::logic_error((__FILE__ + std::to_string(__LINE__) + typeid(T).name()).c_str()); }
- 869 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 15:48:56.90 ID:Z3r2pcb6.net]
- >>853
車検の時自分で手続きをすれば車検屋に代行させる時より安くできます しかし、いちいち手続きに行くのは手間がかかります この言語を使うのに適した人はこの手間を惜しまない人です なお、それによりいかなるトラブルや実質的な無駄が生じたとしても 一切の責任は自分にありますのであしからず
- 870 名前:デフォルトの名無しさん [2015/08/24(月) 20:32:14.69 ID:I3jEHQOy.net]
- float型やdouble型と同じサイズの整数型を取得する方法を教えて下さい
type<float>::value_type hoge = 0xffffffff; type<double>::value_type hoge = 0xffffffffffffffff; みたいな
- 871 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 21:02:39.87 ID:XuY4b73w.net]
- >>862
signedとunsignedがあるわけだが
- 872 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:16:11.35 ID:JrXODGxo.net]
- 独習C++(参考書)の演習の質問なんですけど、いいですか?
- 873 名前:デフォルトの名無しさん [2015/08/24(月) 22:21:11.78 ID:tqErFzDo.net]
- >>863
浮動小数点は全て符号付きだね 浮動小数点を符号なしに写像する必要性でも普遍的な問題としてあるならともかく
- 874 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:32:06.62 ID:Ix1J5gUn.net]
- >>862
やっつけで作った ideone.com/PZAcuP
- 875 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:46:10.23 ID:JrXODGxo.net]
- ideone.com/Svrr5J
教科書の共用体の説明のコードなんだが、 このコードが何をしているのか 共用体の存在意義 の二つがわからなくて先に進めないから教えて欲しいです・・・
- 876 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 22:50:06.05 ID:00lt0PIh.net]
- >>865
浮動小数点と同じサイズの整数型を取得したいと言ってる時に 浮動小数点での値を変換後の整数型でも維持すると思っちゃうほどお前はあほなの?
- 877 名前:デフォルトの名無しさん [2015/08/24(月) 22:52:45.16 ID:I3jEHQOy.net]
- >>866
なんとなく方向性は見えました
- 878 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:01:51.71 ID:OjRQ25eS.net]
- >>867
共用体は、メンバ同士が文字通り、同じメモリ領域を共用する >このコードが何をしているのか doubleで初期化した値を、unsigned charで読み取って、ビット列を表示しているだけ キャストしても同じことができる auto p = (unsigned char *)&d; p[i]; これと同じことを共用体のテクニックでやってるだけ >共用体の存在意義 おおよそ、構造体内に排他的なメンバが有る場合に、メモリをケチりつつ、キャストを避ける場合に、使われることが多い
- 879 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:41:27.97 ID:XuY4b73w.net]
- >>865
type<T>::value_type を何らかのテクニックを使って導出しようにも、 たとえばtype<float>::value_type を int にすべきかunsigned int にすべきか 一意に決められないけどどう考えるの? っていう意味だ。
- 880 名前:デフォルトの名無しさん mailto:sage [2015/08/24(月) 23:57:58.01 ID:OjRQ25eS.net]
- でさもー
一体何をしたいのか興味が有るよね floatをintに突っ込んでも、比較演算ぐらいしか出来んし まー突っ込むかどうかは知らんが
- 881 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 02:39:07.09 ID:78QHcoVO.net]
- >>870
ありがとうございます わかりました 共用体は同じメモリを共用するため、double値で読み取った値がchar値でも表示・使用可能 という解釈でよろしいでしょうか?
- 882 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 10:18:24.68 ID:deVB+W3l.net]
- constと非constの両インターフェースを持つクラスにも共用体は
- 883 名前:使えるかな
自分は使わないけど [] - [ここ壊れてます]
- 884 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 10:29:17.74 ID:6WPRpMK4.net]
- MS-DOSの頃は、割り込み使う際のレジスタ値設定や取得で使ってたな。
XウィンドウシステムだとXEvent共用体使って互いのやり取りしているし。
- 885 名前:デフォルトの名無しさん [2015/08/25(火) 12:58:52.53 ID:VbhGZ0/9.net]
- >>862
hoge厨は消えろよ お前知能障害だろ
- 886 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 13:46:34.03 ID:JhzK86b2.net]
- hage()
- 887 名前:デフォルトの名無しさん [2015/08/25(火) 15:20:44.98 ID:qN0CS00N.net]
- >>868
写像で通じないあほさんは何が言いたいんだい? >>871 どっちでもよくね? make_signedとmake_unsignedでどうにでもなるやん
- 888 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 16:53:47.14 ID:bwlYR2I5.net]
- バカは黙ってて
- 889 名前:デフォルトの名無しさん [2015/08/25(火) 18:30:57.92 ID:qN0CS00N.net]
- つまりID:bwlYR2I5は見納めってことか
なんでdelete this;したんだろw
- 890 名前:デフォルトの名無しさん [2015/08/25(火) 20:50:05.91 ID:XTyF6ymz.net]
- #include <iostream>
using namespace std; template<typename T> struct A{ template<char c> static void a(){}; }; template<typename T> template<> inline void A<T>:: a<'a'>(){} int main() { A<int>::a<'a'>(); return 0; } お願いします エラーが直りません
- 891 名前:デフォルトの名無しさん [2015/08/25(火) 20:53:15.30 ID:XTyF6ymz.net]
- 直りました
ありがとうございました
- 892 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:08:49.04 ID:fH+tecmU.net]
- >>878
そりゃどっちでもいいけど、intとlongが同じサイズでも一意になるようにって考えると面倒そうだ。
- 893 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:09:35.25 ID:fH+tecmU.net]
- enable_if で簡単にできるかな?と思ってやってみたけどダメだった。
- 894 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:20:05.41 ID:jNMAhtm9.net]
- >>878
写像を考えるならそれこそ、浮動小数点型が符号ありだから整数型も符号つきに、と 決まるもんじゃないと思うが。
- 895 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:25:51.36 ID:6dsqbHXE.net]
- >>882
お、おう
- 896 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 21:26:09.66 ID:HUvc3tRo.net]
- >>881
いや直らなねーだろそれ どうやったんだ?
- 897 名前:デフォルトの名無しさん [2015/08/25(火) 21:26:19.55 ID:dXA4WVNa.net]
- >>882
どういたしまして
- 898 名前:デフォルトの名無しさん [2015/08/25(火) 22:32:30.49 ID:x/KQ4zM5.net]
- template<>
template<> inline void A<int>:: a<'a'>(){} 直りました ありがとうございました
- 899 名前:デフォルトの名無しさん mailto:sage [2015/08/25(火) 22:54:03.10 ID:HUvc3tRo.net]
- >>889
それだとA<long>::a<'a'>が特殊化されないままだぞ まあ不満が無いならいいけど
- 900 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 18:15:46.41 ID:T7byp7v6.net]
- ちょっと聞きたいんだけど、みんなどうやって勉強してるんだ?
ガリガリ書いてれば詳しくなれるのか、専門書読み漁ってるのか・・・ スレチだったらすまん
- 901 名前:デフォルトの名無しさん [2015/08/26(水) 18:40:48.46 ID:XR0u/yGZ.net]
- 洋書を読みまくるしかない
それ以外に方法は無い
- 902 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:01:49.43 ID:xtEnIajl.net]
- ISOの規格しか呼んだことありません
正しい言語知識は身に付きますが、あまり役には立ちません
- 903 名前:デフォルトの名無しさん [2015/08/26(水) 19:03:25.25 ID:+CCB3yUl.net]
- ガリガリ書くし専門書も読むし他人のコードも読む
- 904 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:03:54.52 ID:41WE1uen.net]
- 1.入門書を買って試す(入門サイトはサボりやすい)
2.サンプルサイトを片っ端から理解するまで試す 3.市販の簡単なソフトを真似て作る 4.古いオープンソースの脆弱性を探す 独学ならこんなんで良いんじゃない?
- 905 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:07:19.95 ID:41WE1uen.net]
- ごめん市販縛りは脳内削除で
- 906 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 19:37:56.60 ID:8NpsUOma.net]
- まず具体的なソフト作成の目標をつくる。
ほしいアプリやツールなど、とにかく自分が使いたいものが良いかな。 実現する為にggりまくる、本を探す。 コピペでも汚くてもいいから作り切る。 作る過程でわからない事や問題が起こるので、その時は本気でとことん勉強する。 最初はこんな感じ。 慣れてくると、より良い方法や便利な機能を模索する事にシフトしていく感じかなー。
- 907 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 20:10:05.30 ID:B+gFkObw.net]
- bitsetでrange based forを使いたいです。
- 908 名前:デフォルトの名無しさん mailto:sage [2015/08/26(水) 21:21:24.32 ID:fdBJ5NPL.net]
- C++4th本は評判いいね
- 909 名前:デフォルトの名無しさん [2015/08/27(木) 09:00:39.94 ID:MQwOwGL7.net]
- 2nd以外、ずっと安心のブランド
- 910 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 12:13:03.20 ID:dowPTGl5.net]
- 簡単なパズルを解くプログラムなんてどおかしら?
- 911 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 13:11:45.12 ID:R1PXfvA4.net]
- ぷろぐらむを使わずにどうやったら現できるかをひたすら考えるのが一番大事
- 912 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 14:05:04.45 ID:oVACUZkQ.net]
- 自分は仕事でとあるOSSに関わったのがC++をガチで勉強するきっかけだった
ただの趣味や自己研鑽でやるのは自分には荷が重すぎたw
- 913 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:01:28.37 ID:PWCfSW2r.net]
- それやらないと金くれないってんならそりゃあやるだろうな
逆に別にやらなくてもいいならやる人は少ない 人間そんなもん
- 914 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:23:58.32 ID:dowPTGl5.net]
- C++は難しいから好きみたいなw
- 915 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 21:56:14.29 ID:oVACUZkQ.net]
- >>904
まぁね 今では嬉々としてc++本を買い漁ってるから、機会をくれた仕事に感謝だわ 最初の山場を超えれば世界が開けて楽しくなるんだけど、そこに行くまでがね
- 916 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:25:05.87 ID:/f0HtdnV.net]
- c++の最初の山場って何?
世界が開けるって何?
- 917 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:29:59.58 ID:58eRNtwY.net]
- virtualがCの関数ポインタで実装できると気づいた時
- 918 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:35:38.99 ID:/F/l5AUe.net]
- >>908
それC知ってれはすぐ解るよね
- 919 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:41:22.29 ID:dowPTGl5.net]
- 結局 クラスを作って使ってプログラミングをして行く事に気付いたってとこかな。
そのクラスの設計と実装の形と流れが見えた時みたいな。 あまり難しい事やろうとするとハゲるので気を付けてます。 ん 脳がウニになるんだっけ?
- 920 名前:デフォルトの名無しさん [2015/08/27(木) 22:42:33.50 ID:syh25Qiw.net]
- C++を一生懸命勉強しても意味ないと気がついた時
- 921 名前:デフォルトの名無しさん [2015/08/27(木) 22:43:54.41 ID:1aXFvZlX.net]
- C++上でJavaと同じことが出来るようになったとき
- 922 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 22:50:15.71 ID:Tu/gvc/8.net]
- 他の言語の方がC++を使うより圧倒的に簡単に実装できてしまうのに気付いたとき
- 923 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 23:08:58.91 ID:AjywBnNd.net]
- Eigenを使いたくて15年ぶりくらいにc++に触ってます。
といってもswiftをグルーコードにして、インターフェース部分をobjective c++で書いているんですが。 正直何がなんだか分からない状態で使っています。 XCTTestが使えるので検証コード書きながらやってるんですが、 どうせなら純粋なc++コードにして他の環境でも使えるようにしたいと 欲が出て来ました。 swiftとかobjective-cとの差分みたいな形でc++の最新仕様がわかる資料ってありませんか?
- 924 名前:デフォルトの名無しさん mailto:sage [2015/08/27(木) 23:46:06.44 ID:oqQcnINP.net]
- JavaはJ2CというツールでC++に変換できる。C++でできることはJavaでもできる。
JavaはC++よりも安全でクロスプラットフォーム。 以上の論点からJavaを選ばないでC++を選んだ地点で敗北決定。それではさよーなら。
- 925 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 00:02:12.62 ID:mMYa0hvl.net]
- EigenってLAPACKより優れてるとこあるの?
- 926 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 00:34:25.90 ID:63U9kYe8.net]
- >>915
一行目の論理がおかしくないか
- 927 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 01:10:52.80 ID:A+JHoXIT.net]
- JavaはJ2CというツールでC++に変換できる。JavaでできることはC++でもできる。
- 928 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 01:12:21.97 ID:wpTXwtIN.net]
- >>915
- 929 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 01:22:19.92 ID:a+CTalcE.net]
- 逆ならまあ同意するかは置いといて言わんとしてること解るけど
- 930 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 02:08:15.73 ID:HduK2qso.net]
- オイラはboostとか使い始めてからすげぇ楽しくなった
- 931 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 02:25:28.96 ID:pUxJGj7r.net]
- boost使うとビルドで警告が沢山出ないか?w3かw4の設定の場合に。
- 932 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 03:12:59.90 ID:P24Er3Kn.net]
- Javaよく知らんけどC++のようなメタプログラミングできるの?
- 933 名前:デフォルトの名無しさん [2015/08/28(金) 03:38:13.03 ID:uCcB2afg.net]
- 詳しくはないが、そもそもC/C++は設計思想からして、メタプログラミングには不向きで
性能が落ちないギリギリの線で無理やりメタプログラミングなどの機能を追加していってるとおもうんだが。 Javaとか動的言語とか比較的新規の言語のほうが向いてるはず。こんなのあったけど。 [Groovy、Grails]メタプログラミング - Qiita qiita.com/saba1024/items/531c620e1462a4a3b344 私がScalaを選んだ理由 (1/4):CodeZine(コードジン) codezine.jp/article/detail/2464
- 934 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 09:15:53.36 ID:63U9kYe8.net]
- boostってコンパイルが遅いのはどうでもいいけど、
実行速度はどうなの?
- 935 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 17:01:56.30 ID:ODiyhaIZ.net]
- そんな大雑把に聞かれても答えられないじゃん
- 936 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 18:43:43.73 ID:WxHFBL7U.net]
- メタプロにハマると IDE で気持よくなれないかも
- 937 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 21:44:19.71 ID:0sa/SPkb.net]
- >>905
正直少しはあるな
- 938 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:11:56.96 ID:k07is2fO.net]
- 普通に使う分には、C++はそんなに難しくないと思うがなぁ
むしろC#の方が難しい、というか、なんか煩雑に感じるぐらい 俺的にC++使う理由は、やっぱ ネーティブコードが吐けて、インラインアセンブラでSSEとか使えて、 C/C++用ライブラリが一杯有る、ところかなぁ ネイティブコードが吐ける言語は、実質C/C++がデファクトなんで、 ハブられる心配が無いというか、 どんなライブラリでも、大体公式にC/C++用が用意してあるんで、 移植する必要が無いし、安心
- 939 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:29:20.31 ID:63U9kYe8.net]
- linux鯖屋としては、シェルで出来る事はそれで流すけど、APIがCなのでやぱC/C++は王様ですよ。
修正とマングリは必要だけど、Cソースをg++でコンパイルすればそのまま使えるしね。
- 940 名前:デフォルトの名無しさん [2015/08/28(金) 22:32:03.03 ID:ipR9oyH6.net]
- >>929
C#はどちらかというとCよりもJavaに近いだろ
- 941 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:36:36.86 ID:xCExyn/V.net]
- >>931
インフラ屋さんがc++つかうのん? 俺の知ってるインフラ屋さんと違う
- 942 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:51:01.27 ID:tV50qkIq.net]
- linux鯖屋ってC++が多いのか?
なんかjavaを使ったもののほうが多いって感じだが
- 943 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:53:14.52 ID:8YxskuwN.net]
- 鯖屋はプログラミングなんてドカタ仕事はしません
- 944 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:53:24.73 ID:pUxJGj7r.net]
- vc++使うひとはUnicode設定にして
wchar_t wstring L"文字列" MessageBoxW()などW関数 を使うのか?
- 945 名前:デフォルトの名無しさん mailto:sage [2015/08/28(金) 22:55:11.41 ID:bBNOiFa3.net]
- >>934
せいぜいWordPressを設置したりだよね。
- 946 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:14:12.12 ID:vFUHBOp8.net]
- >>934
シェルスクリプトぐらい組むでしょ
- 947 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:30:56.15 ID:3TP8HIZh.net]
- >>912
ソースコードを書いている人が、 読みやすく書いているとは限らないから、 基本的にソースコードは読めないもの 誰でも言っていることだが、 ソースコードを書くよりも、読む方が数倍難しい だから仕様書で、図解して議論する。 仕様書で議論しないと、膨大な時間をムダにする A(){ aa(){} } B() C() また読むときは、A,B,Cの説明を読むだけで、 aa()のような中を追いかけては見ない これをブラックボックステストと言って、中を見ない。 入出力さえあっていればよろしい 入出力が間違っていれば、そこで初めてaa()の中を見る。 このように、エラーが無い場合には、 中を見ない・追いかけない。つまり飛ばす
- 948 名前:937 mailto:sage [2015/08/29(土) 00:34:42.00 ID:3TP8HIZh.net]
- >938
誤爆
- 949 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:36:04.15 ID:haT66cVy.net]
- >>938
> ソースコードを書いている人が、 > 読みやすく書いているとは限らないから、 > 基本的にソースコードは読めないもの それってコードに問題がある場合 どうするの? 脆弱性があっても 読めないんでしょう?
- 950 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:45:20.64 ID:T5cLaa3h.net]
- もう条件反射で突っかかってるよなw
- 951 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:47:56.90 ID:haT66cVy.net]
- そこにネタがあるからな
- 952 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:53:16.47 ID:1aUf6etT.net]
- C++だからこそ実現できたって言えるようなアプリケーションって世の中にどれくらいあるでしょうか?
今はほぼ趣味でやってるけど、そういうの知れたらやる気が高まります
- 953 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 00:57:10.98 ID:g5UyIGYz.net]
- 各種OSがそうです
ほぼCかC++かアセンブリで出来ています
- 954 名前:デフォルトの名無しさん [2015/08/29(土) 00:57:39.17 ID:nNggqP3N.net]
- リッチなゲームなんかはC++じゃないと処理速度が出なかったりする
- 955 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 01:27:14.84 ID:Rh77Dwzm.net]
- そんなんなら言語云々じゃなくて ぷろぐらむとはなんぞや から学ぶべき
- 956 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 01:36:22.28 ID:NAM/3beS.net]
- UE4触ってたらc++触りたくなるかな。
日本だとやっぱりコンソールゲーム作ってる人がc/c++を使っているイメージ 最近死んだ任天堂の社長とかはc/c++使ってたのかな
- 957 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:29:51.93 ID:1aUf6etT.net]
- >>944
OSってC++でこってこてなテンプレートメタプログラミングを駆使したりはしないですよね? やはりゲームなのかな
- 958 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:34:03.64 ID:g5UyIGYz.net]
- テンプレートコテコテではないですが、
Windowsには沢山のC++コードが含まれている、たぶん、COMとかも
- 959 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 03:21:26.19 ID:zEqMSaU0.net]
- C/C++でなければならなかった物は多いけれども
テンプレートを駆使しなければできなかったものなんて存在しない
- 960 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 08:35:02.00 ID:NAM/3beS.net]
- 設計にこだわりはじめるとメタプログラミングがあった方がらくできることが多い。
Goはメタプログラミングに弱いから作ってもツール止まりで中規模以上のコードが書きたくない。
- 961 名前:デフォルトの名無しさん [2015/08/29(土) 11:54:40.37 ID:nNggqP3N.net]
- intmax_t型ってC++11から導入されたんですか?
- 962 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 12:51:19.50 ID:HLdP7G1m.net]
- yes
- 963 名前:デフォルトの名無しさん [2015/08/29(土) 20:53:02.11 ID:KZHxi9qE.net]
- 動的な型宣言もどきの、静的な型宣言にすぎないものだからね
- 964 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 21:47:02.43 ID:nQZgpkK3.net]
- class CResourceImageManager {
public: static RESOURCE_IMAGE* GetResource(int resourceNumber); static void Release(int resourceNumber); static void ReleaseAll(void); private: CResourceImageManager() {}; static std::map<int, RESOURCE_IMAGE*> m_resources; }; 画像のリソースを管理するクラスを作ろうと思って上記のようにしました このクラスはリソースのポインタに番号を付けて所有していますが リソースの確保と開放は別のクラスに分けて行った方が良いでしょうか?
- 965 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 21:58:05.64 ID:cH+1CeIL.net]
- リソースマネージャーという名前のクラスからリソースの解放処理を追い出すとな
- 966 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 22:01:47.18 ID:Pa3SXzfv.net]
- >>955
質問と関係ないけどなんでintなん?整数にしたら何か良いことあんの?
- 967 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 22:10:21.13 ID:P+7GNFUS.net]
- むしろintのどこに違和感を覚えたのか
- 968 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 22:30:14.32 ID:Pa3SXzfv.net]
- >>958
リソースはファイルから読み込むだろ?ファイル名は文字列だろ? ファイルに対してユニークになるよう整数を割り当ててまでintにする意味は?
- 969 名前:デフォルトの名無しさん [2015/08/30(日) 22:33:37.96 ID:U1akemkg.net]
- リソースに対してユニークなIDを振ったヘッダを吐き出すパターンも多いだろ
- 970 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:01:15.78 ID:AMlzbaWO.net]
- private:
CResourceImageManager() {}; ↑のほうが違和感、これ、コンストラクタどう呼ばれるん?
- 971 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:06:09.45 ID:AMlzbaWO.net]
- >>961
でfatal error吐かないとそのコンパイラは使えないよ
- 972 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:11:58.65 ID:qwg10Zcl.net]
- お前は何を言っているんだ?
端からインスタンス作るつもりないだろ。これ
- 973 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:16:43.90 ID:9cBHMzmD.net]
- >>957
整数の方が文字列より比較が早いんじゃね
- 974 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:17:49.92 ID:AMlzbaWO.net]
- インスタンス禁止は、結局、面倒だし
シングルトンとか、忘れたなぁ 結局、つまり静的に1個、持たせるんじゃなかったっけ? おひとり様プログラムには要らないものだった気がする
- 975 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:21:30.07 ID:AMlzbaWO.net]
- おひとり様プログラムにシングルトンって
ものすごく無駄なオーバースペックでゲンナリしたんだよ
- 976 名前:デフォルトの名無しさん [2015/08/30(日) 23:27:03.91 ID:eLi9SMSd.net]
- >>963
CResourceImageManager() = delete; でもないんだよね、これ。 そんくらい嫁って気持ちは俺も同感だが、 なぜあえて? という一抹の疑問が残る。
- 977 名前:NAS6 ◆n3AmnVhjwc [2015/08/30(日) 23:40:28.88 ID:AMlzbaWO.net]
- static hoge g_inst;
で大体、十分で、シングルトンまで使う必要がないんだよね そこまでやってるとミカン星人になっちゃう
- 978 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:47:49.92 ID:3qQgE1+2.net]
- >>955
既存のスマートポインタで使えるように、特に理由が無い限りはふつうに delete できるようにしといてほしい。
- 979 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 23:57:36.66 ID:5WlSK8Ue.net]
- シングルトンは甘え、
>>961 ていうか>>955のは見えてる限り全メソッドstaticなので、 実はCResourceImageManager::Release(i)みたいな呼び出し方しかしない (インスタンス非生成)なつもりだったりして…
- 980 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 00:45:55.59 ID:zbEcK4vV.net]
- ttp://nas6.main.jp/secret/ContainerPtr.htm
おらが作ったコンテナポインタとツリーコレクション コンテナポインタを試しにCLIにしてみたけど 演算子オーバーロードが使いにくくなるし ジェネリックはアドレス演算子ができないからなー どうしようかと普通の関数にしたらショボーン
- 981 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 00:50:36.90 ID:zbEcK4vV.net]
- メモリ管理でC++なら>>971のリンクが使えるかと思うよ
- 982 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 01:09:10.32 ID:zbEcK4vV.net]
- と思ったらツリーコレクションのほうは
複数作ったら1個しか破棄されてないな むー
- 983 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 01:20:22.49 ID:zbEcK4vV.net]
- ツリーコレクションを修正した
- 984 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 01:21:59.60 ID:5EC/KDqw.net]
- void method()throw()
にすると例外吐かないんですよね? 例外吐かないって実際どういうことなんですか? 関数内でthrowを使っているAPIを呼び出しても自動でcatchするってことですか?
- 985 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 01:22:04.44 ID:4zTsoFnu.net]
- シングルトンじゃなくてモノステートじゃ
- 986 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 02:43:57.87 ID:zbEcK4vV.net]
- モノステートは、static boolなクラスメンバで挟み撃ちにすればなんとなくできる
その場合で、>>973で失敗したけど、 複数オブジェクトの時、1個のみで1個に1回じゃない それだけじゃあ、単純過ぎるセマフォだけどね
- 987 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 02:47:11.82 ID:zbEcK4vV.net]
- 1個づつに1回づつじゃない
- 988 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 02:57:50.88 ID:zbEcK4vV.net]
- 複数オブジェクトの時、1個づつに1回づつのセマフォを簡単に作れないかな?
ttp://nas6.main.jp/NAS6_tree_clct.h のvirtual bool isDestructing();で一応できたんだけど マルチスレッドとかになるとtmpファイル作って お互いに参照しあいじゃないとダメかな
- 989 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 03:20:31.93 ID:zbEcK4vV.net]
- void lock(string fname){
ofstream fout; fout.open(fname.c_str(),ios::out|ios::trunc); if(!fout) return; fout<<1; fout.close(); } void unlock(string fname){ ofstream fout; fout.open(fname.c_str(),ios::out|ios::trunc); if(!fout) return; fout<<0; fout.close(); } bool islock(string fname){ char ch; ifstream fin; fin.open(fname.c_str(),ios::in); if(!fin) return false; fin.get(ch); fin.close(); return ch; } マルチスレッドの場合こんな感じで良かったっけな・・・
- 990 名前:NAS6 ◆n3AmnVhjwc [2015/08/31(月) 03:39:06.54 ID:zbEcK4vV.net]
- コンパイラ通してないから知らんけどios::binaryがなきゃダメか
- 991 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 05:13:34.46 ID:aG7+P1+O.net]
- >>975
throwがその関数外に出そうになったときに自動でstd::unexpectedが呼ばれます。 デフォルトの挙動では std::unexpected std::terminate std::abort と呼ばれるのでプログラムはそこで終了します
- 992 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 08:16:24.52 ID:SWBaMMdR.net]
- >>975
例外を止める機能じゃないよ 例外は吐きませんって言う意思表明
- 993 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 08:21:40.49 ID:y4ZEqKRh.net]
- 例外を止める機能なのかどうかは訊いていない。
例外がスローされうるのかを聞いている。 日本語も読めない低能は去れ。
- 994 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 08:21:47.23 ID:UOSubx+k.net]
- 例外送出権を放棄しそれに伴う無駄な処理を削減
- 995 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 09:36:51.17 ID:dlg5gx9C.net]
- 次スレお願い
- 996 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:12:53.08 ID:4UR705Ml.net]
- >>955 のコードは、リソースに整数値を
- 997 名前:値なのにmapにする意味は何ですか?
vectorではダメなんですか? 割り当てる整数値が、無茶苦茶大きくなる事があって、メモリ効率が悪いってことですか? でも、はじめから、そんな大きな整数値を、割り当てないようにすれば良いだけでは? それとも、ポインタを整数値にキャストしたものを、値として使っているってことですか? それなら始めからポインタを使えばよいのでは? [] - [ここ壊れてます]
- 998 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:31:07.85 ID:uuYY3mX1.net]
- 普通に考えれば、解放される順序が固定的じゃないからだろ
- 999 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:40:13.09 ID:4UR705Ml.net]
- 開放される順が固定じゃないのは普通ですが、
それでなんでmapにする必要があるんですか?
- 1000 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:51:16.53 ID:jP9ITZzN.net]
- お前の知ったことじゃない
- 1001 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 11:56:51.24 ID:uuYY3mX1.net]
- インデクスで管理されてるから途中のが解放されても並び替えできないのは自明
歯抜けを解消するには確保する前に空場所を探す手間を入れる必要が出てくる で、なんやかんやあるから、だったら最初からmapでいい
- 1002 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 12:00:24.33 ID:LIRnTqik.net]
- 離散値になりうるのにvectorにする意味は何ですか?
mapではダメなんですか? 割り当てる領域が、大量アクセスされる事があって、実行効率が悪いってことですか? でも、はじめから、そんな頻度のアクセスを、行わないようにすれば良いだけでは? それとも、割り当てたものを、開放しないってことですか? それなら始めから定数値を使えばよいのでは?
- 1003 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 12:06:22.68 ID:4UR705Ml.net]
- >歯抜けを解消するには確保する前に空場所を探す手間を入れる必要が出てくる
べつに、したらいいじゃないですか 手間が、実行時間の意味でしたら、フリーリストを用意すればよいですし、 そこのコストがあったとしても、配列の方が数値→ポインタの変換が速いのは明白ですし 手間が、コーディングの意味でしたら、そもそも、整数値に置き換えずポインタでいいですし
- 1004 名前:デフォルトの名無しさん [2015/08/31(月) 12:20:08.13 ID:bNeWtd/x.net]
- リソースナンバーはインデックスとは限らなくね
- 1005 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 12:47:49.24 ID:LIRnTqik.net]
- >>993
1. ポインタの取得なので速度に拘る意味が全くない 2. 整数IDを自分が好きに設定できるとは限らない 3. 自分で管理する際のコードの複雑化、コスト、バグを考えていない スパゲッティを作るのは調理場だけにしておけ
- 1006 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 13:03:45.70 ID:4UR705Ml.net]
- 特に、
>2. 整数IDを自分が好きに設定できるとは限らない これが意味わからないですね 他人がIDを設定して、自分でIDを好きに設定できない状況なら、 他人がID→ポインタの変換を実装すべきで、 自分でID→ポインタのマップを持つ意味は? 通常、ID→ポインタの変換テーブルを持っている人が、 IDを割り振るのでは?
- 1007 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 13:04:55.71 ID:4UR705Ml.net]
- >1. ポインタの取得なので速度に拘る意味が全くない
これも良く分からないですね
- 1008 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 13:05:10.05 ID:IAsev/aT.net]
- 冷静に慎重に
- 1009 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 14:13:50.22 ID:LIRnTqik.net]
- >>996
速度がいるのはポインタの取得でなく、ポインタからのデータ取得 IDは作るのが非プログラマの場合、ツールの場合、既存のものの場合、 または今後そう変更する場合もある そういう拘りは、速度が要件になってから固執しろ
- 1010 名前:デフォルトの名無しさん [2015/08/31(月) 17:15:14.78 ID:w0l476Lg.net]
- 固執しなくても、何となく気になるのは、大事な資質だ
「富豪的プログラミング」を洗脳的に刷り込まれたやつが書くコードが 世の中をどんなに減速しているか、わかってからでは遅いしね
- 1011 名前:デフォルトの名無しさん mailto:sage [2015/08/31(月) 17:20:24.18 ID:l/+TTZEK.net]
- お遊びはそこまでだ
- 1012 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
- 1013 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|