こんばんは。
ShotaKurodaさんの意図を外しているかもですが、雰囲気的にそれっぽいことをしてみました。
C++
1#include <iostream>
2using namespace std;
3
4template<typename T,int X,int Y>
5class Class
6{
7 int val;
8public:
9 static const int ValueX=X;
10 static const int ValueY=Y;
11 template<int XX, int YY>
12 bool operator==(const Class<double, XX, YY>& aRhs)
13 {
14 return (X==aRhs.ValueX) && (Y==aRhs.ValueY);
15 }
16};
17
18int main(){
19 Class<double , 2 , 3> obj1;
20 Class<double , 5 , 1> obj2;
21 if(obj1 == obj2){
22 cout << "hoge" << endl;
23 }else{
24 cout << "piyo" << endl;
25 }
26
27 Class<double , 2 , 3> obj3;
28 if(obj1 == obj3){
29 cout << "hoge" << endl;
30 }else{
31 cout << "piyo" << endl;
32 }
33}
Tとint val;は目的が分からないので、使ってません。
operator==を下記のようにしても元のmain()関数だけなら動きますが、流石に意味がなさすぎと思うので関数テンプレートにしてみました。
C++
1 bool operator==(const Class<double, 5, 1>& aRhs)
2 {
3 return (X==aRhs.ValueX) && (Y==aRhs.ValueY);
4 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/29 16:57