2010 |
05,24 |
«1日»
assert(false)
よりは
assert(0)
の方が個人的には奇麗だと思っています。
しかし代わって
while(1)
よりも
while(true)
の方がなんとなくきれいな気がします。
false == 0 ですが
true == 1 とも限らないという所が
関連しているのかなと思います。
よりは
assert(0)
の方が個人的には奇麗だと思っています。
しかし代わって
while(1)
よりも
while(true)
の方がなんとなくきれいな気がします。
false == 0 ですが
true == 1 とも限らないという所が
関連しているのかなと思います。
PR
2010 |
05,23 |
«4日»
2回deleteはデバッグエラーになりますよね。
しかしそのポインタがnewされているかどうかがわからないけども
deleteしたい場合というのは有ると思うのですが
newとdeleteは対となっているべき等と
よく言われています。
上の例の場合、
それをやろうとするなら
-*- -*-
if(pointer == 0)
{
//ポインタが0ならdeleteしない
}
else
{
delete pointer ;
pointer = 0 ;
}
-*- -*-
こんな構造をマクロか何かで
指定することになると思います。
newとdeleteは対となっているべき
という考え方からすれば、これは悪手な感じがするのですが
どうなんでしょう。
-*- -*-
書いた5分後くらいに
「shared_ptrを使えば全て解決する」
ということに気付いてしまいました…。
しかしそのポインタがnewされているかどうかがわからないけども
deleteしたい場合というのは有ると思うのですが
newとdeleteは対となっているべき等と
よく言われています。
上の例の場合、
それをやろうとするなら
-*- -*-
if(pointer == 0)
{
//ポインタが0ならdeleteしない
}
else
{
delete pointer ;
pointer = 0 ;
}
-*- -*-
こんな構造をマクロか何かで
指定することになると思います。
newとdeleteは対となっているべき
という考え方からすれば、これは悪手な感じがするのですが
どうなんでしょう。
-*- -*-
書いた5分後くらいに
「shared_ptrを使えば全て解決する」
ということに気付いてしまいました…。
2010 |
05,19 |
«0日»
-*- -*-
#include <memory>
#include <vector>
using namespace std ;
enum eHOGE
{
HOGE_A,
HOGE_B,
HOGE_LAST
}
class A
{
};
int main()
{
vector<tr1::shared_ptr<A>> a ;
//pattern:1
//a.push_back(tr1::shared_ptr<A>(new A(/*HOGE_A*/))) ;
//a.push_back(tr1::shared_ptr<A>(new A(/*HOGE_B*/))) ;
//pattern:2
//a.resize(HOGE_LAST) ;
//a.at(HOGE_A) = tr1::shared_ptr<A>(new A(/*HOGE_A*/)) ;
//a.at(HOGE_B) = tr1::shared_ptr<A>(new A(/*HOGE_B*/)) ;
return 0 ;
}
-*- -*-
そんな場合は望ましくないという突っ込みが有りそうですが、
固定長のvectorを使う場合に、
resizeしてから使うのか、push_backしていくのか
という微妙な疑問がありました。
後それと、
tr1::shared_ptr<class Hoge>
が非常に長ったらしいので
typedefをするとして、
どういう名前にするかも若干疑問です。
それとそれと、
今回初めてソースらしきものを張ったわけですが、
シンタックスハイライトの仕方がわからないです…。
他のブログだとよく見かけるのですが。
#include <memory>
#include <vector>
using namespace std ;
enum eHOGE
{
HOGE_A,
HOGE_B,
HOGE_LAST
}
class A
{
};
int main()
{
vector<tr1::shared_ptr<A>> a ;
//pattern:1
//a.push_back(tr1::shared_ptr<A>(new A(/*HOGE_A*/))) ;
//a.push_back(tr1::shared_ptr<A>(new A(/*HOGE_B*/))) ;
//pattern:2
//a.resize(HOGE_LAST) ;
//a.at(HOGE_A) = tr1::shared_ptr<A>(new A(/*HOGE_A*/)) ;
//a.at(HOGE_B) = tr1::shared_ptr<A>(new A(/*HOGE_B*/)) ;
return 0 ;
}
-*- -*-
そんな場合は望ましくないという突っ込みが有りそうですが、
固定長のvectorを使う場合に、
resizeしてから使うのか、push_backしていくのか
という微妙な疑問がありました。
後それと、
tr1::shared_ptr<class Hoge>
が非常に長ったらしいので
typedefをするとして、
どういう名前にするかも若干疑問です。
それとそれと、
今回初めてソースらしきものを張ったわけですが、
シンタックスハイライトの仕方がわからないです…。
他のブログだとよく見かけるのですが。
2010 |
04,02 |
«2日»
ファイル操作で慣れないせいかかなり手こずっています。
便利だと思っていた可変長があそこまで扱いにくいとは思いませんでした…。
明日明後日にはセーブロードをなんとか完成させたいです。
便利だと思っていた可変長があそこまで扱いにくいとは思いませんでした…。
明日明後日にはセーブロードをなんとか完成させたいです。
カレンダー
リンク
カテゴリー
プロフィール
HN:
粘土男
性別:
男性
自己紹介:
レッドストーン、ルシエルブルー、
アラド戦記、ラテール、エルソード、
ファンタジーアースゼロ、などを
せこせことやっております。
プログラミングは、修練中です。
twitter:@rosukaruklame
アラド戦記、ラテール、エルソード、
ファンタジーアースゼロ、などを
せこせことやっております。
プログラミングは、修練中です。
twitter:@rosukaruklame