[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/28 11:42 / Filesize : 246 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.45【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:09:22 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.44【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1194016813/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

541 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:07:22 ]
>>537
inline指定無しでも最適化でインライン展開してくれるんじゃないの?
明示的にinline指定したい積極的な理由でもあるなら兎も角、そうでないならコンパイラに任せたら?
つーか、iccだとinline指定をつけると却ってコンパイラが混乱するみたいだ。

542 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:11:03 ]
>>540
番号間違ってる。
しかし、そのリンク先のエピたんの弁によれば、
inline指定してある関数を別の翻訳単位から見つけてくるiccはおかしなことになるね。

543 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:22:09 ]
7.1.2.4を見てextern inlineにしたら通った

544 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:00:43 ]
// aaa.h
extern inline double MySquare(double);

// aaa.cpp
double MySquare(double d){...}

// main.cpp
#include "aaa.h"

int main() {
 double d = MySquare(3.14);
}

一応gcc3.4とvc8でいけた
external linkageなinline指定つきの関数宣言がどうたらこうたら書いてあるけど理屈はよくわかんね

545 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:28:11 ]
>>540
>>541
>>542
>>543
ストラップ本にはinline定義とあるので、おそらく
無理なんでしょうね。
extern inline定義にしたらVC 2005では実行できましたが、
g++ v4では無理でした。移植性考えたらやはり素直にヘッダーに
定義を書いたほうが無難ですね。

546 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:30:36 ]
>>544
extern inlineを宣言につけるんですか。
試して見ます。

547 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:37:55 ]
>>544
g++ v4でもリンクできましたが、
定義にinlineつけないとインライン展開されて
ないかもしれないですね。


548 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:55:07 ]
VC++ 2008でもテンプレートのexport定義はサポート
されてないんだな

549 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:58:09 ]
>>548
別に規格に違反してないからね



550 名前:デフォルトの名無しさん [2007/12/19(水) 14:35:53 ]
kernel: pid xxxx (a.out), uid yyyy: exited on signal 11 (core dumped)
というメッセージがログに残っている場合は何を調べればいいのでしょうか?

551 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 14:38:34 ]
VCEEにMFCついてないかー/(^o^)\

552 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 14:52:40 ]
>>50
coreファイルを調べるのが王道


553 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 14:58:45 ]
>>550
signal 11はSEGVだから、要はセグメンテーションフォルトを起こしたってこった。
まぁ、メモリアクセス周りでバグってるんだろ。

554 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:02:26 ]
>>551
TurboC++ExpressだったらMFC付いてたかもしれん。

555 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:32:15 ]
>>554
把握した、WinAPI直接とか死にそうだからVB.NETかC#いじってくる

556 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:36:26 ]
どっちもとか正規表現あるから戻ってこれなくなりそう

557 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:20:06 ]
bitsetよりvector<bool>のほうが性能が上のことが判明した

#include <iostream>
#include <vector>
#include <bitset>
#include <time.h>
using namespace std;
main(){
#define N 8200000

int n,m,cl;

cl=clock();
bitset<N> a;
for(m=0;m<10;m++)for(n=0;n<N;n++)a[n]=1;
cl=clock()-cl;cout<<cl<<endl;

cl=clock();
vector<bool> b(N);
for(m=0;m<10;m++)for(n=0;n<N;n++)b[n]=1;
cl=clock()-cl;cout<<cl<<endl;
}

558 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:30:20 ]
自前の関数のほうが断トツで早かった

#include <iostream>
#include <vector>
#include "crc.h"
#include <bitset>
#include <time.h>
using namespace std;
main(){
#define N 8200000
int n,m,cl;
char *rnd =new char[N];
for(n=0;n<N;n++)rnd[n]=rand()&1;

cl=clock();
bitset<N> a;
for(m=0;m<10;m++)for(n=0;n<N;n++)a[n]=rnd[n];
cl=clock()-cl;cout<<cl<<endl;

cl=clock();
vector<bool> b(N);
for(m=0;m<10;m++)for(n=0;n<N;n++)b[n]=rnd[n];
cl=clock()-cl;cout<<cl<<endl;

cl=clock();
unsigned int k,l, *c=new unsigned int [1+(N>>5)];
for(n=0;n<(N>>5);n++)c[0]=0;
for(m=0;m<10;m++)for(n=0;n<N;n++){
k=n>>5; l=n&31; c[k] |= (rnd[n]<<l);}
cl=clock()-cl;cout<<cl<<endl;
}

559 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:30:52 ]
>>557
うちの環境ではbitsetの方が5倍速いんだが
bitset -> 143
vector -> 890
VC2005, C2D E6850



560 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:37:09 ]
>>559
MinGWやVCCで計ってみたけど、環境によって変わるらしいね でも自前のビット演算が最速だった
558のcrc.hはいりません

561 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:41:06 ]
>>560
gcc 3.4.4(cygming special)でもbitsetのほうが早かった
bitset -> 171
vector -> 687
自作は知らん

562 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:42:41 ]
>>558のほうでやってくれ 最適化されてループしていない可能性がある 初めのやつでは 

563 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:45:57 ]
VC2005
bitset -> 460
vector -> 1876
自前 -> 137
やはりbitsetaのが早い

564 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:49:50 ]
でも、どの環境でも自前でビット演算するのが一番みたいだね

565 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:58:54 ]
まあ問題領域によるだろう
早さだけを求めるならbitsetに限らず自分で書いた方がことが多いだろうね

566 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:59:00 ]
>>557
./a.gcc.O3
220000
400000
./a.gcc.O3.msse2
150000
390000
./a.gcc.O3.msse2.funroll-loops
150000
420000
./a.icc.xT.O3.ipo
140000
260000
./a.icc.fast
140000
250000


567 名前:566 mailto:sage [2007/12/19(水) 17:03:18 ]
おっと、書き忘れた。Xeon5160@3.00GHzね。
で、>558のほう。
--
./a.gcc.O3
440000
1010000
120000
./a.gcc.O3.msse2
410000
1010000
120000
./a.gcc.O3.msse2.funroll-loops
400000
1010000
130000
./a.icc.fast
420000
570000
130000
./a.icc.xT.O3.ipo
420000
570000
130000

568 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:17:10 ]
ポインタのアドレス計算について質問です。
#include <stdio.h>

int main(int argc, char *argv[]){
int *ptr;
int ary[] = {1, 2, 3, 4, 5, 0};
ptr = ary;

while(*ptr != 0){
printf("%d address = %u\n", *ptr, ptr);
++ptr;
}

return 0;
}

上記のプログラムを実行すると、アドレスは4番地ずつ進みます。
使っている参考書ではint型データは2番地ずつ進んでいますが、これは環境によって確保される記憶領域が違うということで宜しいでしょうか?
またfloat型の場合、使っている参考書ではint型の2倍、4バイト長ですが当方の環境だとint型と同じ4バイト長でした。
これも環境によって違うのでしょうか?

569 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:21:58 ]
ふつうはintは32bit 64bitパソコンは64鴨しれない



570 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:23:26 ]
その昔の参考書を投げ捨てろ。
16ビット環境主流の時代に書かれた本じゃないかい?

intのサイズは基本的に環境依存。16bitコンパイラは16bit、32bitコンパイラは32bit。

571 名前:568 mailto:sage [2007/12/19(水) 20:32:30 ]
>>569-570
有り難うございます。
環境によって違うのですね。
今、使っている本は
www.amazon.co.jp/dp/4756102700/
です。
難関と言われているポインタの説明がとてもわかりやすかったし、中盤まできたのでこのまま使っていきたいです。
さすがに捨てるのは勿体無いと思うので。

572 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:36:13 ]
intはサイズが環境依存だから、longを使え、

・・・って、その昔、仕様をカン違いしてるヤツが偉そうに
コーディングルールを決めることがよくあった。

573 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:37:32 ]
参考までにDOSコンパイラ(Turbo C++ 1.01)でのsizeof(int)とsizeof(long)実行結果
up.mugitya.com/img/Lv.1_up43982.png

32bitコンパイラだと両方とも4になる。

574 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:42:47 ]
>>568
www.oklab.org/language_c/lp64.html

575 名前:デフォルトの名無しさん [2007/12/19(水) 22:09:32 ]
IntelのCPU(x86)で、doubleとlong doubleはどうちがいますか?

576 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:47:06 ]
doubleは64ビット(IEEE 754倍精度)、
long doubleは80ビット(IEEE 754拡張倍精度)のことが多い。
Visual C++ 32ビット(どっちも64ビット)のように例外もある。

577 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:51:46 ]
失礼します。
どこで質問していいか判らず、何でも知ってそうなここに来ました。

ブーンスタジオをインストールしようとすると
DllRegisterServerへの呼び出しはエラーコード0x80070005により失敗しました。

と出るんですがどういう意味ですか?
当方PC歴1ヶ月で、全く解りません。
エラーコードググっても???です。
どうか、教えてください。




578 名前:デフォルトの名無しさん [2007/12/19(水) 22:58:12 ]
>>576
ありがとうございます。拡張倍精度というのがあるんですね。

579 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:07:38 ]

以下のファイルを構造体の配列に取り込みたいです。
-------------
a_yumi, 9, f
m_mana, 4, f
h_ryohko, 10, f
m_konomi, 12, f
m_kana, 4, f
。。。
-------------

struct data{
  char name[10];
  char age[10];
  char sex[10];
} g_data[NUM];

int main( void ){
 。。。
}

ファイルは開いてみないと大きさが分からないものとします。
"NUM"を可変に(ファイルのデータ数ピッタリに)取り込むことはできないでしょうか?
できればC++は使わずに、Cのみでやりたいです。お願いします。



580 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:10:37 ]
>>577
PC初心者板かソフトウェア板へいけ

581 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:14:12 ]
>>580
すみませんでした。
行ってきます

582 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:14:33 ]
>>577 半年ROMれバカ野郎

583 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:14:41 ]
>>577
この辺で聞いてみるとか?


【ニコニコ】BOON SUTAZIO Part4【ブラウザ】
pc11.2ch.net/test/read.cgi/software/1197298402/


584 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:15:13 ]
>>579
realloc()を使うとか、
リンクリストにするとか
で可能。



585 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:16:45 ]
>584
どもありがとうございます。
ググってきます。

586 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:05:26 ]
言語 C++
質問内容
 1.struct SHoge { char a; short b; int c; };と定義する。
 2.SHoge obj; と実体を作成する。
 上記の場合、objのアライメント(?)はいつも同じでしょうか?
質問の背景
 1.struct SHogeBase { char a; short b; int c; };と定義する。
 2.struct SHoge :public SHogeBase { void Save(FILE *f){fwrite(this, sizeof(SHogeBase),1,f); void Load(FILE* f){略}; }
 見たいに、メンバ変数のセーブ、ロードを行っており、タマタマ動作しているのですが、これがタマタマなのか、
 それともあらゆるC++環境で正常動作が保障されているのか、が知りたい。
足りない情報等あれば指摘お願いします。

587 名前:デフォルトの名無しさん [2007/12/20(木) 00:08:39 ]
>>586
OSが変わったりCPUが変わったらレイアウトも変わる罠。

588 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:10:37 ]
詰め物が幾ら入るかは処理系定義のお話なのです。

589 名前:586 mailto:sage [2007/12/20(木) 00:14:48 ]
>>587
OS・CPU(コンパチ品除く)が変わる場合、再コンパイルリンクコンパイルが入り、実行ファイルが新たに作成されますよね。
その実行ファイルは同じOS・CPUでは確実に正常動作するのでしょうか?
正常動作するならば、>>586 見たいなソースはありなんですかね?



590 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:14:50 ]
>>586
同じコンパイラの同じバージョンを使って同じオプションを指定してる限りは、いつも同じでいいかと思うけど
コンパイラが変わったりコンパイルオプションを変えたりすると変わることがある

591 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:17:20 ]
>>589
OSやCPUまでも変わる可能性があるなら、かなり厳しい
intのサイズも変わるしエンディアンも変わるし

592 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:38:27 ]
んやー・・・同じ実行バイナリで実行出来る環境なら概ね正しく動くだろ。

593 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:24:56 ]
>>586
メンバーアクセスしてればアラインメントの影響は
考えなくていいだろ。基本的にメモリレイアウトに
依存するようなコードは回避すべきじゃないのかね。

594 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:28:16 ]
unionとかは回避すべきなのか

595 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:30:24 ]
それはまた話が別でしょう。

596 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:13:15 ]
int型の変数aに50のいう数字が入っています。
これをchar型の配列b[]に5, 0と格納するのはどうすればいいですか?

597 名前:デフォルトの名無しさん [2007/12/20(木) 02:17:19 ]
b[1] = a/10;
b[0] = a%10;


598 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:18:41 ]
b[0] = '0'+a/10;
b[1] = '0'+a%10;

599 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:27:43 ]
sprintf(b,"%d",a);



600 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:37:30 ]
>>599
KY

601 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:38:51 ]
すまん、そういう場面だったのか……

602 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:39:15 ]
黙れカス

603 名前:596 mailto:sage [2007/12/20(木) 03:18:09 ]
ありがとうございました。

604 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 14:28:02 ]
すみません、printf関数のフォーマットに関する質問があります。


今、

printf("%20s%20s%20s", "hoge", "huga", "piyo");

という風に出力幅を20に指定したいんですが、
一箇所一箇所に20と書くのが不恰好のような気がしています。

もう少しスマートな書き方はありませんか?

605 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 14:36:35 ]
>>604
20を変数にして、動的に与えてやることはできる。

606 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 14:42:09 ]
>>604
静的にやるとしてもこんなもん↓

#define COLUMN_WIDTH "20"
printf("%" COLUMN_WIDTH "s%" COLUMN_WIDTH "s%" COLUMN_WIDTH "s",
"hoge", "huga", "piyo");



607 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 14:45:25 ]
#define prints(s) printf("%20s",s)

prints("hoge");
prints("huga");

608 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 14:47:21 ]
むしろこうだな

int i;
char *str[] = {"hoge", "huga", "piyo"};
for(i=0; i<sizeof(str); ++i)
printf("%20s", str[i]);

609 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 16:04:02 ]
int width = 20;
printf("%*s%*s%*s", width,"hoge", width, "huga", width,"piyo");



610 名前:デフォルトの名無しさん [2007/12/20(木) 16:10:51 ]
C++でtrim関数の使い方わかる人います?
#include <boost/algorithm/string.hpp>
をincludeすると、エラーがでて
c:\program files\microsoft visual studio\vc98\include\boost\algorithm\string\yes_no_type.hpp(22) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
c:\program files\microsoft visual studio\vc98\include\boost\algorithm\string\yes_no_type.hpp(23) : see reference to class template instantiation 'boost::algorithm::size_descriptor<I>' being compiled
c:\program files\microsoft visual studio\vc98\include\boost\range\detail\common.hpp(114) : fatal error C1506: unrecoverable block scoping error
っておっしゃるのですが?別にboost使わない方法があればいいのですが・・・。

611 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 16:21:27 ]
とりあえずVC6をなんとかしろと

612 名前:610 mailto:sage [2007/12/20(木) 16:37:22 ]
>>611
どういう事でしょうか?

613 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 16:39:32 ]
>>612
VC6は古すぎて実用に耐えないので、捨てろ
ということ。


614 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 16:49:22 ]
VC6は2004はアップデートで出ている
VC2003toolkitより新しい

615 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:04:48 ]
for ( std::vector<unsigned char>::iterator it = array.begin(); it != array.end(); it++ )
{
  *it = (*it >= threshold ) ? 1 : 0;
}

この処理をstd::for_each()を使って書くにはどうすればいいでしょうか?

616 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:08:49 ]
できれば別関数に書かず、for_each()に収めたいです。

617 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:14:04 ]
void f(unsigned char& r)
{
 r = (r >= threshold) ? : 1 : 0;
}

foreach(array.begin(), array.end(), f);

ダメかもしれんが。

618 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:15:06 ]
foreach ×
for_each ○

619 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:16:26 ]
自分の力だけで解け。

英語を自分の力だけで解けと言われれば、辞書等の使用は厳禁であるが
プログラミングでは全く正反対である、むしろ人に聞くのさえ認められる



620 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:16:57 ]
ぎゃあああああ、スレってか板違い失礼orz

621 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:31:49 ]
aが0ではない または bが0ではない または c==d
という文は
if ( (a|b) or (c==d) )
if( a|b| (c xor d) )
と書けると思いますがどっちのほうがはやいでしょうか?

622 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:38:50 ]
>>621
なんで xor になるのか理解不能だが、コンパイラが適切に最適化してく
れるので、細かい表記の差は気にしないで理解し易く書くべし。

if (a || b || c == d)


623 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:41:34 ]
計算してみたところa==b と、!(a^b)の計算速度は同じみたいです

624 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:44:33 ]
>>622
c=dならば、c xor dは0になります 
正しくはその否定でした

625 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:57:44 ]
フラグのgirlfriendがずっと0のままで1になりません。
また、sexというポインタを参照するとセグメンテーションフェイルドになります。
どうすればいいですか?

626 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:58:50 ]
>>625
マ板へ逝け

627 名前:デフォルトの名無しさん [2007/12/20(木) 18:05:18 ]
FILE **fp;
fp[i] = fopen(filename,"w");

みたいな使い方はでき・・・ませんよね

628 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:11:16 ]
FILE* fp[NUM]

629 名前:デフォルトの名無しさん [2007/12/20(木) 18:11:32 ]
www.stage6.com/user/iris4d/video/1864152/Hatsune-Miku-meets-Toro-and-Kuro-トロステ第343回




630 名前:615 mailto:sage [2007/12/20(木) 18:14:16 ]
すみません。for_each()でなくてもいいです。
>>615のfor文の処理を、標準C++のファンクタやboostを使って書くにはどうすればいいですか?
難しければ>>617さんのように書こうと思います。

631 名前:615 mailto:sage [2007/12/20(木) 18:33:26 ]
自己解決しました。以下で期待した動作が得られました。
std::transform(array.begin(), array.end(), array.begin(), std::bind2nd(std::greater_equal<unsigned char>(), threshold));
スレ汚し失礼しました。>>617さんありがとうございました。

632 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:49:12 ]
>>627
領域確保すればできる

633 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 19:02:50 ]
fopenはやめたほうがいい
winAPIなら1500個同時に開ける fopenはエラー起こす

634 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 23:01:05 ]
>>631
using namespace boost::lambda;
std::for_each(array.begin(),array.end(),if_then_else(_1>threshold,_1=xxx,_1=yyy));

でもいいのかしらん。xxx, yyy は何か入れ替えるとして。

635 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:09:36 ]
class B
{
protected:
 class BI {};
};
class D : public B
{
 class DI : public BI {}; // (1)
};

VC++6では、(1)のところでBIが定義されていないと言われます。
class DI : public B::BI {};
とすればBIは見つかりますが、今度はprotectedにはアクセスできないと言われます。
BIをpublicにすると、コンパイルできます。
これって合法だと思うのですが、標準規格ではどうなのでしょうか。VCがおバカなだけ?

636 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:09:40 ]
>>633
Windows環境だと判断した理由は?

637 名前:デフォルトの名無しさん [2007/12/21(金) 00:28:06 ]
`void' expected `pointer to unsigned char'
すいません、このような質問で申し訳ないのですがお答えください。
上のようなエラーが出たのですが、
これはどのように解釈すればいいのでしょうか?

voidが符号なしchar型へのポインターを予期した???

ちょっと意味がわからないです・・・・

638 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:28:15 ]
>>635
俺もいいと思うけどどうなんだろう。少なくとも g++ は warning 無しで通るね。

639 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:31:22 ]
VC++6の時点で
あらゆることが起こりうるのでバカバカしい



640 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:35:26 ]
VC++2005が最強

641 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:36:15 ]
>>637
unsigned char* を期待したのに void が渡された

関数コールで引数指定し忘れたとかそういうオチ?







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef