TAG

首都機能移轉 (2) 歌詞 (2) 靠北文 (40) 戲言 (30) 糟糕 (7) ACG (23) Assembly (2) Boost (2) C (31) C++ (69) CMake (4) CSIE (67) Debian (34) Design_Pattern (2) Django (1) Eclipse (1) en_US (13) FFmpeg (3) FoolproofProject (26) FreeBSD (2) Git (4) GNU_Linux (65) IDE (5) Java (11) JavaScript (19) KDE (15) Khopper (16) KomiX (3) Kubuntu (18) Life (1) Lighttpd (2) Mac_OS_X (2) Opera (1) PHP (2) PicKing (2) Programing (21) Prolog (1) Python (7) QSnapshot (2) Qt (30) Qt_Jambi (1) Regular_Expression (1) Shell_Script (7) Talk (98) VirtualBox (7) Visual_Studio (13) Windows (18) zh_TW (36)

2008年8月30日 星期六

設計和實作一樣麻煩

昨天睡前試了一下把boost::regex改成QRegexp,結果很不幸地發現該模組的架構會因此而更動。
原本是把各個式子存成匿名空間全域常態變數,再在成員函式裡使用boost::match;但是由於QRegexp是個有狀態行為的物件,它不能成為常態變數,於是我只有兩個選擇:一是讓它成為私有實體成員,每次建構實體都重新建構一次,缺點是物件會變大,但是它會是多緒安全物件;一是讓它成為私有靜態成員或是匿名空間全域變數,好處是不會額外佔用空間,壞處是它不具有多緒安全。
我想其他的模組也有可能會遇到相同狀況....

沒有留言:

張貼留言