2014-11-29, 03:32
  #1
Medlem
JKaneds avatar
Jag har suttit och klurat ett tag men kommer inte fram till vad koden stegvis gör; resultatet är uppenbart när koden exekveras, men varför?
Kan någon hjälpa mig förstå?

Kod: http://ideone.com/q18lQ0

Kod för den som inte vill klicka:
Citera
2014-12-01, 22:45
  #2
Medlem
EnMorots avatar
Om du byter ut ettona och l:en mot vettigare namn så är det lättare att se vad den gör. Till exempel så här:

[PHP]#include <iostream>

std:stream dest(std::cout.rdbuf());

template <typename Stream, typename Value>
void output(Stream & stream, Value const& value)
{
stream << value;
}

char data[] = "\n!dfloUHraWeKoqS(lP$ )bzJ%l";

template <int offset>
void process_data()
{
output(dest, data[offset]);
process_data<!(offset % 2) ? (offset / 2) : ((3 * offset + 1) / 2)>();
}

template<>
void process_data<1>()
{
output(dest, data[1]);
output(dest, data[0]);
}

int main()
{
process_data<7>();
}
[/PHP]
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in