http://www.ultimatepp.org

最近這個 gui 的 library 感覺愈做愈好了,
我會喜歡的原因主要是因為,他的程式庫很小,
不過有時對各種字元編碼的支援還不夠完善,
編譯他的範例程式時,少部份會出現ERROR都是因為這個問題,
之前也是因為這個問題才沒用它的。
而且我很喜歡他的一個範例程式叫EyeCare,
功能就是每N分鐘叫你起來休息M分鐘,對我來說實在很不錯^^
心情不好時來加個音效的小功能好了。
不過它到處加 using namespace Upp; 實在讓人高興不起來。

啊對了,open watcom 1.9 在去年六月出來的樣子= =
跟code block整合的還不錯,之前一直不能hello的world也可以了,
但他自帶的ide實在是爛到不行。
啊,不過不能debug,所以只能在release的時候使用,
而且有個很奇怪的地方,就是
使用
#include <cstdio>
時要用
std::printf

#include <stdio.h>
時,才可以不用std
直接
printf
超怪的啦~~
不過他的程式碼真的是超小的,但不接受很猛的template寫法,
以下面程式碼為例,時間是執行多次後取最短時間。


#include <iostream>
#include <stdio.h>
#include <stdlib.h>

 class A;  // class A 的標題
 class B
 {
    public:
    A   *a;
    int  v;
 };

 class A
 {
    public:
        B   b;
        int c;
 };

 int main()
 {
    A x;
    x.c = 1;
    x.b.v = 2;
    x.b.a = new A;
    x.b.a->c=3;
    x.b.a->b.v=4;
    std::cout << "x.c= " << x.c;
    std::cout << "; x.b.v= " << x.b.v << std::endl;
    std::cout << "x.b.a->c= " << x.b.a->c;
    std::cout << "; x.b.a->b.v= " << x.b.a->b.v << std::endl;
    printf("hello world!\n");
    printf("%d %c %f\n", 1, '2', 3.0);
    int r = rand();
    for (int i=0;i<100000000;i++)
        r = rand();
    std::cout << "rand= " << r;
 }

以下結果為在codeblock ide下測試,只能當參考,不代表實際速度。
不過我想說watcom 在rand()不知道動了什麼手腳怎麼跑那麼快,下次在多執行緒測看看它們的stl安不安全。

vc2008 release 結果 127kb
x.c= 1; x.b.v= 2
x.b.a->c= 3; x.b.a->b.v= 4
hello world!
1 2 3.000000
rand= 30799
Process returned 0 (0x0)   execution time : 2.040 s

mingw gcc 4.4.1 release 結果 458kb
x.c= 1; x.b.v= 2
x.b.a->c= 3; x.b.a->b.v= 4
hello world!
1 2 3.000000
rand= 30799
Process returned 0 (0x0)   execution time : 1.380 s

watcom 1.9 release 結果 57kb
x.c= 1; x.b.v= 2
x.b.a->c= 3; x.b.a->b.v= 4
hello world!
1 2 3.000000
rand= 12298
Process returned 0 (0x0)   execution time : 0.393 s

arrow
arrow
    全站熱搜

    讓地獄深紅的天亮 發表在 痞客邦 留言(0) 人氣()