前提
templata仮引数にdecltypeで取得した配列の型を渡したく,下記コードの①のように配列を指定したのですが,なぜか配列の全体サイズが取得される。
実現したいこと
- 下記コードの①のように,テンプレート仮引数にdeclttypeで取得した配列の型を渡して,メソッド内で配列の全体サイズではなく,配列の型を参照したいです。
- 下記コードの②のように,template仮引数で配列の型を渡す際,配列の前にアスタリスクを指定すると正しく型を取得できているようです。しかし,アスタリスクを指定すると成功する理由がわからず。可能でしたら,こちらの方もご教授いただければ幸いです。
何卒よろしくお願いいたします。
該当のソースコード
C++14
1// main.cpp 2#include <iostream> 3 4template <typename Type> 5void PrintDecltype (void) { 6 // 型の確認 7 std::cout << sizeof(Type) << std::endl; 8}
C++14
1// main.hpp 2#include "main.hpp" 3 4int main(){ 5 unsigned short usArray[10] = {}; 6 PrintDecltype<decltype(usArray)>(); // 20Byte ---① 7 PrintDecltype<decltype(*usArray)>();// 2Byte ---② 8 return 0; 9};
補足情報(FW/ツールのバージョンなど)
・mingw64

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/27 13:13