 /// Specialized ascending, blocked -> blocked
 template <int BLOCK_THREADS, typename BlockRadixSort, int ITEMS_PER_THREAD, typename Key, typename Value>
 __device__ __forceinline__ void TestBlockSort(
-    BlockRadixSort::TempStorage &temp_storage,
+    typename BlockRadixSort::TempStorage &temp_storage,
     Key                         (&keys)[ITEMS_PER_THREAD],
     Value                       (&values)[ITEMS_PER_THREAD],
     Key                         *d_keys,



/**
 * Main
 */
int main(int argc, char** argv)
{

/// Specialized ascending, blocked -> striped
template <int BLOCK_THREADS, typename BlockRadixSort, int ITEMS_PER_THREAD, typename Key, typename Value>
__device__ __forceinline__ void TestBlockSort(
    typename BlockRadixSort::TempStorage &temp_storage,
    Key                         (&keys)[ITEMS_PER_THREAD],
    Value                       (&values)[ITEMS_PER_THREAD],
    Key                         *d_keys,
