#include <bitset>
#include <iomanip>
#include <iostream>
/*...*/
int main()
{
    const int n = 8;//How many bools you have
    std::cout << std::boolalpha; //Show bools as true/false
    unsigned long end = 1 << n;
    for(unsigned long x = 0; x < end; ++x) {
        std::bitset<n> combination(x);
        for (int i = 0; i < n; ++i)
            std::cout << std::setw(5) << combination[i] << "; ";
        std::cout << std::endl;
    }
}