FAQ検索結果

検索キーワード:

Q" Perforce "と" Perforce Helix "の違いを教えてください。

A
「Perforce Helix」というキーワードについてご説明させていただきます。
2015年にPerforce Software社は、これまでリリースしたすべての製品に対して、Helix というブランド名を付けました。 Perforce Helix は、従来の Perforce 製品全体を指しており、個々の製品には、Helix P4V、Helix Swarm、Helix Threat Detection のように、頭に Helix を付けております。
※従来の Perforceサーバ(P4D)だけは、Helix P4D とは表現せず、Helix バージョニングエンジンという名称になります。

ただし、全体を包括するブラント名として Helix という名前を用いるものの、個々の製品(例えば、Perforce サーバや P4V など)の機能は、これまでとまったく変わりはございません。そのため、弊社HPのPerforce-FAQ情報などはそのままご活用いただけます。

ご不明な点がございましたら、こちらまでご遠慮なくお問い合わせください。

回答を閉じる

QMicrosoft Visual C/C++のCコンパイラ用の設定を教えてください。

A
Microsoft Visual C/C++コンパイラ向けの設定は、保守ユーザ様向け情報ページ にて設定の作成手順を公開しております。

Visual C/C++6.0、.NET2003、2005、2008 向けの手順書を公開していますのでご確認ください。
※Visual .NET2010をお使いの場合、Visual .NET2008 向けの手順書をご覧ください。

回答を閉じる

Q「関数テンプレート・ボディの解釈を遅らせる(-dpft+)」オプションの設定基準を教えてください。 QA C++全バージョン

A
コンパイラの中には、関数テンプレートの構文解析をテンプレートの インスタンスが作成される時点まで遅らせているものと、そうでない ものがあります。

お使いのコンパイラが、前者の挙動をする場合は、 「関数テンプレート・ボディの解釈を遅らせる(-dpft+)」オプション を設定する必要があります。後者の場合は、デフォルト(-dpft-)のまま にします。

具体的には、お使いのコンパイラが次のソースコードをエラーなく コンパイルできる場合は、-dpft+オプションを設定する必要があります。 // Error ==> -dpft- (default) // Success ==> -dpft+ class C { public: template <class T> void foo(){ u8 my_u8; } }; typedef unsigned int u8; void bar() { C c; c.foo<int>(); // Problem } int main(void) { return 0; }なお、設定方法は次の通りです。

GUIから設定する場合:
  [コンパイラ パーソナリティ] の [拡張] タブで
  [関数テンプレート・ボディの解釈を遅らせる]
  チェックボックスを選択します。

設定ファイルを直接編集する場合:
  -dpft+ と記述します。

回答を閉じる

Q「friend名を導く(-ifn+)」オプションの設定基準を教えてください。 QA C++全バージョン

A
コンパイラの中には、friend宣言を前方宣言と同様に扱い、 friend宣言で使用された識別子を名前検索時に使用できる ようにしているものと、そうでないものがあります。

お使いのコンパイラが、前者の挙動をする場合は、 「friend名を導く(-ifn+)」オプション を設定する必要があります。後者の場合は、デフォルト(-ifn-)のまま にします。

具体的には、お使いのコンパイラが次のソースコードをエラーなく コンパイルできる場合は、-ifn+オプションを設定する必要があります。 // Error ==> -ifn- (default) // Success ==> -ifn+ class C { friend void foo(); }; void bar() { foo(); // Problem } void foo() {} int main(void) { return 0; }なお、設定方法は次の通りです。

回答を閉じる

Qルネサステクノロジ社製のCコンパイラ用の設定を教えてください。

A
ルネサステクノロジ社製のCコンパイラ向けの設定は、保守ユーザ様向け情報ページにて公開しております。

H8/2000、H8/2600、H8/300、H8/AE5、H8S、M16C、M32C100、M32R および SuperH 用の 設定ファイルを公開しておりますのでご利用ください。

旧NECエレクトロニクス社製のCコンパイラ向けの設定は、

CC78K0、CC78K0R、CC78K0S、CA850 用の設定ファイルを公開しておりますのでご利用ください。

回答を閉じる

Q「テンプレート・パラメータを反映(-ptp+)」オプションの設定基準を教えてください。 QA C++全バージョン

A
コンパイラの中には、テンプレートの特殊化時に、その定義内で 特殊化元テンプレート定義のテンプレート・パラメータ名を 伝播して利用できるものと、そうでないものがあります。

お使いのコンパイラが、前者の挙動をする場合は、 「テンプレート・パラメータを反映(-ptp+)」オプション を設定する必要があります。後者の場合は、デフォルト(-ptp-)のままにします。

具体的には、お使いのコンパイラが次のソースコードをエラーなく コンパイルできる場合は、-ptp+オプションを設定する必要があります。 // Error ==> -ptp- (default) // Success ==> -ptp+ template <class T> class C { }; template <> class C<int> { T I; // Problem }; int main(void) { return 0; }なお、設定方法は次の通りです。

GUIから設定する場合:
  [コンパイラ パーソナリティ] の [拡張] タブで
  [テンプレート・パラメータを反映]
  チェックボックスを選択します。

設定ファイルを直接編集する場合:
  -ptp+ と記述します。

回答を閉じる

QGNU C/C++で開発したソースコードを解析できますか?

A
はい。解析できます。 ただし、設定ファイルはVisual C++やBorland C++のようにパッケージ化されているわけではなく、生成スクリプトを使用して作成することになります。

また、保守ユーザ様向け情報ページ にて設定の作成手順を公開しておりますのでご覧ください。

回答を閉じる

QSolaris/HP-UX/Linux版のQA·C/QA·C++の解析結果を、Windows版のQA·C/QA·C++で参照することはできますか?

A
Solaris/HP-UX/Linux版のQA·C/QA·C++が生成した結果(*.errや*.met)には、 Solaris/HP-UX/Linuxの絶対パスの情報が含まれているため、 Windows版のQA·C/QA·C++で参照することはできません。

回答を閉じる

QVisual C++ 6.0で開発したソースコードを解析できますか? QAC++1.5J以上

A
はい。Visual C++ 6.0で開発したソースコードを解析することができます。 解析を行う際は、次の6.0用インテグレータを別途インストールする必要があります。 保守ユーザ様向け情報ページからダウンロードしていただけます。

回答を閉じる

Q特定の関数の呼び出し箇所を特定する「警告コール(-wc) 」オプションの使い方を教えてください。

A
設定方法は次の通りです。

GUIから設定する場合:

  [アナライザ パーソナリティ] の [警告コール] タブで [追加] ボタンを押して、
  [指摘対象関数]=[指摘警告番号]という形式で設定します。
  例:
    func=3999

設定ファイルを直接編集する場合:
  -wc"[指摘対象関数]=[指摘警告番号]"という形式で設定します。
  例:
    -wc"func=3999"

なお、C++言語では関数をオーバーロード/オーバーライドできるように なっているので、同名の関数を複数個定義することができます。
同名の関数のうち一つを特定する必要がある場合は、 [指摘対象関数]を 「シンボリック・タイプ・コード」を用いた形式で 記述する必要があります。 (「シンボリック・タイプ・コード」については、ユーザーズ・ガイドを ご参照ください)

例えば、次のようなコードを解析する場合を考えます。void func(int);namespace NS { void func(int); class CLS { public: void func(int); };}int main(void) { NS::CLS obj; func(1); NS::func(1); obj.func(1); // ここに 3999 番の警告を出力する。 return 0;}複数個宣言された func 関数のうち、NS 名前空間内の CLS クラス内で 宣言されている func 関数が呼び出されている箇所だけに 3999 番の 警告を出力する場合は、次のように設定します。
  -wc"::NS::CLS::func(.,ni)=3999"

ただし、「シンボリック・タイプ・コード」を用いた形式で、 [指摘対象関数]を記述する のは容易ではないので、次の手順に従ってQA·C++から該当形式 の情報を抽出してください。
  • 対象となる関数の呼び出し文を含む簡単なサンプルソースを作ります。
    (ここでは TEST.cpp とします)
  • 作成した TEST.cpp をQA·C++で解析します。
  • 解析が正常終了すると TEST.cpp に対応する TEST.cpp.met という名称のファイルがQA·C++の 出力ディレクトリに作成されます。
  • TEST.cpp.met の中には、次のようなレコードが 出力されます。
    <R>C main ::test::TEST::func(.,ni) 17 -
    先頭が <R>C になっている行には、関数呼び出しに 関する情報が出力されています。(ユーザーズ・ガイド の「関係レコード」をご参照ください)
  • <R>C レコードの2番目は、呼び出されている関数の 情報を表し、これが「警告コール(-wc)」オプション に設定するべき情報になります。

  • 警告番号 3999 は「警告コール(-wc)」オプション用の汎用の 警告番号になります。 独自のメッセージを出力したい場合は、ユーザーズ・ガイドの「ユーザ・メッセージ・ファイル」を参照して、新しいメッセージを定義してください。

    回答を閉じる

    QVisual C++ 2008/2010で開発したソースコードを解析できますか? QAC++2.5J以上(Visual C++ 2010はQAC++3.0J以上)

    A
    はい。Visual C++ 2008/2010で開発したソースコードを解析することができます。 ただし、Visual C++ 6.0の拡張としての、Visual C++(8.0/9.0)で記述 したソースコードは解析できますが、 Managed C++で記述されたソースコードを解析することはできません。
    また、解析を行う際は、次のインテグレータを別途インストールする必要があります。

    詳しくは、保守ユーザ様向け情報 ページの注意事項をご参照ください。

    回答を閉じる

    Q旧バージョンのQA·C/QA·C++の解析結果を、新バージョンのQA·C/QA·C++で参照することはできますか? また、新バージョンのQA·C/QA·C++の解析結果を、旧バージョンのQA·C/QA·C++で参照することはできますか?

    A
    バージョンごとに、警告番号などの解析情報が異なっています。 そのため、あるバージョンで生成した結果(*.errや*.met)を、別のバージョンで参照することはできません。

    異なるバージョンで解析結果を参照するには、解析しなおした後、結果を参照してください。
     

    回答を閉じる

    Qヘッダの抑止はCMA解析にどのように影響しますか?

    A
    ヘッダが抑止されると、定義、関係、およびメトリックスのデータを含む、定義済みの項目に関する情報がmetファイルに書き出されないことが特に問題にな ります。その結果、再帰関数に関連するCMA診断のメッセージ出力が欠落する可能性があります。また、CMA生成メトリックスである「この関数を呼び出す 関数」(STM29)も誤った内容になるでしょう。
    システム関数からユーザ・コードに戻される呼び出しは行われないため、標準のシステム・ヘッダを抑止しても問題は起こらないはずです。
    CMA解析の特定の部分を重要視する場合は、-qオプションを使用してユーザ・ディレクトリを抑止しないことをお勧めします。また、同じ理由により、プロジェクトから特定の部分を取り除かないことも重要です。

    ※クロスモジュール解析(CMA)の詳細に関してはこちらをご覧ください。

    回答を閉じる

    QQA·C/QA·C++のコマンドライン実行に関する詳しい情報はどこにありますか? QA C8.1.1J以下/QA C++3.0J以下

    A
    この情報は、QA·C/QA·C++インストールのhelp/pdf/ディレクトリにある、製品ユーザ・ガイドの第9章に記述されています。

    なお、保守ユーザ様向けに弊社HPにて東陽ユーティリティというツールを提供しております。 東陽ユーティリティは、解析結果の警告一覧をCSVに生成することができます。

    - ご利用方法 -
    はじめは、東陽ユーティリティ利用手順書 ( ..\TOYO_UTIL\doc\Readme.pdf ) の6章"東陽ユーティリティの典型的な利用シナリオ"に従って QA C に同梱されているサンプルプログラムを出力することをお勧めいたします。

    - 東陽ユーティリティダウンロード先 -http://www.toyo.co.jp/html/ss/qac/user/pwd_lock/maintenance/
    +QA・C/QA・C++解析支援ツールなど
     ++東陽ユーティリティ (Windows用)

    回答を閉じる

    Q「依存基底クラスのルックアップ(-sdep+)」オプションの設定基準を教えてください。 QA C++全バージョン

    A
    コンパイラの中には、識別子の名前検索(ルックアップ)の範囲をクラス・テンプレートの基底クラスにまで拡張するものと、そうでないものがあります。

    お使いのコンパイラが、前者の挙動をする場合は、 「依存基底クラスのルックアップ(-sdep+)」オプション を設定する必要があります。後者の場合は、デフォルト(-sdep-)のままにします。

    具体的には、お使いのコンパイラが次の ソースコードを エラーなくコンパイルできる場合は、-sdep+オプションを設定する必要があります。 // Error ==> -sdep- (default) // Success ==> -sdep+ template<typename T> struct U { typedef int result_type; }; template<typename T> class B : public U<T> { result_type fn(); // Problem }; int main(void) { return 0; }なお、設定方法は次の通りです。

    GUIから設定する場合:
    [コンパイラ パーソナリティ] の [拡張] タブで
    [依存基底クラスのルックアップ]
    チェックボックスを選択します。

    設定ファイルを直接編集する場合:
    -sdep+ と記述します。

    回答を閉じる

    Q「拡張クラスのC++(-ex C++)」オプションはどのようなことを行うためのオプションなのでしょうか? QA C全バージョン

    A
    Cコンパイラの中には、C++言語の機能の1つである「参照演算子 &」 の使用を許しているものがあります。お使いのCコンパイラが 「参照演算子 &」の使用を許している場合は 、-ex C++オプションを設定する必要があります。
    ただし、「参照演算子 &」がその意味も含めて正式に解釈される ようになるわけではないので注意してください。

    また、お使いのCコンパイラが、「//コメント」の使用を許している 場合にも、-ex C++オプションを設定する必要があります。
    こちらは、「//コメント」がその意味も含めて正式に解釈される ようになります。

    なお、このオプションを使ったとしても、C++言語で記述されたコード が解析できるようになるわけではありません。QACでC++言語で記述 されたコードを解析すると、C++言語のキーワードや 文法(例えば class など) が記述されている箇所で文法エラーになります
    QACとQAC++が対象とするコードについては、 「CとC++のコードが混在している場合、QACとQAC++のどちらで解析すればよいのでしょうか?」をご参照ください。

    回答を閉じる

    QQA Cは#machineという記述が認識できないようです。認識させる方法はありませんか? QA C全バージョン

    A
    解析オプション"-EX ANSIPC"または"-EX PC"を使用してください。

    解析オプション"-EX ANSIPC"または"-EX PC"を指定することで、"#machine "が認識され、 "#if #machine(i386)"の結果を「真」として扱うことができます。 (Version 4.2 では -EX SRV4 でも可)

    しかし、#machineは、ISO Cで認められていない記述方法であることを指摘する メッセージは出力されてしまいます。この警告は、QAC4.5.3J以降、レベル9の 警告になりました。そのため、QAC4.5.3J以降は、#machineを使用するとき、 レベル9のエラーを抑止することはできません。
     

    回答を閉じる

    QWindows版のQA·C/QA·C++の解析結果を、Solaris/HP-UX/Linux版のQA·C/QA·C++で参照することはできますか?

    A
    Windows版のQA·C/QA·C++が生成した結果(*.errや*.met)には、 Windowsの絶対パスの情報が含まれているため、 Solaris/HP-UX/Linux版のQA·C/QA·C++で参照することはできません。

    回答を閉じる

    QQACで解析を行うとき、大文字小文字の違いを認識しないように設定することはできますか? QA C全バージョン

    A
    #includeで指定したファイル名とパス名をすべて小文字として扱うことは可能です。

    コンパイラパーソナリティの拡張で、PCまたはANSIPCをチェックしてください。
    すべて小文字として扱うことができます。

    回答を閉じる

    QQAC++で解析を行うとき、大文字小文字の違いを認識しないように設定することはできますか? QA C++ 全バージョン

    A

    申し訳ございませんが、QAC++ ではサポートしていません。

    回答を閉じる

    FAQ一覧へ戻る