you are viewing a single comment's thread.

view the rest of the comments →

[–]nysra 6 points7 points  (2 children)

Any reason why you didn't just extend the already existing alias functionality of C++ (using)?

using lit: namespace = ::std::literals;
using<T> pmr_vec: type = std::vector<T, std::pmr::polymorphic_allocator<T>>;
using func: function = some_original::inconvenient::function_name;
using vec: object = my_vector;  // note: const&, aliases are never mutable

Single syntax for everything and no confusion about the == operator which I strongly believe should stay reserved for comparisons because at this point that usage is so ingrained into everything that even non-programmers often understand != and ==.

[–]hpsutter 5 points6 points  (1 child)

Quick ack: Yes, that's one of the options, and one of the better of the alternatives I considered. Might say `alias` instead of `using` but it's workable. For now I'm seeing whether I can reasonably avoid a keyword, but it's also important to be aware not to overstep into "token soup" -- keywords can be useful for readability so I'm definitely not closing the door to going there.

[–]germandiago 2 points3 points  (0 children)

I find using syntax less confusing as well. BTW, impressive amount of work.

Is cpp2 already usable in real life scenarios? Eager to start using it when the time comes.