История изменений
      
        Исправление
      AntonI,
      
        (текущая версия)
      :
    
template <int D, typename T=float> struct Matrix{
   T p[D*D];
   Matrix(){ /* тут мы по умолчанию делаем матрицу единичной. Это много где используется, но в __constant__ памяти такой объект разместить нельзя */  }
};
struct GlobalParams{
   Matrix<3> rotate;  // вот это в __constant__ не влезет, потому что нетривиальный конструктор
};
один из примеров.
      
        Исходная версия
      AntonI,
      :
    
template <int D, typename T=float> struct Matrix{
   T p[D*D];
   Matrix(){ /* тут мы по умолчанию делаем матрицу единичной. Это много где используется, но в __constant__ памяти такой объект разместить нельзя */  }
};
struct GlobalParams{
   Matrix<3> rotate;  // вот это в __constant__ не влезет, потому что нетривиальный конструктор
};