ExportXMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • 2
    • 🟦 Shard Catalog
    • None
    • None
    • None
    • None
    • None
    • None

      The class NamespaceString contains constants of type NamespaceString, which poses problems because they can't actually be defined in the class, because it's not complete at their point of definition. They can't be constexpr.

      The indirectness of the macro expansion mechanism also makes these constants difficult to work with for tools and agents. This was an annoyance a few times during the StringData to std::string_view migration.

      So we have this complex mechanism involving macros to define them properly. It's all quite unnecessary. The constants should just not be members of the class. They can be members of some other class or namespace defined UNDER the NamespaceString class.

       

      We should be able to get an AI to crank out a PR to just do a mass rename.

      Same issue exists for DatabaseName.

      As a matter of code health, we should not be defining constants of type T within class T, for any T.

            Assignee:
            Unassigned
            Reporter:
            Billy Donahue
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: