■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
C++相談室 part47
751
名前:
デフォルトの名無しさん
:2006/03/10(金) 06:58:49
演算子のオーバーロードはインライン的に高速ですか?
これも、クラス宣言に書いたり、inlineとかつけるとか?
752
名前:
デフォルトの名無しさん
:2006/03/10(金) 07:34:05
気になる「的」の用法だな
753
名前:
デフォルトの名無しさん
:2006/03/10(金) 08:28:33
代入演算子のオーバーロードをフレンド演算子関数で実装できないのは何故ですか?
754
名前:
デフォルトの名無しさん
:2006/03/10(金) 08:36:39
>>751
普通の関数と全く同じように考えればよい。
インラインに書けばインライン展開されるだろうし、そうでなければ関数呼び出しになるだろうし。
755
名前:
デフォルトの名無しさん
:2006/03/10(金) 08:43:45
>>754
あり^^
756
名前:
デフォルトの名無しさん
:2006/03/10(金) 15:50:50
>>753
する必要がないから。あれメンバ関数よ?
加算演算子とかをfriendにするのは、
メンバ関数じゃないけど中身直接いじれると便利だから。
757
名前:
デフォルトの名無しさん
:2006/03/10(金) 23:11:09
>>753
その問いに対する答えはただ1つ: 規格で禁止されているから
「なぜ禁止しているのか」なら、これは想像だが
struct X { }; つまり operator = が宣言されていないクラスに対して、
const X& X::operator = (const X&); が翻訳環境によって追加され、
そこへ随伴宣言があると例えば vtable の生成則がおかしくなったりしそうだろ
758
名前:
デフォルトの名無しさん
:2006/03/10(金) 23:35:46
左辺に組み込み型を持ってこられると困るからでは?
もしフレンド関数でオーバーロードを許すなら、他のoperatorとシンタックスを合わせないといけないだろうし
759
名前:
デフォルトの名無しさん
:2006/03/11(土) 00:47:02
D&Eにはoperator =が非メンバで定義されると、
場所によってコピーの方法が変わると言うまずい状況になるから
メンバとしてしか定義できないようにしたと書いてある。
ただしfriendまでは言及されていないが。
struct Hoge {/* 〜 */};
Hoge x, y;
x = y; //デフォルトのコピー
Hoge& operator =(Hoge&, const Hoge&) {/* 〜 */}
Hoge z;
z = x; //さっきのoperator =()
760
名前:
デフォルトの名無しさん
:2006/03/11(土) 01:28:37
>>759
757 だが・・・
あんたの勝ち
761
名前:
デフォルトの名無しさん
:2006/03/11(土) 09:02:05
これもC++の歪みってやつか
762
名前:
デフォルトの名無しさん
:2006/03/11(土) 19:39:46
コンストラクタAで他のオブジェクトBをnewしているとします。
しかし、そこでメモリが足りなかったとします。
Aがnewで作成されている場合にポインタにNULLを返したいのですが、どうすればいいのでしょうか?
#include <stdio.h>
class B{};
class A
{
public:
A()
{
B *m_pB = new B;
if (m_pB == NULL)
{
//ここでA()にNULLを返させたい。
}
}
private:
m_pB;
};
void main()
{
A *pA = new A;
if (pA == NULL)
printf("NO MEMORY\n");
}
763
名前:
デフォルトの名無しさん
:2006/03/11(土) 19:54:04
>>762
コンストラクタじゃ無理。newをオーバーロード汁
764
名前:
デフォルトの名無しさん
:2006/03/11(土) 19:55:06
すみません、教えてください
class を使ってるということは C++ なんだと思うんですけど
iostream じゃなくて stdio を使う意味を教えてください。
765
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:00:03
>>764
printfとかが使いたいから。
766
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:10:29
scanf を愛しているから
767
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:13:10
>>764
iostreamはでかいんだよ。
それを静的リンクするとフロッピーディスクに入らなくなる。
動的リンクするとDLLが無いとサポートに電話がかかってくるんだよ。
768
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:19:06
>>762
標準に準拠したコンパイラでは通常newはNULLを返さない。例外を投げてくる。
例外を投げないようにするのにはnew(nothrow) B;などと書く。
挙げている例の場合、普通は例外を使うか、正常に構築出来なかった事をメンバ関数で伝えるか、何らかの生成用関数を挟む事などが考えられる。
769
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:33:57
ふと疑問
newがメモリ不足で失敗した場合に、printf()とかが
まともに動く保障はあるの??
770
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:40:11
そろそろprintfの呪縛から解放されないか?
printfは、諸悪の根源。
771
名前:
デフォルトの名無しさん
:2006/03/11(土) 20:56:07
>>769
聞いたことねえな
printf が内部で new を使うはずがなさそうだし、まして仕様でなどありえない
仮に malloc を使っていても new と同じ系統のサブプールを使う可能性はあっても保証はできっこない
operator new がユーザ定義される場合があるのだから
772
名前:
デフォルトの名無しさん
:2006/03/11(土) 21:55:53
>>770
じゃあ、boost::formatの時代だな。
773
名前:
デフォルトの名無しさん
:2006/03/11(土) 22:53:05
ポインタを返す関数の作り方がわかりません。
ソースはこんな感じです。
typedef struct
int a;
int b;
} WORK;
WORK* クラス名::GetWork()
{
}
ポインタの戻り値の設定ってこれでもおかしくないですよね。
774
名前:
デフォルトの名無しさん
:2006/03/11(土) 22:55:36
もう春休みなのか?
775
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:00:00
>>773
こんなことやって悩んでいる予感。
WORK* クラス名::GetWork()
{
WORK w;
return &w;
}
776
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:21:38
違います。クラス内のパブリック変数のポインタを返してます
777
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:23:43
error: 2: unexpected type identifier `int'.
778
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:24:00
class hoge{
WORK w;
WORK& get_w(){ return w;}
};
こうじゃダメなんか?
779
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:25:22
class hoge{
WORK oma_www;
WORK& cho_ww(){ return oma_www;}
};
780
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:27:12
>>776
ソースコード省略せずに全部挙げろ
781
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:44:28
公開メンバ変数ってだけでもあれだが、それを指すポインタを返すメンバ関数って、
直接ポインタとるんじゃだめなのか?
782
名前:
デフォルトの名無しさん
:2006/03/11(土) 23:44:59
構造体の宣言をクラスの外に出したらエラーがなくなりました。
なんででしょうか?
783
名前:
デフォルトの名無しさん
:2006/03/12(日) 00:34:07
そういうことは先言えよ
エラーメッセージ100回読んどけ
784
名前:
デフォルトの名無しさん
:2006/03/12(日) 00:34:16
>>782
>>780
助けたいのは山々だけど、謎が多過ぎる
785
名前:
デフォルトの名無しさん
:2006/03/12(日) 01:08:54
class C {
struct S {...};
S* func();
};
C::S* C::func(){}
C::が抜けてると見た。
786
名前:
デフォルトの名無しさん
:2006/03/12(日) 01:19:19
なるほど・・内部クラスを使っていたのか
787
名前:
デフォルトの名無しさん
:2006/03/12(日) 02:01:07
785さん、ありがとうございました。
ちなみに内部構造体を使ってました。
788
名前:
デフォルトの名無しさん
:2006/03/12(日) 02:02:21
関数の中に関数宣言したいんだけど。
789
名前:
デフォルトの名無しさん
:2006/03/12(日) 02:08:06
>>788
しろ。心ゆくまで。
790
名前:
デフォルトの名無しさん
:2006/03/12(日) 02:08:27
>>788
関数の中で、クラスを定義できたりする。
int main()
{
791
名前:
デフォルトの名無しさん
:2006/03/12(日) 02:08:47
>>788
void f() {
struct local {
static void g() { }
};
local::g();
}
792
名前:
デフォルトの名無しさん
:2006/03/12(日) 02:09:10
int main()
{
struct hoge{
static func() {}
} ;
hoge::func() ;
}
793
名前:
デフォルトの名無しさん
:2006/03/12(日) 03:24:27
前方参照2題
(1)typedef を前方参照する裏技って無いですか?
----hoge,h
class Hoge;
class ZZ {
Hoge<int> *hoge;
};
----hoge,cpp
typedef HogeHoge Hoge ;
まともにやるとコンパイル不可
(2)テンプレートクラスの前方参照は出来ない??
794
名前:
デフォルトの名無しさん
:2006/03/12(日) 03:39:40
間違えた orz
× Hoge<int> *hoge;
○ Hoge *hoge;
795
名前:
デフォルトの名無しさん
:2006/03/12(日) 08:24:57
>>793
HogeHogeがこうだとすると、
template <typename T>
class HogeHoge
{
/* 〜 */
};
HogeHogeの前方宣言はこうなる。
template <typename T>
class HogeHoge;
そしてクラステンプレートをテンプレート引数の指定なしにtypedefすることはできない。
typedef HogeHoge<int> HHInt;のようなことはできるけど、
typedef HogeHoge Hoge;は今のC++ではできない。
796
名前:
デフォルトの名無しさん
:2006/03/12(日) 08:40:02
つ マクロ
797
名前:
デフォルトの名無しさん
:2006/03/12(日) 09:05:31
>>795
それぐらい理解済みだと思うぞ
798
名前:
デフォルトの名無しさん
:2006/03/12(日) 13:05:47
テンプレートのtypedefができないのはちと悲しいよね
799
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:04:03
次のような名前空間があるとします。
namespace abcdefg
{
int result1();
int result2();
int result3();
};
もしもプログラム中どこからも int result3(); を呼び出しても参照してもいないとします。
この時実行ファイルに int result3(); の部分は組み込まれるのでしょうか?
800
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:11:09
コンパイラ、リンカの実装しだい。
801
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:13:00
>>799
それは名前空間とかには全く関係ない。
result1() と result()3 が同じ名前空間で宣言されていることと
result3() のコードがリンクされるかどうかは全く無関係
「result3() の部分が組み込まれるか?」というのはリンク対象
になるか?ということだと思うが、そりゃ result3() の定義を
含むオブジェクトファイルをリンカに食わせればたとえ全く
呼び出されていなくても無駄にリンクされるし、
当該オブジェクトファイルを静的ライブラリ化していたとして、
result1() の定義と result3() の定義が同じオブジェクトであれば
一緒にリンクされる。リンカの扱う単位はオブジェクトファイル単位だから。
802
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:13:22
組み込むだろ。
関すコールは直接呼ぶだけじゃなく、関数ポインタを使って間接的に
呼び出すこともあるんだから、そこまで追跡するのは無理だべ。
コールバック関数を外部モジュールへ登録するなんて場合もあるわけだし。
803
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:14:03
でもどこからも呼び出されていないエントリポイントが
あるときには警告してくれるリンカもある。
804
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:17:21
>>801-802
コンパイラ、リンカの実装しだい。
805
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:18:37
コンパイラ、リンカの気分次第
806
名前:
799
:2006/03/12(日) 15:19:07
皆さんていねいにありがとうございます。
異なるアプリケーションで使えそうな関数を独自のライブラリとし、
複数のアプリケーションでプロジェクトに追加できるような形に
した場合、この独自ライブラリの規模が膨らむほど実行ファイルの
サイズはデカくなっていくと考えていいんですね?
807
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:19:56
>>802
それって参照したことになるんじゃない?
result3の識別子を使わずに確実に関数ポインタ得るのは無理だろうし。
808
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:21:36
>>806
静的リンクしてたら基本的にそうなるだろうな。
ただ、コンパイラ、リンカの実装によってはそうならない可能性もあるし、
特定の実装をターゲットにすれば回避策もいくらかはあるだろう。
809
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:22:50
一般的には、同じオブジェクトファイルに含まれるもの(不使用の関数/変数等)は
全て実行ファイルにリンクされるが
リンカによっては、それらを判断してリンクするときに除外するものもある。
つまり
>>804
。
「一般的なリンカ」なら、
>>801-802
。
810
名前:
799
:2006/03/12(日) 15:24:16
>>809
Borland C++ Builder 6 ではどうでしょうか?
811
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:24:50
>>806
違う。
そりゃ、細かいこと言えばコンパイラ、リンカの実装次第としか
言いようがないので一般論でしか書けないけど。
静的ライブラリを作成するなら各関数ごとに異なるファイルに
定義を書くといい。100個のある関数を100個の *.cpp に書いて
コンパイルしてできた100個の *.o から libhoge.a を作って置けば、
リンクしなけりゃならない関数(を含むモジュール)だけ
リンカが取り出してリンクしてくれる。
もし100個ある関数を一つの hoge.cpp に書いてしまえば、
それをコンパイルしてできた hoge.o に100個の関数が
全部含まれているわけで、そのうち一つでもリンク対象に
なってるとリンカは hoge.o 丸ごとリンクする。
って、のがよくあるリンカの振る舞いだと思う。
812
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:31:00
>>810
マップファイルを出力して確認しろ
813
名前:
デフォルトの名無しさん
:2006/03/12(日) 15:41:52
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
アドレスとポインタの差なんて、ちゃんと勉強した奴なら誰でも知ってるよ。
http://pc8.2ch.net/test/read.cgi/prog/1140616676/
814
名前:
デフォルトの名無しさん
:2006/03/12(日) 16:09:21
ポインタとアドレスってちゃうん?
ポインタはアドレスを格納するための変数?
815
名前:
デフォルトの名無しさん
:2006/03/12(日) 16:12:07
ポインタには型情報が付加されている。
あとは、メンバ関数ポインタとか変態じみたもの。
816
名前:
デフォルトの名無しさん
:2006/03/12(日) 16:16:13
ポインタは抽象インターフェース、アドレスは具体的なもの。
817
名前:
デフォルトの名無しさん
:2006/03/12(日) 16:22:47
ポインタでもまだ具体的な実装を意識させすぎてしまう、って事で
イテレーターが生み出されたんだろうな。
818
名前:
デフォルトの名無しさん
:2006/03/12(日) 16:29:00
int var[N]; があったとき添え字 k を var[k] のポインタと呼んでも
一般の意味では間違いじゃあないんだよね。
819
名前:
デフォルトの名無しさん
:2006/03/12(日) 16:59:10
紛らわしから一般の意味で言う場合はボインチャンって呼ぼうぜ
820
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:18:48
>>814
ポインタにアドレスを代入できるが
アドレスにポインタは代入できない
821
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:26:09
あまり関係ないが、「ポインタ」という言葉は
1) (型を持った)アドレス値
2) アドレス値を保持する変数
の2通りの使い方がされる。
厳密には1)なのだが、2)の意味で使われることも多いし、
人によっても使い方が違ったりする。
822
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:32:05
>>821
なにを根拠にそんないいかげんな情報を書き込んでるの?
823
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:34:29
ランダムアクセスできるのがポインタ
コンストなポインタがアドレス
ポインタはPOD型のイテレーター
―― C++厨の解釈 ――
824
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:37:07
C++厨なんて呼び方始めて見た
825
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:38:11
じゃ、C厨++ か?
826
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:38:36
飛び火しててワロス
827
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:43:10
禿中
828
名前:
デフォルトの名無しさん
:2006/03/12(日) 17:44:07
>>827
ハゲいうな!
ビョーン
829
名前:
デフォルトの名無しさん
:2006/03/12(日) 18:00:13
>>822
例えば、
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/malloc.3.html
には、mallocが「ポインタを返す」とあるが、
mallocが返すのはアドレスの「値」であって、「変数」ではないだろ?
まあ、ぐぐってみたら、
「ポインタ」という言葉は「ポインタ変数」の意味で使われるほうが一般的
というのはわかったよ。
830
名前:
デフォルトの名無しさん
:2006/03/12(日) 18:05:27
>>829
値とそれを保持する変数が同じ呼ばれ方をすることがあるのは整数型でも同じ。
ただ、あの流れで「ポインタ」と「アドレス」を混同しているのが気になった。
831
名前:
デフォルトの名無しさん
:2006/03/12(日) 18:06:36
>>829
malloc が返してるのはポインタ.
それを int に評価すると,多くの場合,そのアドレスの値が得られる.
832
名前:
デフォルトの名無しさん
:2006/03/12(日) 18:47:18
翔泳社の「標準講座 C++」では
「ポインタ(pointer)とは、メモリーアドレスを保持する変数のことです。」
って書いてあったよ
833
名前:
デフォルトの名無しさん
:2006/03/12(日) 18:49:22
>>831
「それを int に評価すると,多くの場合,そのアドレスの値が得られる」
多くの場合、ってのがポイントだよな。
834
名前:
デフォルトの名無しさん
:2006/03/12(日) 18:51:49
http://homepage3.nifty.com/mmgames/c_guide/15-04.html
こんなページみつけた
835
名前:
デフォルトの名無しさん
:2006/03/12(日) 19:55:29
質問です。えーマルチです。
(書くスレ間違ったっぽい、はきだめC/C++にかいてしまった)
入力された日付(YYYYMMDD)が正しいかどうかチェックしたいのですが、
チェックする関数が見当たりません。
フォーマットが正しいかどうかなら自分でチェックすればできますが、
カレンダーにない日付もチェックしたいです。(2006/02/30はエラーみたいな)
チェック方法をしっている方おられました教えてやってください。
環境はVCでSDKです。(MFCは使ってはダメ)
836
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:00:48
>>835
http://www.boost.org/doc/html/date_time.html
マルチだってわかってんなら元スレからリンクぐらい貼れ。
837
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:01:28
>>835
方法も何もそのままだろ。
YYYY、MM、DDに切り分けて、
MMが1以上12以下でなければエラー。
DDはMMから最大日数を割り出して、(2月はうるう年も考えて)
1 <= DD <= 最大日数でなければエラー。
んな感じでいいんじゃないの。
838
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:07:20
>>835
おれも
>>837
で十分だと思うが
うるう年の算出方法は有名だし
839
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:08:07
>>837
そっか、スマンうるう年がいまいちわかんなくて、
便利な関数でもあればと思ったんだが、自分でチェックします。
ありがとう。
うるう年についてはここにかいてあったや。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;214019
840
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:08:34
漏れはmktime()とlocaltime()を使うのがいいと思う。
841
名前:
504
:2006/03/12(日) 20:25:04
>>840
1970年〜2038年までしか扱えないっぽい・・。
作ってるアプリが2038年まで使われるとは思えないが、
boost::date_timeとやらか、自作でいこうと思います。
842
名前:
835
:2006/03/12(日) 20:25:53
↑漏れは835です。
843
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:32:34
SystemTmeToFileTimeとか?
この答えはスレ違いだけど。
844
名前:
デフォルトの名無しさん
:2006/03/12(日) 20:50:02
>>843
俺は詳しく知らないがタブンSystemTimeToFileTimeではないか?
845
名前:
デフォルトの名無しさん
:2006/03/12(日) 21:02:01
あんまり細かいことを言うなや兄弟。
846
名前:
デフォルトの名無しさん
:2006/03/13(月) 02:36:25
class sound{
};
class Dsound{
sound foo[2];
};
の様なクラスがあり、soundの読み込みはファイルを指定していました。
またDsoundは、2つの別々のファイルを指定するようになっていました。
このDsoundに1つのステレオ音声ファイルを読み込ませたいのですが、
よい方法はありませんでしょうか?
Dsoundが自前でステレオファイルを読み込むようにすると
sound2つを持っている意味がなくなるので、良い方法ではない気がするのですが。。
847
名前:
デフォルトの名無しさん
:2006/03/13(月) 02:46:02
>>846
Dsound がステレオ音声ファイルを受け取って
sound の読み込むファイルに変換してから渡せばいいんじゃね?
C++ 関係ないな。
848
名前:
デフォルトの名無しさん
:2006/03/13(月) 11:41:04
>>846
1chの音声を取り扱うクラスsoundと
Nchの音声を取り扱うクラスmulti_soundにして
class multi_sound {
std::vector<sound> snd;
};
soundでは1chのみの入出力をサポート、
multi_soundではNchまとめた入出力をサポート
と思ったが、イマイチだな。
入出力は別クラスにして、音声の実データへのアクセスはfunctorを使ったらどうだろう?
849
名前:
デフォルトの名無しさん
:2006/03/13(月) 12:53:19
void f(std::string); //#1
void f(const std::string&); //#2
main() { f("TEST"); }
↑
g++: error
vc7: error
bc5: #1
Borland が ぼけ ってことでいいと思う?
#2 もユーザ定義変換だと俺は思うが、
途中の厳密合致もカウントされるのかな
850
名前:
デフォルトの名無しさん
:2006/03/13(月) 13:16:01
>>849
errorってなんだよ。何の問題もないぞ。
851
名前:
デフォルトの名無しさん
:2006/03/13(月) 14:20:06
それを使いました。843、844たすかったよ。ありがとう。
852
名前:
デフォルトの名無しさん
:2006/03/13(月) 15:25:56
>>850
警告じゃなくエラーね、make が止まるほう
$ g++ a.cpp
a.cpp: In function 'int main()':
a.cpp:8: error: call of overloaded 'f(const char [5])' is ambiguous
a.cpp:3: note: candidates are: void f(std::string)
a.cpp:4: note: void f(const std::string&)
問題ないって、Borland が正解ってこと?
853
名前:
デフォルトの名無しさん
:2006/03/13(月) 15:53:29
>>852
VC++2003でも問題なかったけど
854
名前:
853
:2006/03/13(月) 15:58:51
あ、void f(std::string&);じゃなくてvoid f(std::string)なのね。
855
名前:
デフォルトの名無しさん
:2006/03/14(火) 07:01:24
newしたオブジェクトをdeleteしたのに、
タスクマネージャの該当アプリのメモリ使用量が減りません。
どうゆう事でしょうか?
856
名前:
デフォルトの名無しさん
:2006/03/14(火) 07:19:27
>>855
それは、コンピュータを再起動する必要があります。
857
名前:
デフォルトの名無しさん
:2006/03/14(火) 07:49:43
>>856
リークはないはずです><
858
名前:
デフォルトの名無しさん
:2006/03/14(火) 07:56:15
プログラムがメモリを確保するのとOSがメモリを確保するのは1対1で対応してるわけじゃないよ
OSがある程度まとめて確保してプログラムの要求で小出しする感じ
859
名前:
デフォルトの名無しさん
:2006/03/14(火) 07:58:06
deleteしたメモリを何時OSに返すのか(あるいは返さないのか)は
ライブラリに一任されている。
860
名前:
デフォルトの名無しさん
:2006/03/14(火) 09:53:26
じゃあ心配しないでいいんですね^^
861
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:09:36
>>860
なんでそうなる?
現にタスクマネージャから障害が報告されているんだろ?
そのアプリが意図のとおりに動かなくていいのなら心配する必要もなかろうが
862
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:10:06
現にタスクマネージャから障害が報告されているんだろ?
863
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:18:20
>861
流れ読めよ。
864
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:32:40
>>861
のタスクマネージャは人間のことですか?
865
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:51:12
悪かったよ
866
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:54:24
僕のために喧嘩しないで><
867
名前:
デフォルトの名無しさん
:2006/03/14(火) 11:58:36
タスクマネージャがなにを報告してくれるの?
868
名前:
デフォルトの名無しさん
:2006/03/14(火) 12:09:52
>>867
頭の優劣
869
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:07:13
cppllに投げられてたけど、
ttp://www.tietew.jp/cppll/archive/12614
Lambda関数とクロージャーに関する言語拡張
またぶっ壊れた案を…。(いや、あったら便利だろうけどさ)
そのうちC++言語自体が意識を持つ能動的進化を遂げるシステムとか、それなんてSF?な世界になりそうな悪寒(w
870
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:09:24
finallyの標準化って話はないの?
そこかしこでコンパイラ拡張しまくってるのに
そんなにコストのかかる話なのかね。
871
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:33:12
>>870
キーワードの追加は大きいだろうな。
文法もいじることになりそうだし。
デストラクタがあるから必要性が薄いってのもあるだろう。
872
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:35:21
>デストラクタがあるから必要性が薄いってのもあるだろう。
これはないな
873
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:40:44
lambdaなんてやる暇があったら(ry
874
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:43:35
育毛に勤しめ。
875
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:45:18
exportの実装まだ〜?
876
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:47:08
>>874
うるせー禿
877
名前:
デフォルトの名無しさん
:2006/03/14(火) 13:48:51
>>870
禿がFAQでイラネって言ってるのが障害だったりしてな。
http://www.research.att.com/~bs/bs_faq2.html#finally
まずはこれに反論するのが手始めだろう。
878
名前:
デフォルトの名無しさん
:2006/03/14(火) 14:13:10
http://zaraba.qp.land.to/up/src/1142313029990.jpg
879
名前:
デフォルトの名無しさん
:2006/03/14(火) 14:13:36
グローバル変数int *pをプログラムの最初の方でp = new int [10]として
その後に更に配列を増やしたい時はp = new int [5]とすれば
pには15個の配列はできるのでしょうか?
880
名前:
デフォルトの名無しさん
:2006/03/14(火) 14:15:21
できませんよ。結論のみいいましたが。
881
名前:
879
:2006/03/14(火) 14:20:12
もし他の方法でできるのでしたら教えて下さい。
882
名前:
879
:2006/03/14(火) 14:26:30
検索したら解決しました。
883
名前:
デフォルトの名無しさん
:2006/03/14(火) 15:07:28
>>882
どうやってやったの?
884
名前:
デフォルトの名無しさん
:2006/03/14(火) 16:44:05
vectorかrealloc使ったんじゃないの?
885
名前:
デフォルトの名無しさん
:2006/03/14(火) 17:19:49
>>869
その構文がもうちょっとまともなら嬉しいんだけどな。無理だろうとは思うけど。
886
名前:
デフォルトの名無しさん
:2006/03/14(火) 18:57:01
変態言語のまともな構文など逆説的変態性として排除されてしかるべきであろう。
887
名前:
デフォルトの名無しさん
:2006/03/14(火) 20:56:58
C++がますます、変態、何でもあり、規格に実装が何時までも追いつかない、
そんな言語として発展しつつあって、とてもうれしいです。
888
名前:
デフォルトの名無しさん
:2006/03/14(火) 20:59:56
>>869
"C++ Programming with STL.Lambda(Boost.lambda)"でいいけどな。
889
名前:
デフォルトの名無しさん
:2006/03/14(火) 22:26:43
こぴーこんすとらくた
890
名前:
デフォルトの名無しさん
:2006/03/14(火) 22:27:45
ぴーこ
891
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:15:35
Microsoft Visual C++ 2005 Expressで
C++勉強しようと思い、ブックオフで買った独習C++をみながら
例題見ながら打ったら、いきなりエラーが出た。
で、
http://wisdom.sakura.ne.jp/
みたら、標準のヘッダ宣言は
<iostream.h>じゃなくて、<iostream>なんだね
あとusing namespaceとか。
ただ、VC++6.0だと<iostream.h>で動いたので混乱した。
いつ、標準化されたの?で最近のC#もいずれ標準化されんの?
標準化されたとき、過去の定義された物に拡張された禁止事項が
増えるならわかるけど、ヘッダの宣言みたいなソースそのものを全部
書き直す事になるのって、標準化っていうの?
まぁ、俺の買った独習C++は見ると10年前出版のものだったけど
標準化ってどこの誰がしてんの、教えて。
殴りに行くから
892
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:17:30
【積年の】旦那にしてる密かな仕返し【恨みじゃー】
http://human5.2ch.net/test/read.cgi/ms/1141694640/
8 名前:可愛い奥様[] 投稿日:2006/03/07(火) 11:05:23 ID:8dtluKkp
夫の歯ブラシで洗面所の排水溝掃除。
洗面所をビショビショに汚した罰だ。
20 名前:可愛い奥様[age] 投稿日:2006/03/08(水) 00:40:17 ID:pRrk6A21
前に頭きた時あって
1度だけ歯ブラシで肛門カキカキしちゃった
22 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:27:12 ID:gU5mHc7J
よかった。どこのお宅も同じようなことしてて。
24 名前:可愛い奥様[] 投稿日:2006/03/08(水) 01:36:35 ID:SSSFsTqE
そうそう、ヘンなモノはダンナのお皿へ直行だよね。
41 名前:可愛い奥様[] 投稿日:2006/03/08(水) 11:55:18 ID:sjj+/60Q
見てるだけで気が晴れるな!
皆さん、頑張ってね!
42 名前:可愛い奥様[sage] 投稿日:2006/03/08(水) 20:33:51 ID:Ju2N1s7+
年金分割が楽しみじゃのう
63 名前:可愛い奥様[] 投稿日:2006/03/10(金) 08:55:20 ID:qLfJYpJR
家族で密かにはぶっている。
男性は肉体が汚く、精神が美しい傾向がある。(気に入らない相手に肉体的攻撃を加える⇒精神的攻撃も加える男は猛者)
女は肉体が美しく、精神が汚い傾向がある。(気に入らない相手に精神的攻撃を加える⇒肉体的攻撃も加える女は猛者)
女は隠れて悪事をする。気に入らない女子を便所でボコったり、便器舐めさせたり、男の友人を使ってレイプ、仲間外れにしたり。陰口、嫉妬。
女は対人関係において、この汚い性格を隠そうとするため、外面が非常によくなる。(猫かぶり)
男性諸君は外面に騙されないように気を付けて下さい。
893
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:17:47
標準化しているのは ISO
あと、C# は関係ない。
禿は殴らないであげてね。
894
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:19:52
ここ。
http://www.open-std.org/jtc1/sc22/wg21/
895
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:25:37
The C++ standard was published 1998-09-01 by ISO ITTF as ISO/IEC 14882:1998.
ちなみに、94年に作業原案(WD)が委員会原案(CD)になっている
896
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:29:54
いったんJSに吸収されたCの血統が帰ってきた。見たいな感じだね。
クロージャは便利そうだから結構ほしかった。
Lambdaとfunctionまたは、closureを予約語にしてしまったほうが綺麗なきがする。
色付きエディタで映えるし。
安易かな・・・。
897
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:31:15
禿はあんまし予約後を増やしたくない、みたいな話をしてたなー。
たとえば、今までclosureという変数名を使ってた奴らのことも考えてやれよ、って。
898
名前:
896
:2006/03/14(火) 23:32:43
書いてる間にすれ伸びてら。
899
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:37:17
おっとさらに伸びてる。
>>897
俺はそんな変数名使った事ないな。
結構、根が深い拡張になりそうだからそれ位はいいと思うけどね。
一回やっちゃうと、どんどんやっちゃうから抑制のためかねぇ。
900
名前:
デフォルトの名無しさん
:2006/03/14(火) 23:46:30
オートマトンの * とか closure だよね
901
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:15:18
>>891
独習C++も新しい版は<iostream>を使っている。
金はケチるな。新しいのを買え。
902
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:18:17
それにしてもなんで拡張子無しにしたんだろうか
903
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:28:26
つか拡張子なんていらね
904
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:30:32
おれはファイル名いらね
905
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:31:09
>>902
苦肉の策じゃまいか。
namespace って結構新しいと思ったし、今更名前かえても困る。
だから「.h 付き」は今までどおり、namespace なしのもの、
「.h 抜き」は namespace std に包んだものにしたとか。
標準化時の混乱が目に浮かぶわ。
906
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:34:09
>>905
だがそれがいい
907
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:36:21
>>905
いやその時にもうちょっとマシな命名法は無かったのかって話だ。
.hppとかあるじゃん
908
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:40:39
thisきーわーど
909
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:43:36
拡張子から離れることによって、ファイル名からヘッダ名へと抽象化されたのだ。
俺はそう思っている。
910
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:45:29
拡張子ないと不便だと気づかなかったのかな
911
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:47:54
ただのスイッチとしてコンパイラが認識するような形でもおkっていうのを明示したんだろ。
912
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:49:14
>>910
たぶん夢ばっかり見て現実を見てなかったんだろうな。
.h を取っ払ったのはアホもとい前衛過ぎ。
913
名前:
デフォルトの名無しさん
:2006/03/15(水) 00:49:15
>>910
プリプロセッサがヘッダ名に拡張子を付けて実際のファイル名を決めるという実装でも問題ない。
914
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:01:18
VBとCの根本的な違いって、何ですか?
915
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:04:00
目的と設計思想
916
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:04:47
>>914
余所逝け、スレ違いだ。
917
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:06:14
>>914
VB 色々楽=楽な分色々な知識が身に付かない
C 色々しんどい=しんどい分色々な知識が身に付く
918
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:11:00
#include 指令に指定されたリテラルがファイル実体を一意に識別するのは、ある条件を満たしている時のみ
<iostream> で引用されるファイルに「拡張子がない」などと思いこんでいる奴は天然ぼけ
919
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:13:28
>>918
だからそれがアホ・・・もとい、前衛過ぎなんだって。
920
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:13:51
>>915
>>917
なるほど、まだ自分は初心者なのでとても為になりました。
有り難う御座いました。
>>916
すいませんでした。
921
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:19:27
言語設計者はある程度夢を見ている方がバランスが良いと思う。
922
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:21:54
>>919
V
おまい、V=Rでないと前衛過ぎって手合いか?
923
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:25:20
>>922
V→Virtual
R→Real
であってる? まぁ、そうだとしてもなにがいいたいのかよくわからん。
とにかくに俺は .h を取っ払ったのは失敗もしくは時期尚早だったと評価している。
924
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:27:33
a.out の拡張子も取っ払うのは時期尚早か?
925
名前:
デフォルトの名無しさん
:2006/03/15(水) 01:32:36
>>924
俺は gcc を使わないからどうでもいい。
926
名前:
デフォルトの名無しさん
:2006/03/15(水) 05:53:12
やってみてしばらく経った今だから見えてくるものに対して
「今となってはあれは失敗だった」というならまだしも、
あとから見えてきたことを使って当時の決断をアホだの何だのってのは
ずいぶんと卑怯な言いぐさではあるな。
927
名前:
デフォルトの名無しさん
:2006/03/15(水) 06:19:13
>>926
いまとなってみれば当時の決断はアホだった、ってことだろ。
928
名前:
デフォルトの名無しさん
:2006/03/15(水) 06:52:22
あんま上手な逃げ口上ではないなー
929
名前:
デフォルトの名無しさん
:2006/03/15(水) 06:59:47
逃げ口上てw
まじれすだが、過去を振り返って決断が誤りだった
(決断の結果失敗した、ではない)と思うことはあるだろ?
それを批判するのが卑怯か?
930
名前:
デフォルトの名無しさん
:2006/03/15(水) 07:38:06
やってみなくちゃ分からないことだったなら、
別に当時の人がアホだったわけじゃないだろ。
当時の誰もが分からなかったんだから。
まあやらずとも分かることなら、批判されてしかるべきだが。
931
名前:
デフォルトの名無しさん
:2006/03/15(水) 08:04:09
当時は誰もが無知だった。
932
名前:
デフォルトの名無しさん
:2006/03/15(水) 09:08:48
いい具合いなカオスの中に、発展は存在する。
933
名前:
デフォルトの名無しさん
:2006/03/15(水) 09:44:05
まあどういった批判かにもよるが、当時の状況も考えずに
結果だけを見て批判するのは卑怯だな
934
名前:
デフォルトの名無しさん
:2006/03/15(水) 09:53:14
卑怯なんて語が出てくるところに信心入ってるな
935
名前:
デフォルトの名無しさん
:2006/03/15(水) 11:50:17
すまん。拡張子がないとなんで不便なんだ?
936
名前:
デフォルトの名無しさん
:2006/03/15(水) 11:58:26
ゲイツ教の敬虔な信者だろ
937
名前:
デフォルトの名無しさん
:2006/03/15(水) 12:18:17
mime type の判別が・・・
938
名前:
デフォルトの名無しさん
:2006/03/15(水) 12:36:26
ヘッダファイルごときに mime type の判定をする必要性はあまり感じないし、
仮にその必要があったとしても、実際には拡張子ありのファイルを置いておいて
コンパイラが適当に判断して読みに行けばいいだけじゃん
939
名前:
デフォルトの名無しさん
:2006/03/15(水) 12:46:42
その「適当な判断」も標準化せにゃならんのとちゃう。
940
名前:
デフォルトの名無しさん
:2006/03/15(水) 12:53:33
拡張子は、そのファイルの内容についての「提案」であって、ファイルの内容を表しているとは限らないと思うけどな。
jpegで送ってほしいと頼むと、bmpの拡張子をjpgにして送ってくる人が後を絶たない。
拡張子など信用できない。
ヘッダ等に拡張子がなくて不便と思うのは、コードエディタ(具体的にはvimだが)で
構文強調表示を明示的に指定しないといけない点だな。
でも漏れテンプレートライブラリのヘッダは拡張子つけてないな。
941
名前:
デフォルトの名無しさん
:2006/03/15(水) 12:54:08
ヘッダファイルは.hのみ。例外は許さんと言えないのがビョーンクオリティ
942
名前:
デフォルトの名無しさん
:2006/03/15(水) 13:03:43
どうでもいいけど、そろそろ次スレの時期だね。
スレタイは「C++相談室 part48」
テンプレは
>>1-16
特に
>>9
、
>>15-16
に注意
標準ライブラリ・STLについての話題もC++相談室で扱う
非標準のライブラリ(Boost, Loki等)については他の専用スレ
であってるのかな
943
名前:
デフォルトの名無しさん
:2006/03/15(水) 13:34:01
拡張子を入れると
いわゆるハードコーディングになるから
944
名前:
デフォルトの名無しさん
:2006/03/15(水) 13:35:00
んなアホなことを言ってるのはC/C++厨だけ
945
名前:
デフォルトの名無しさん
:2006/03/15(水) 13:56:19
だからプリプロセッサがどうにかすればいいだけ。
あるいはiostreamというファイルの内容が拡張子付きのファイルをインクルードするだけと言うようにするとか。
946
名前:
デフォルトの名無しさん
:2006/03/15(水) 14:46:16
んなの、シンボリックリンクでいいじゃん。
947
名前:
デフォルトの名無しさん
:2006/03/15(水) 15:11:10
拡張子がないと make できません!いったい!私は!どうすれば!
948
名前:
デフォルトの名無しさん
:2006/03/15(水) 15:12:54
別に拡張子無くても make できるけど。
949
名前:
デフォルトの名無しさん
:2006/03/15(水) 15:15:36
拡張子無しのヘッダファイルをインクルードした拡張子無しのソースを
コンパイルして、拡張子無しのオブジェクトファイルを生成し、
それをリンクして拡張子無しの実行ファイルを作る。
950
名前:
デフォルトの名無しさん
:2006/03/15(水) 15:49:28
>>948
推論規則が使えないと辛いんですが。
951
名前:
デフォルトの名無しさん
:2006/03/15(水) 15:50:08
別に自前のヘッダは.h付きでいいじゃん。
952
名前:
デフォルトの名無しさん
:2006/03/15(水) 16:21:58
>>929
気になった単語以外何も読まずにレスするのはどうかと思うぞ。
953
名前:
デフォルトの名無しさん
:2006/03/15(水) 16:49:19
同じファイル実体に対して拡張子のない名前と拡張子のある名前を同時に持たせる方法を知らなかったり
拡張子に依存した運用形態に異常な執着を持っていたり、なんかたまんねーもんあるな
954
名前:
デフォルトの名無しさん
:2006/03/15(水) 16:52:00
次スレのテンプレをまとめてみたよ。立てれる人お願い。
http://www.emotiongrafix.com/my/misc/cpp.txt
955
名前:
デフォルトの名無しさん
:2006/03/15(水) 17:00:21
//Hello.java
class Hello
{
public static void main(String[] args){
System.out.println("hello");
}
}
956
名前:
デフォルトの名無しさん
:2006/03/15(水) 18:09:01
>>955
C++でおk
957
名前:
デフォルトの名無しさん
:2006/03/15(水) 18:13:23
ワロタ
958
名前:
デフォルトの名無しさん
:2006/03/15(水) 21:21:18
C++相談室 part48
http://pc8.2ch.net/test/read.cgi/tech/1142423595/l50
959
名前:
デフォルトの名無しさん
:2006/03/16(木) 01:35:49
>>926
当初からアホ・・・もとい、前衛過ぎると思ってましたがなにか?
960
名前:
デフォルトの名無しさん
:2006/03/16(木) 10:53:36
まだ足掻くんだw
961
名前:
905
:2006/03/16(木) 11:29:23
そんなに拡張子無いのが嫌ならincludeの中のヘッダ、
全部自分でリネームしちゃえばいいじゃん。
他の人は納得してんだから、無用な労力を負うべきだとすれば君ヒトリだ。
962
名前:
デフォルトの名無しさん
:2006/03/16(木) 23:24:32
>>961
君の頭も相当アホ・・・もとい、前衛的だねぇ。
963
名前:
デフォルトの名無しさん
:2006/03/16(木) 23:48:36
独りで必死に標準規格に抗うもまた良し
964
名前:
デフォルトの名無しさん
:2006/03/17(金) 00:25:41
てか、お前らのなんなの?
一方は拡張子を取っ払ったことをアホだって言ってるだけだし、
もう一方も拡張子を取っ払ったことはアホだと認めてんだろ?
意見が同じなのになんでもめるの?
965
名前:
デフォルトの名無しさん
:2006/03/17(金) 00:39:47
アホちゃいまんねん、パーでんねん
966
名前:
デフォルトの名無しさん
:2006/03/17(金) 00:40:58
プログラマはコミュニケーション取るのが下手糞なんだよ
>>964
967
名前:
デフォルトの名無しさん
:2006/03/17(金) 01:11:50
拡張子なしとhppってどうやって使い分けたらいいの?
968
名前:
デフォルトの名無しさん
:2006/03/17(金) 03:42:27
知るか
そのファイルを作ったやつに聞け
969
名前:
デフォルトの名無しさん
:2006/03/17(金) 05:47:13
世の中にはアホしかいないから
どいつもこいつも俺の思う通りに動かない
970
名前:
デフォルトの名無しさん
:2006/03/17(金) 06:31:15
.h でも .hpp でも拡張子なしでも、統一さえとれてれば何でもいいよ。
971
名前:
デフォルトの名無しさん
:2006/03/17(金) 06:36:50
いちいちヘッダファイルとか作成するのマンドクセ
972
名前:
デフォルトの名無しさん
:2006/03/17(金) 07:57:01
>>971
Java でもつかえ。
973
名前:
デフォルトの名無しさん
:2006/03/17(金) 09:46:05
.hpp は本当は保証外
974
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:09:52
>>973
Boost にいってやれ
975
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:16:35
hとhppの違いが分かりません
976
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:32:36
3倍もタイプ量が違うじゃないか
977
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:35:02
>>973
え?
978
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:46:42
俺の友人なんて myclass.inc とかにしてるぞ(笑
979
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:47:04
M$が.hを推奨してるのは明らかだしな
980
名前:
デフォルトの名無しさん
:2006/03/17(金) 10:59:30
先見性が無いと言えば文字コード
JISもCP932もUCS-2もBOMも今思えば超アホなコード
981
名前:
デフォルトの名無しさん
:2006/03/17(金) 11:05:04
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#533
982
名前:
デフォルトの名無しさん
:2006/03/17(金) 11:05:07
半角カナをあんなとこに持ってったのは当時のハードだしあれだが、
いまだに引きずってるのがあほらしい。
983
名前:
デフォルトの名無しさん
:2006/03/17(金) 11:36:22
>>982
引きずってるか?
984
名前:
デフォルトの名無しさん
:2006/03/17(金) 12:31:06
incってアセンブラっぽ。
985
名前:
デフォルトの名無しさん
:2006/03/17(金) 15:52:08
クラスについての質問
クラスのメンバ関数の引数のあとにconstが付いてるんだけれど、どういう意味?
自分の持ってるC++入門書には書いてなかった
void Function() const←コレ
986
名前:
デフォルトの名無しさん
:2006/03/17(金) 16:07:31
>>985
constなインスタンスについてそのメンバを呼べる、ということ。
const X x;
x.Function();
987
名前:
デフォルトの名無しさん
:2006/03/17(金) 16:11:51
>>985
そのメソッドの中でそのクラスのメンバ変数を
変更しませんよ、ということを宣言している。
なので変更するようなコードを書くと怒られる。
988
名前:
デフォルトの名無しさん
:2006/03/17(金) 16:30:03
>>986-987
サンクス
・・すまん、どっちですか
989
名前:
デフォルトの名無しさん
:2006/03/17(金) 16:43:24
>>988
どちらも同じことを言っているようにしか見えないが。
990
名前:
デフォルトの名無しさん
:2006/03/17(金) 16:45:26
立場が違うけどなw
991
名前:
デフォルトの名無しさん
:2006/03/17(金) 17:10:52
>>990
うむ。
>>989
が理解できれば const は一応分かったことになるが、
const はそれだけで5杯くらいメシが食えちゃうくらい味わい深いからな。
992
名前:
デフォルトの名無しさん
:2006/03/17(金) 17:13:56
constメソッドの中でSTLコンテナ使おうとしてハマるに1票
993
名前:
デフォルトの名無しさん
:2006/03/17(金) 17:39:05
int main(const int argc, const char* const* const argv) {
処理
}
で、 boost::program_options を使おうとしてハマった。
なんで両方とも const とらなきゃならんのだよぉ
994
名前:
デフォルトの名無しさん
:2006/03/17(金) 18:04:48
argc は確かに変だけど、argv は仕方ないだろ
ISO/IEC14882 3.6.1 Main function ではっきり非 const とされている
995
名前:
デフォルトの名無しさん
:2006/03/17(金) 18:10:40
>>994
どうせ argc は値渡しだろうし、
argv の方で怒られてたんだろうな。
そうか、規格で非 const とされてたか。
それは知らなかった。
996
名前:
デフォルトの名無しさん
:2006/03/17(金) 18:21:09
ていうかおまいはどこでconstとして覚えたんだ
997
名前:
デフォルトの名無しさん
:2006/03/17(金) 19:35:26
>>996
わかんね。
たぶん人からもらったソース(笑
998
名前:
デフォルトの名無しさん
:2006/03/17(金) 20:23:56
>>994
おいおい,嘘いっちゃいかんよ.
3.6.1 の 2 に「It shall have a return type of type int, but otherwise its type is implementation-defined.」とあるように,戻り値だけは決まってるけどあとは実装による.const を許す実装があったってかまわない.
999
名前:
デフォルトの名無しさん
:2006/03/17(金) 20:27:12
>>998
多分、
>>994
の真意は、「規格で明示的に認められているmainの型は引数にconstがついていない」ということだろう。
1000
名前:
次スレ
:2006/03/17(金) 20:43:15
C++相談室 part48
http://pc8.2ch.net/test/read.cgi/tech/1142423595/l50
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.