//: C05:Conditionals.cpp
// Z knihy "Myslíme v jazyce C++, část 2" od Bruce Eckela a Chucka Allisona.
// (c) 1995-2004 MindView, Inc. Všechna práva vyhrazena.
// Přečtěte si podmínky používání zdrojových kódů umístěné v souboru 
// 'Licence.txt' dodávaném spolu s balíčkem kódu dostupným na www.MindView.net.
// Používá k výběru kódu podmínky v době překladu.
#include <iostream>
using namespace std;

template<bool podminka> struct Vyber {};

template<> class Vyber<true> {
  static void blok1() {
    cout << "Probíhá blok1\n";
  }
public:
  static void f() { blok1(); }
};

template<> class Vyber<false> {
  static void blok2() {
    cout << "Probíhá blok2\n";
  }
public:
  static void f() { blok2(); }
};

template<bool podminka> void spustit() {
  Vyber<podminka>::f();
}

int main() {
  spustit<sizeof(int) == 4>();
} ///:~
