は、Alphaでは無限ループに陥ってしまうか、Abortする。Alphaで動く
     ようにするには、
        
std::string str("irohanihoheto");
     unsigned long int p;
      
    while(1)
     {
        p = str.find("12345");
         if (p == std::string::npos) break;
     }
       
       のように unsigned long int 型にする必要がある。
    
       ともかく、integerは long にしておくのが無難である。
    
    
3. Alpha固有の問題ではないが、中には、namespace std の中の関数はいつも
     関数名だけで使えると仮定して作成されたプログラムもある。(特に cout、
     さらにvector系の関数の使用にこの過ちが多い。) g++-3.xからは厳しくな
     ったので、
      
using namespace std;
  
     を使用してごまかす。
  
     また、 friend A; と class を抜かした書き方が見られることもある。
   
friend class A;
  
     に直しておく。
  
   
4. これもAlpha固有の問題ではないが、一般に変数や配列要素は 0 や 0.0 を初
   期値に持つとは限らない。x86上で動くg++は初期値に何も指定しなくても勝手に要
    素が 0 や 0.0 の配列やベクトルを生成する癖がある。これに依存してコードを書
   いていた場合、同じコードをAlpha上のg++でコンパイルすると、配列やベクトルの
    各要素の初期値が NAN や -NAN になることが多いから注意すべきである。
 
    特に、他人が作った行列計算用のクラスを使用する場合、各要素が正しく初期化され
    ているかどうか検証すべきである。往々にしてコンストラクターで初期化を忘れてい
    て、計算結果が NAN ばかりであったり例外が発生して計算が止まったりする。
 
 
Alphaはリトルエンディアンであるし、それほど労せずともプログラムを動作させることは出来る。
    
    戻る