[映画] Today's Movie
今日は「ボーン・スプレマシー」(英題: The Bourne Surpremacy) です.これも例によって明日公開の「ボーン・アルティメイタム」に関連しての放送で,映画館でスプレマシーを見てなかったので観ることに.ちなみに,supremacy とは英語で「優位」「支配」とのこと.
例によってあらすじは,調べると出ますのでここには書きません.
ストーリーが進んでいくパターンは前作と同じ感じで,ボーンが追われるのがメイン.でも今作は前作より追われ方が激しい.
で,観終えた感想はと言いますと,なかなか面白い映画でした.ただ,派手なアクション映画が好みの自分にとってはボーンの活躍が地味に見えて,ちょーっと物足りない感じ.
以下余談.
序盤の舞台はベルリンなので,ボーンを追う警官が走りながら「POLIZEI!!, POLIZEI!!」と連呼してます.それ以外の台詞はなし.
えーと... 観客に対する分かりやすさへの配慮なのか,はたまたドイツの警察がそういうものなのか... は不明ですが,せめて「待てー」とか「止まれー」とかドイツ語で喋って欲しかった.
トラックバック
トラックバック URI: https://www.pakunet.jp/hoge/trackback/2007110902
トラックバックはありません.
[C++] VC2005 とテンプレートと friend
テンプレートクラスの中で関数に対する friend 宣言とその関数の定義を書くと... VC2006 のコンパイラはそれぞれを別物として扱い,結果,呼び出し時に「あいまいである」と C2593 エラーを出してくれます.
今回コンパイルしようとしたのは下のコード.テンプレートクラス Hoge の中で,テンプレート関数を friend 宣言して,クラスの外にその関数の定義を書いたものです.
#include <iostream>
namespace N {
template <size_t A, size_t B>
class Hoge
{
public:
template <size_t A_, size_t B_>
friend inline Hoge<A_,B_> operator * ( const Hoge<A_,B_>& a, const Hoge<A_,B_>& h );
};
template <size_t A, size_t B>
inline Hoge<A,B> operator * ( const Hoge<A,B>& a, const Hoge<A,B>& h )
{
return Hoge<A,B>();
}
}
int main()
{
N::Hoge<3,4> a;
N::Hoge<3,4> b;
N::Hoge<3,4> c = a*b;
return 0;
}
これを VC2005 Express SP1 のコンパイラ (cl.exe 14.00.50727.762) でコンパイルすると... C2593 エラーが発生します.
$ cl /EHsc /Ox /MD /Oy /GF /Zc:wchar_t /Zc:forScope /nologo /c /Fo"test.obj" "test.cc" test.cc test.cc(44) : error C2593: 'operator *' があいまいです。 test.cc(12): 'N::Hoge<A,B> N::operator *<3,4>(const N::Hoge<A,B> &,const N::Hoge<A,B> &)' [引数依存の照合を使用して検出しました] 、 with [ A=3, B=4 ] test.cc(22): または 'N::Hoge<A,B> N::operator *<3,4>(const N::Hoge<A,B> &,const N::Hoge<A,B> &)' [引数依存の照合を使用して検出し ました] の可能性があります with [ A=3, B=4 ] 引数リスト '(N::Hoge<A,B>, N::Hoge<A,B>)' を一致させようとしているとき with [ A=3, B=4 ] $
ここでコンパイラが曖昧だと言っている 2 つの関数,よく見るとシグネチャが同じです.
- test.cc(12): 'N::Hoge<3,4> N::operator *<3,4>(const N::Hoge<3,4> &,const N::Hoge<3,4> &)'
- test.cc(22): 'N::Hoge<3,4> N::operator *<3,4>(const N::Hoge<3,4> &,const N::Hoge<3,4> &)'
VC2005 SP1 のコンパイラはこの 2 つを別物だと扱ってしまっているようです.g++ 3.4.4 では問題なくコンパイルできました.
調べてみると,同じ内容のフィードバックを発見.が,しかし,このフィードバックの状態
と書かれた項目を見ると,終了 (修正しない)
となっており,VC2005 (SP1 含む) では直さないようです.
これは困った.VC2008 では直ってるのかな.
トラックバック
トラックバック URI: https://www.pakunet.jp/hoge/trackback/2007110901
トラックバックはありません.