fork download
  1. #include <iostream>
  2.  
  3.  
  4. #define PRINT_TRACE(STR) \
  5. std::cout << __FILE__ << ":" << __LINE__ << ":" << STR << "\n";
  6.  
  7. template<size_t SZ>
  8. void LoopThrough(const int(&Item)[SZ])
  9. {
  10. PRINT_TRACE("Specialized version");
  11. for (size_t index = 0; index < SZ; ++index)
  12. {
  13. std::cout << Item[index] << "\n";
  14. }
  15. }
  16. /*
  17.  
  18.  
  19. template<typename Type, size_t SZ>
  20. void LoopThrough(const Type(&Item)[SZ])
  21. {
  22.   PRINT_TRACE("Generic version");
  23.   for (size_t index = 0; index < SZ; ++index)
  24.   {
  25.   std::cout << Item[index] << "\n";
  26.   }
  27. }
  28.  
  29.  
  30.  
  31. class Sample
  32. {
  33.   public:
  34.  
  35.   template<size_t SZ>
  36.   void LoopThrough(const int(&Item)[SZ])
  37.   {
  38.   PRINT_TRACE("Specialized version");
  39.   for (size_t index = 0; index < SZ; ++index)
  40.   {
  41.   std::cout << Item[index] << "\n";
  42.   }
  43.   }
  44.  
  45.   template<typename Type, size_t SZ>
  46.   void LoopThrough(const Type(&Item)[SZ])
  47.   {
  48.   PRINT_TRACE("Generic version");
  49.   for (size_t index = 0; index < SZ; ++index)
  50.   {
  51.   std::cout << Item[index] << "\n";
  52.   }
  53.   }
  54.  
  55.  
  56. };
  57.  
  58. */
  59. int main()
  60. {
  61. {
  62. int arr[] = { 1, 2 };
  63. LoopThrough(arr);
  64.  
  65. }
  66. }
  67.  
Success #stdin #stdout 0.02s 2680KB
stdin
Standard input is empty
stdout
prog.cpp:10:Specialized version
1
2