質問編集履歴
1
ソース記載
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -13,4 +13,81 @@ | |
| 13 13 | 
             
            ここで疑問なのがこの<int>にはどういう役割や効果があるのか、という点です。
         | 
| 14 14 | 
             
            キャストでもなさそうですし・・・今まで関数名の後ろにつけるといった書き方をしたことがありません。
         | 
| 15 15 |  | 
| 16 | 
            -
            お分かりになる方がいらっしゃいましたら教えていただけると助かります。
         | 
| 16 | 
            +
            お分かりになる方がいらっしゃいましたら教えていただけると助かります。
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            追記
         | 
| 19 | 
            +
            本題とは直接関係ないかと思いソースを省略しましたが記載しました。
         | 
| 20 | 
            +
            環境はSaito Atsushiさんがおっしゃる通りVisual Studio 2015 for Windows DesktopでMicrosoft::VisualStudio::CppUnitTestFrameworkを使用しています。
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            ```C++
         | 
| 23 | 
            +
            class ClassA{
         | 
| 24 | 
            +
              public:
         | 
| 25 | 
            +
                double dArray[RAW][COL];
         | 
| 26 | 
            +
                unsigned short usArray[RAW][COL];
         | 
| 27 | 
            +
                double dVal;
         | 
| 28 | 
            +
                unsigned short usVal;
         | 
| 29 | 
            +
             | 
| 30 | 
            +
             public:
         | 
| 31 | 
            +
                Reset();
         | 
| 32 | 
            +
            };
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            ```
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            ```C++
         | 
| 37 | 
            +
            namespace TestClassA{
         | 
| 38 | 
            +
              TEST_CLASS(TestClassAReset){
         | 
| 39 | 
            +
              public:
         | 
| 40 | 
            +
                TEST_METHOD(Reset_dArray)
         | 
| 41 | 
            +
                TEST_METHOD(Reset_usArray)
         | 
| 42 | 
            +
                TEST_METHOD(Reset_dVal)
         | 
| 43 | 
            +
                TEST_METHOD(Reset_usVal)
         | 
| 44 | 
            +
             | 
| 45 | 
            +
              private:
         | 
| 46 | 
            +
                template <typename T> void TestArrayReset(T* arr, int raw, int col);
         | 
| 47 | 
            +
                template <typename T> void TestArrayMatch(T* arr, int raw, int col, T compVal);
         | 
| 48 | 
            +
                template <typename T> void TestValReset(T val);
         | 
| 49 | 
            +
                template <typename T> void TestValMatch(T val, T comVal);
         | 
| 50 | 
            +
             | 
| 51 | 
            +
              private:
         | 
| 52 | 
            +
                ClassA* m_cl;
         | 
| 53 | 
            +
              };
         | 
| 54 | 
            +
            }
         | 
| 55 | 
            +
            ```
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            ```C++
         | 
| 58 | 
            +
            void TestClassAReset::Reset_dArray(){
         | 
| 59 | 
            +
              m_cl = new ClassA();
         | 
| 60 | 
            +
              TestArrayReset(&m_cl->dArray[0][0], RAW, COL);
         | 
| 61 | 
            +
              delete m_cl;
         | 
| 62 | 
            +
            }
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            void TestClassAReset::Reset_dVal(){
         | 
| 65 | 
            +
              // new, delete省略
         | 
| 66 | 
            +
              TestArrayVal(&m_cl->dVal);
         | 
| 67 | 
            +
            }
         | 
| 68 | 
            +
            // Reset_usArray, Reset_usValは引数にusArray, usValを使用すること以外は同様のため省略
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            template <typename T> void TestClassAReset::TestArrayReset(T* arr, int raw, int col){
         | 
| 71 | 
            +
              // m_clの値を0以外で初期化
         | 
| 72 | 
            +
              m_cl->Reset();
         | 
| 73 | 
            +
              TestArrayMatch(arr, raw, col, (T)0);
         | 
| 74 | 
            +
            }
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            template <typename T> void TestClassAReset::TestArrayReset(T* arr, int raw, int col, T compVal){
         | 
| 77 | 
            +
              for(int i = 0; i < RAW; i++){
         | 
| 78 | 
            +
                for(int j = 0; j < COL; j++){
         | 
| 79 | 
            +
                  Assert::AreEqual(comVal, arr[i*COL + j]);   // エラーになる
         | 
| 80 | 
            +
                }
         | 
| 81 | 
            +
              }
         | 
| 82 | 
            +
            }
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            template <typename T> void TestClassAReset::TestValReset(T val){
         | 
| 85 | 
            +
              // m_clの値を0以外で初期化
         | 
| 86 | 
            +
              m_cl->Reset();
         | 
| 87 | 
            +
              TestValMatch(val, (T)0);
         | 
| 88 | 
            +
            }
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            template <typename T> void TestClassAReset::TestValMath(T val, T compVal){
         | 
| 91 | 
            +
              Assert::AreEqual(comVal, val);   // エラーにならない
         | 
| 92 | 
            +
            }
         | 
| 93 | 
            +
            ```
         | 
