スレ立てるまでもない質問はここで 126匹目at TECH
スレ立てるまでもない質問はここで 126匹目 - 暇つぶし2ch159:デフォルトの名無しさん
13/03/26 23:29:55.46
「Windows と Macintosh は、通常、Shift-JIS を使っています」
文字化け(機種依存文字)
URLリンク(www.geocities.co.jp)
2000/10/01

160:デフォルトの名無しさん
13/03/26 23:30:51.12
>>156
SJISと一口にいっても
URLリンク(ja.wikipedia.org)

161:デフォルトの名無しさん
13/03/26 23:32:59.17
せめてユニコード系だけにしてほしいわ
もうガラパゴス文字コードやめてくれ

162:デフォルトの名無しさん
13/03/26 23:35:25.56
今のMacは大体UTF-8

163:デフォルトの名無しさん
13/03/26 23:41:04.68
v8組み込むために情報を集めています。
v8のバージョンは3.17.15.2、使用コンパイラはVC2012です。

URLリンク(mattn.kaoriya.net)
URLリンク(d.hatena.ne.jp)
や他のサイトで解説されているように、MakeWeakを使用してデストラクタを起動させようとしたのですが、
v8::Persistent<v8::Object> holder = v8::Persistent<v8::Object>::New(thisObject);
※ holder.MakeWeak(foo, Foo_Dispose);

global-handles.ccにある、 GlobalHandles::MakeWeak内の
ASSERT(near_death_callback != NULL);で引っかかってしまいます。

※で呼び出しているMakeWeakが、そもそも第四引数をNULLとして呼び出しているので、
どうあがいてもアサーションには引っかかってしまうようになっていると思うのですが、
どうするべきなのか、ご存じの方が居ましたら教えて下さい。

164:デフォルトの名無しさん
13/03/26 23:43:28.34
こんな感じになっています。
void GlobalHandles::MakeWeak(Object** location,
void* parameter,
WeakReferenceCallback weak_reference_callback,
NearDeathCallback near_death_callback) {
ASSERT(near_death_callback != NULL);
Node::FromLocation(location)->MakeWeak(this, parameter, weak_reference_callback, near_death_callback);
}
void V8::MakeWeak(i::Isolate* isolate,
i::Object** object,
void* parameters,
WeakReferenceCallback weak_reference_callback,
NearDeathCallback near_death_callback) {
ASSERT(isolate == i::Isolate::Current());
LOG_API(isolate, "MakeWeak");
isolate->global_handles()->MakeWeak(object,
parameters,
weak_reference_callback,
near_death_callback);
}
template <class T>
void Persistent<T>::MakeWeak(void* parameters, WeakReferenceCallback callback) {
Isolate* isolate = Isolate::GetCurrent();
V8::MakeWeak(reinterpret_cast<internal::Isolate*>(isolate),
reinterpret_cast<internal::Object**>(**this),
parameters,
callback,
NULL);
}
v8::Persistent<v8::Object> holder = v8::Persistent<v8::Object>::New(This);
holder.MakeWeak(obj, dispose);

165:デフォルトの名無しさん
13/03/27 03:12:44.01
知り合いでソフト開発関連の会社に勤めてる人がいるんですけど
その人にループはi++じゃなくて++iが正しいみたいなことをいわれたのですが
その理由がなんだったのか忘れてしまいました
++iが正しい理由を教えてください

166:デフォルトの名無しさん
13/03/27 04:00:43.22
正しいと言えるのは意図に沿う場合のみ
意図に沿わなければ間違い

167:デフォルトの名無しさん
13/03/27 04:37:57.77
>>165
なんでそんなゴミグラマの言うことを間に受けるの?
i++と++iの違いを知ってればそのゴミグラマがマジモンのクズだって分かるよね?

168:デフォルトの名無しさん
13/03/27 07:09:16.73
for (i=0; i<10; i++) {}
のi++のことならi++も++iも違いないよね?

169:デフォルトの名無しさん
13/03/27 07:16:45.09
iがイテレータなら++iの方が基本的に実行効率は良い
糞コンパイラだと最適化が糞でiがただのintでも++iの方が効率の良いコードを吐くかもしれない

しかし正しい正しくないという話ではないな

170:デフォルトの名無しさん
13/03/27 07:21:30.73
>>168
a[i] を参照するような場合は、0オリジンだとむしろ ++i は for(i= -1; ...と
なって使い難いのではないか。

171:168
13/03/27 07:27:48.55
ごめん。a[++i]の場合だね。なかったことにしてください。

172:デフォルトの名無しさん
13/03/27 07:28:06.40
動作が違うのならどっちが正しいとか自然に決まるような

173:171
13/03/27 07:29:11.45
大変失礼しましたw 私は 168 ではなくて 170 でした。

174:デフォルトの名無しさん
13/03/27 08:05:25.59
適当な疑似コードで書くと以下のイメージになるので、i++はtmpの分だけ効率が悪いと聞いたことはある
でも、それぞれの特性を知って使い分けろという話で、他の人も言ってるように正しいとか正しくないということではないと思う
[i++]
tmp=i
i = i+1
return tmp

[++i]
i = i+1
return i

175:デフォルトの名無しさん
13/03/27 10:12:13.40
i++と++iで実装が違うから
phpもjsも++iのほうが早い

176:デフォルトの名無しさん
13/03/27 10:15:00.00
へー
じゃあC++も++Cっていう名前にすればよかったのにー

177:デフォルトの名無しさん
13/03/27 10:32:28.30
効率で決めたわけじゃないのだ

178:デフォルトの名無しさん
13/03/27 12:04:14.30
効率の悪い言語だしいいじゃないか

179:デフォルトの名無しさん
13/03/27 12:28:40.12
効率最優先で設計されてるのに効率が悪い?

180:デフォルトの名無しさん
13/03/27 12:59:15.37
何の効率?

181:デフォルトの名無しさん
13/03/27 14:01:48.11
CでもC++の組み込み型でも、値を利用しないで副作用だけ利用するならi++でも++iでも違いはない。
しかし、C++でクラスのオペレータオーバーライド関数を作ってみれば分かるが、i++と++iでは>174の
ように違う実装になってくる。従って、C++では++iと書く方が理に適っていると言える。

182:デフォルトの名無しさん
13/03/27 14:07:37.96
でも読みにくくなる

183:デフォルトの名無しさん
13/03/27 14:24:12.14
Cのみなら、うるさくいうひとがいないから心配ない。
C++の秀才が、衒学的に指摘するから、まどわされるのだ

184:デフォルトの名無しさん
13/03/27 14:28:08.15
↓この本に、fo(;;)も、i++もでてくる。問題ない。

「Cで書いたプログラムがたいてい高速に動作する(中略)
Cはカミソリのように切れ味鋭いツール」

『プログラミング作法』p.105 ブライアン・カーニハン、ロブ・パイク

185:デフォルトの名無しさん
13/03/27 14:28:37.20
i++って書くなっ!!!!!!!!!!!!!

186:デフォルトの名無しさん
13/03/27 14:28:38.48
>>181
> CでもC++の組み込み型でも、値を利用しないで副作用だけ利用するならi++でも++iでも違いはない。
副作用だけを利用する場合でも、値として評価されるから、i++と++iでは違うのでは?

187:デフォルトの名無しさん
13/03/27 14:29:35.37
for(;;)かwhile(true)かの話

188:デフォルトの名無しさん
13/03/27 14:33:04.94
forは0から1増やしていくのではなく
マックスサイズから0に向かって減らしていくのが早いのです

189:デフォルトの名無しさん
13/03/27 14:38:38.12
URLリンク(i.imgur.com)
このhead:tailってのがよくわからん

190:デフォルトの名無しさん
13/03/27 14:39:08.68
>>186
値を利用しないなら、単に捨てられるから同じことになる。
違う例を思いつかないのだが何かあるかな?

191:デフォルトの名無しさん
13/03/27 14:46:36.95
>>189
リストの先頭の要素がhead、リストのそれ以外の部分がtail。
つまり、C++で書けば次の関数のような定義。
int length(std::list<...> body)
{
if (body.empty()) return 0;
body.pop_front();
return 1 + length(body);
}

192:デフォルトの名無しさん
13/03/27 14:53:41.54
>>191
なるほどな C++弄ったことないからあれだけど
回答はこんな感じでいいの?
VL>deflength::[reverse]
VL>deflength([])=0
VL>deflength(head:tail)=1+length(tail+r)

193:デフォルトの名無しさん
13/03/27 14:54:06.57
>>190
同じ事になるかならないかは、処理系で異なる気がするが

194:デフォルトの名無しさん
13/03/27 15:20:28.25
def reverse :: [_] -> [_]
def reverse [] = []
def reverse (Head:Tail) = reverse (Tail) ++ [Head]

195:デフォルトの名無しさん
13/03/27 15:43:25.27
>>192
いんや。def lengthでlength関数が定義できるんでしょ?
いくらdef lengthって書いてもreverse関数は定義できないよ。

196:デフォルトの名無しさん
13/03/27 15:52:14.41
てかHaskell辺りの関数型言語の処理系(ghcとかね)を自宅で使ってみたらいいと思うよ
多少記法が違うから脳内変換は要るが、合ってるも間違ってるも実験できるし

197:デフォルトの名無しさん
13/03/27 17:59:05.00
>>163 馬鹿には無理

198:デフォルトの名無しさん
13/03/27 18:54:23.97
効率厨乙

199:165
13/03/27 21:11:38.09
お答えくださりありがとうございました。
正しい正しくないかではなかったんですね。
自分が何か勘違いをしていたかもしれません。
参考になるレスばかりで感謝です。

200:デフォルトの名無しさん
13/03/27 22:44:38.51
設計の話ですが
たとえば画像変換プログラムを作るとして、
A.入力形式から一旦中間形式にしてその後出力形式に変換
B.入力形式から直接出力形式に変換
Aだと
・サポートする形式の情報を充分格納できる中間形式にする必要がある
・サポートする形式が増えても中間形式に変換するだけで対応可能
・Bに比べて処理速度およびメモリ使用量は不利になる
Bだと
・Aに比べて処理速度およびメモリ使用量は有利になる
・サポートする形式を増やす度にN-1個の変換処理を追加する必要がある
どちらの方法がセオリーなんでしょう
あるいはほかに方法等あれば教えてください

201:デフォルトの名無しさん
13/03/27 23:04:36.09
>>158
jisx0213でした。失礼

202:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/27 23:08:31.00
ビットマップ画像は、インデックスカラーとフルカラーに大別できる。
インデックスカラーは色を限られたパレットで管理する。
フルカラーは比較的メモリを食うが滑らかな色彩加工ができる。
環境や目的によって使い分けるのがベスト。写真の加工ならフルカラーがいい。

203:デフォルトの名無しさん
13/03/27 23:19:29.80
そういう話じゃねぇです。

204:デフォルトの名無しさん
13/03/27 23:26:37.93
>>200
それぞれの利点が分かっているのだろう?
ならあとは、その利点が必要とされている方を採用するのがセオリーだと思うが。

205:デフォルトの名無しさん
13/03/27 23:26:40.76
まず、直接変換だけをするなら、N個にひとつ追加したら、2N通りの変換ロジックの追加が
必要だよ。
それが現実的なのかどうかを考えるとこから始めたら?

206:デフォルトの名無しさん
13/03/27 23:36:51.58
>>197
なるほど、バカには答えられないと。
マジレスすると、そのAPIはDeprecated

207:デフォルトの名無しさん
13/03/27 23:44:40.66
>>202
ばか乙

208:デフォルトの名無しさん
13/03/27 23:51:43.55
>>200
一般にはJpegやpngなど画像の入出力は既存ライブラリをブラックボックスとして使うので、中間形式を経ずに変換処理とか考えられない
JavaやC#など標準ライブラリに画像APIがある場合、中間形式はシステムに準じたものが用意されてるし、使わざるを得ない

ただし、質問の意図が、画像ライブラリを自分で簡単に書けるスキルがあって最高の速度が欲しいなどの前提があるなら、お好きにとしか言いようがない

209:デフォルトの名無しさん
13/03/28 00:00:44.41
現在30歳のフリーターなんですがPGになろうと勉強していて
基本情報とJavaで商品データの入力と照合、配送履歴やなどをする簡単なアプリを作れるぐらいなんですが、
次に習得した方がいい技術や資格はなんでしょうか

210:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/28 00:05:28.09
>>209
SQL、データベース、バーコード

211:デフォルトの名無しさん
13/03/28 00:15:32.22
容姿
他人が君と接してて内心気味悪がらない事

212:デフォルトの名無しさん
13/03/28 02:58:02.94
お前らC++を使えるようになるためにどんなことをしましたか?
どんな練習プログラム作った?

213:デフォルトの名無しさん
13/03/28 03:04:32.13
>>212
がっこの課題

214:デフォルトの名無しさん
13/03/28 05:01:00.32
>>212
ゲーム

マルチスレッドとDirectXとソケットも混ざって阿鼻叫喚の地獄絵図になって結局完成しなかったけど
半年間の悪戦苦闘で気が付いたらC++のスキルが上がってた

215:デフォルトの名無しさん
13/03/28 07:14:03.90
俺もゲームだな
鉄板の題材だと思う

216:デフォルトの名無しさん
13/03/28 07:37:34.25
ゲームが作れれば業務系とか簡単だからな

217:デフォルトの名無しさん
13/03/28 08:31:17.53
逆にC++ってゲーム以外に何に使うの?
現状で手動でメモリ管理が必要になるようなリアルタイム性と
OOPなどの抽象度を両立させたい用途が他に思いつかない

218:デフォルトの名無しさん
13/03/28 08:47:25.19
>>217
衝撃の指摘だな。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch