FizzBuzzWoofFooBar - follow-up
Here are some things I see that could help you improve your code. 

Provide some guidance for the user

The user of the program might not know that this is expecting a numeric argument.  Instead of throwing an exception (and by the way, neither atoi nor std::atoi throw), you might instead simply check for the number of arguments like this:

if (argc &lt; 2) {
    std::cout &lt;&lt; "Usage: " &lt;&lt; argv[0] &lt;&lt; " maxint\n";
    return 0;
}


Provide a reasonable default argument

As you've noted in your comments, a reasonable default would be the product of all of the numbers.  That is, 3 * 5 * 7 * 11 * 13, but that's actually 15015 and not 15016 as your comments indicate.  Why not let the computer supply that?  Here's one way to do that:

const static int defaultMax = std::accumulate(
        FizzDict.cbegin(), 
        FizzDict.cend(), 
        1, 
        [](int a, const std::pair&lt;const int, std::basic_string&lt;char&gt; &gt;&amp; b){ 
            return a*b.first; 
        }
      );
iMax = defaultMax;
if (argc &gt; 1)
    iMax = std::stoi(argv[1]);

for (int i = 1; i &lt;= iMax; ++i)
{
    printString(FizzBuzzer(i, FizzDict));
}


Note that the lambda could be shortened by making the second argument decltype(*FizzDict.cbegin()) b but we still need to know that it's a std::pair so that we can get the first element (integer), so it's not clear that it's really a win.

Separate interface from implementation

The interface goes into a header file and the implementation (that is, everything that actually emits bytes including all functions and data) should be in a separate .cpp file.  The reason is that you might have multiple source files including the .h file but only one instance of the corresponding .cpp file.  In other words, split your existing FizzBuzz.h file into a .h file and a .cpp file.

Make sure you have all required #includes

The code uses atoi but doesn't #include &lt;cstdlib&gt;.  Also, carefully consider which #includes are part of the interface (and belong in the .h file) and which are part of the implementation per the above advice.

Encapsulate helper functions within a class

Right now, there's probably little reason to use ifEmpty or checkModZero outside the context of your FizzBuzzer.  To that end, you could make those private member functions of a FizzBuzzer class and have your FizzBuzzer function be a public member function instead.  I'd probably either have the FizzDict map be a static member of that class or maybe an argument to the constructor.