He helped modify my original code. Well he posted modified code, but I never changed it. Sorry, realized how much of an jerk that sounded. Truth is that I just quickly did the code, throwing out all the rules just to get it coded fast. I wasn't expecting it to get revised so much due to it being so simple. I was perfectly happy with how it was done and moved on.
Yeah, I wasn't stressing over efficiency at that time. I just wanted to point out that you did deserve to receive credit as you had posted some mods to the code making it more efficient which was used in later revisions of the code.
test.cc:36:28: error: invalid operands to binary expression
('const value_type' (aka 'const sub_match<std::__1::__wrap_iter<const char *> >') and 'int')
Name = FirstName[match - 'A'] + LastName[match - 'A'];
~~~~~~~~ ^ ~~~
smatch::operator returns an std::sub_match, which is convertible to std::string, but certainly not to char.
Furthermore, on a typical name your regex matches just one, first, capital letter of the first name, which is placed into match (and also into match since that's the entire match), leaving  and  empty
I was able to get your program to work with this modification (using clang++/libc++, but it also runs with gcc if std::regex is replaced by boost::regex):