C++ Logo

STD-DISCUSSION

Advanced search

Subject: Re: extremely long compile time with large number of string literals
From: Marcin Jaczewski (marcinjaczewski86_at_[hidden])
Date: 2020-07-10 03:26:35


pt., 10 lip 2020 o 08:26 Artur Czajkowski <atch.cpp_at_[hidden]> napisał(a):

> @Marcin Jaczewski <marcinjaczewski86_at_[hidden]>
> I'm not talking about putting limits on compilation time. I'm talking
> about introducing constraints in a form of Big O notation with regards to
> time complexity that needs to be met by compiler implementer in order to
> conform to the standard.
>
>
>
Big O notation will give you nothing, this could be the same case as
`std::map` and `std::vector`, with one have better big O guarantees and
with one you should use?
And again you ignored the fact that I show you an example when putting any
restriction on complexity you prevent compiler optimizations (if it have a
bigger than given O haractersitic).
Another important question is how you define this `n` in `O(n)`? Number
characters in source file? Tokens? Classes?
This is why I suggest putting hard limits on users, because with them
everything could be described as very "fat" `O(1)`.

Btw could you reply to my email, not to some random one? Or at least put a
proper quote of its text.

> On Thu, Jul 9, 2020 at 11:34 PM Mandeep Sandhu via Std-Discussion <
> std-discussion_at_[hidden]> wrote:
>
>> >
>> > 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
>> --
>> Std-Discussion mailing list
>> Std-Discussion_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/std-discussion
>>
>
>
> --
>
>
> Best regards
> *Artur Czajkowski*
>
> https://marketplace.visualstudio.com/items?itemName=GitAtomic.GitAtomic
>
>



STD-DISCUSSION list run by std-discussion-owner@lists.isocpp.org

Older Archives on Google Groups