Details

    Description

      https://en.cppreference.com/w/cpp/container/span

      This should be used instead of a such arguments T *ptr, size_t size, const std::vector<T> &v.

      Especially pointer and size pair is harmful: easy to use incorrect, hard to read the code.

      Class is non-owning! It's just a reference to something.

      Do not use it for strings! Another things exists for strings: https://en.cppreference.com/w/cpp/string/basic_string_view

      Suggestion to use are here https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

      Attachments

        Activity

          Looks good.
          I wonder why we could not use span<const char*>(column_names, i). Why would it be any different from an array of pointers to something else than char?

          I understood that the "not for strings" is referring to usage like span<char>(name, strlen(name)), but the example is an array of pointers to NUL-terminated strings.

          marko Marko Mäkelä added a comment - Looks good. I wonder why we could not use span<const char*>(column_names, i) . Why would it be any different from an array of pointers to something else than char ? I understood that the "not for strings" is referring to usage like span<char>(name, strlen(name)) , but the example is an array of pointers to NUL-terminated strings.

          > I wonder why we could not use span<const char*>(column_names, i). Why would it be any different from an array of pointers to something else than char?

          https://github.com/MariaDB/server/commit/dc9d18587fec459a32cdb5fd63454069d864d94f#r34441565

          > I understood that the "not for strings" is referring to usage like span<char>(name, strlen(name))

          Yes, exactly.

          kevg Eugene Kosov (Inactive) added a comment - > I wonder why we could not use span<const char*>(column_names, i). Why would it be any different from an array of pointers to something else than char? https://github.com/MariaDB/server/commit/dc9d18587fec459a32cdb5fd63454069d864d94f#r34441565 > I understood that the "not for strings" is referring to usage like span<char>(name, strlen(name)) Yes, exactly.

          Thanks, this is OK to push to 10.2, maybe after 10.2.27 has been released.

          marko Marko Mäkelä added a comment - Thanks, this is OK to push to 10.2, maybe after 10.2.27 has been released.

          People

            kevg Eugene Kosov (Inactive)
            kevg Eugene Kosov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.