C++ Logo

std-discussion

Advanced search

Re: extremely long compile time with large number of string literals

From: Mandeep Sandhu <mandeepsandhu.chd_at_[hidden]>
Date: Thu, 9 Jul 2020 14:33:54 -0700
>
> Overload resolution. Try passing suffixed-string literals,
>
> const std::unordered_set<std::string> my_set ({"item1"s, "item2"s, ....});

I tried creating UDL strings like you suggested (but with a space
between the literal & s), but it doesn't compile for me.

A simple program like:
...
const unordered_set<string> myset ({ "a" s, "b" s, "c" s, });
int main()
{
  cout << "size of myset = " << myset.size() << endl;
}

Doesn't compile, I get the error:
...
error: expected ā€˜}ā€™ before ā€˜sā€™
    7 | const unordered_set<string> myset ({ "a" s, "b" s, "c" s, });

Maybe I'm doing it wrong (I haven't used UDLs before).

Thanks.
-mandeep

Received on 2020-07-09 16:37:20