[Coherence] Upgrading to Coherence for C++ 12.1.2 and The "Ambiguous Compilation Error" in Types Derived From AbstractAggregator
Senin, 15 Juli 2013
0
komentar
https://blogs.oracle.com/middlewareplace/entry/upgrading_to_oracle_coherence_for
今週末、Coherence for C++ 3.7.1 APIを使って作成したいくつかの古いC++アプリケーションを数日前にリリースされた最新の12.1.2のAPIに移行し始めました。12.1.2ではCoherenceに対して多くの素敵な変更や機能が追加されています。インストール、WebLogicとの統合、TCMP、Exabus、RESTおよびCoherence*Extendといったような様々な領域で改善がなされていることは言うまでもありません。こうした変更や改善の詳細は以下のリンクからどうぞ。
Oracle Fusion Middleware Documentation数時間で旧バージョンから最新バージョンに移行した後、ビルド時に以下のようなコンパイラメッセージが出てびっくりしました。
Release Notes for Oracle Coherence
http://docs.oracle.com/middleware/1212/coherence/COHRX/index.html
call of overloaded 'Float64Sum(const coherence::lang::TypedHandle<coherence::util::extractor::ReflectionExtractor &)' is ambiguous
同じコンパイラメッセージを見たことがあるなら…ご心配無用です。簡単かつ明快な解決策があります。このコンパイラエラーが発生したのは、Coherence for C++ APIの12.1.2で、ファクトリメソッドcreate()のオーバーロードバージョンが、coherence::util::aggregator::AbstractAggregatorクラスから派生した型に導入されたからです。ver 3.7.1までは、AbstractAggregatorオブジェクトのインスタンスを作成するには、coherence::util::ValueExtractorのインスタンスをファクトリメソッドに渡すしかありませんでしたが、12.1.2からはcoherence::lang::String::Viewのインスタンスを渡してインスタンスを作成することもできるようになりました。このオブジェクトには集約された属性の名称が含まれているはずです。裏で自動的に、Coherence for C++ APIがcoherence::util::ValueExtractorを作ってくれます。
今回の場合、以下の部分を
次のように変更しました。Float64Sum::Handle scoreAggregator = Float64Sum::create(ReflectionExtractor::create("getScore"));
これでプロジェクトが再度コンパイル可能になり、GNU Linux G++でもMicrosoft Visual Studioの両方のC++のコンパイラを使うことができるようになりました。Float64Sum::Handle scoreAggregator = Float64Sum::create("getScore");
このエントリがコードデバッグの手助けになることを希望します :-)
TERIMA KASIH ATAS KUNJUNGAN SAUDARA
Judul: [Coherence] Upgrading to Coherence for C++ 12.1.2 and The "Ambiguous Compilation Error" in Types Derived From AbstractAggregator
Ditulis oleh Unknown
Rating Blog 5 dari 5
Semoga artikel ini bermanfaat bagi saudara. Jika ingin mengutip, baik itu sebagian atau keseluruhan dari isi artikel ini harap menyertakan link dofollow ke http://apk-zipalign.blogspot.com/2013/07/coherence-upgrading-to-coherence-for-c.html. Terima kasih sudah singgah membaca artikel ini.Ditulis oleh Unknown
Rating Blog 5 dari 5
0 komentar:
Posting Komentar