Информация об изменениях

Сообщение Re[2]: Именование нэймспэйсов от 02.10.2023 9:51

Изменено 02.10.2023 9:52 Sm0ke

Re[2]: Именование нэймспэйсов
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, Sm0ke, Вы писали:


S>>Привет

S>>помогите принять решение

V>Сам перешел от 3-го варианта к 1-му. Для меня стало намного удобнее. На практике длина имен с префиксом и с указанием пространства имен не отличается, по сути это тоже самое, но появились дополнительные плюсы:

V>- внутри подсистемы не нужно указывать префикс
V>- названия становятся короче из-за контекста
V>- часто в локальном контексте можно сделать using some_namespace и работать без префиксов.
V>- выбор названий подсистем стал понятнее и осмысленнее

V>У меня прижился первый вариант


В таком случае возможно для concat() будут отдельные определения, а не перегрузка
just::st::concat<>() для compile-time текста в параметрах шаблона (он уже написан)
just::str::concat() для run-time строк, если я однажды возьмусь их в либу добавлять
Кстати concat у меня работает с переменным числом параметров (можно больше двух)
Думал сперва его назвать implode() как в php

--

side test с перегрузкой функции:

#include <cstddef>

struct st {};

using index = std::ptrdiff_t;

template <st ... T> void fn() {}
template <index ... I> void fn() {}

int main ()
{
  fn<st{}>();
  fn<5>();
  return 0;
}
Re[2]: Именование нэймспэйсов
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, Sm0ke, Вы писали:


S>>Привет

S>>помогите принять решение

V>Сам перешел от 3-го варианта к 1-му. Для меня стало намного удобнее. На практике длина имен с префиксом и с указанием пространства имен не отличается, по сути это тоже самое, но появились дополнительные плюсы:

V>- внутри подсистемы не нужно указывать префикс
V>- названия становятся короче из-за контекста
V>- часто в локальном контексте можно сделать using some_namespace и работать без префиксов.
V>- выбор названий подсистем стал понятнее и осмысленнее

V>У меня прижился первый вариант


В таком случае возможно для concat() будут отдельные определения, а не перегрузка
just::st::concat<>() // для compile-time текста в параметрах шаблона (он уже написан)
just::str::concat() // для run-time строк, если я однажды возьмусь их в либу добавлять

Кстати concat у меня работает с переменным числом параметров (можно больше двух)
Думал сперва его назвать implode() как в php

--

side test с перегрузкой функции:

#include <cstddef>

struct st {};

using index = std::ptrdiff_t;

template <st ... T> void fn() {}
template <index ... I> void fn() {}

int main ()
{
  fn<st{}>();
  fn<5>();
  return 0;
}