FizzBuzz: Difference between revisions

Content deleted Content added
Wodan58 (talk | contribs)
Wodan58 (talk | contribs)
Line 1,701:
=={{header|C++}}==
===minimal conditions===
<langsyntaxhighlight lang=cpp>#include <iostream>
#include <chrono>
 
Line 1,740:
return 0;
}
</syntaxhighlight>
</lang>
===with modulo===
<langsyntaxhighlight lang=cpp>#include <iostream>
 
using namespace std;
Line 1,759:
}
return 0;
}</langsyntaxhighlight>
===without modulo 15===
<langsyntaxhighlight lang=cpp>#include <iostream>
using namespace std;
 
Line 1,779:
}
return 0;
}</langsyntaxhighlight>
===without modulo===
Modulo can be expensive on some architectures.
<langsyntaxhighlight lang=cpp>#include <iostream>
 
int main()
Line 1,798:
return 0;
}
</syntaxhighlight>
</lang>
===using std::transform===
{{works with|C++11}}
<langsyntaxhighlight lang=cpp>#include <iostream>
#include <algorithm>
#include <vector>
Line 1,825:
 
return 0;
}</langsyntaxhighlight>
===metaprogramming===
Version computing FizzBuzz at compile time with metaprogramming:
<langsyntaxhighlight lang=cpp>#include <iostream>
 
template <int n, int m3, int m5>
Line 1,875:
fb_run<100> fb;
return 0;
}</langsyntaxhighlight>
===hardcore templates===
Compile with -ftemplate-depth-9000 -std=c++0x:
<langsyntaxhighlight lang=cpp>#include <iostream>
#include <string>
#include <cstdlib>
Line 2,041:
std::cout << mpl::c_str<FizzBuzz<n>::type>::value << std::endl;
return 0;
}</langsyntaxhighlight>
Note: it takes up lots of memory and takes several seconds to compile. To enable compilation for 7 < n <= 25, please, modify include/boost/mpl/limits/string.hpp BOOST_MPL_LIMIT_STRING_SIZE to 128 instead of 32).