170 похожих чатов

Вот такой шаблон: template <typename T> struct type { static const int

i = 777; }

при каждом инстанцировании порождает новую статическую переменную i. А возможно ли сделать так, чтобы она была у всех инстансов одна?
Единственное решение, которой приходит на ум (ну, кроме глобальной переменной), это:
struct static_holder { static const int i = 777; }
template <typename T>
struct type : static_holder {}

15 ответов

0 просмотров

Можно от std::integral_contant наследоваться

d7d1cd- Автор вопроса
d7d1cd
А можно пример?

template <typename T> struct type : std::integral_constant<int, 777> {};

d7d1cd- Автор вопроса
Слава
template <typename T> struct type : std::integral_...

А как потом достать семерки из объекта type<T>?

Слава
::value

Ну либо придется еще юзинг дописать

d7d1cd- Автор вопроса
Слава
::value

Не, мне надо чтобы имя значимым, а не просто value. Чтобы было понятнее, я делаю аналог npos в std::string.

d7d1cd- Автор вопроса

У меня в реальном коде там статически лежит не int, а более "тяжелый" тип. Ну и в принципе, это константа. Она одна на всех и не зависит от шаблонных параметров. Поэтому возникает вопрос: "а зачем мне это на каждое инстанцирование"?

d7d1cd- Автор вопроса

В смысле какая? Вот такая: static const int i = 777;

d7d1cd- Автор вопроса
Alexander Karaev
Тяжёлый тип - какой?

Это std::array<char, X>. С размерностью X пока не определился. Но будет в пределах от 10 до 100.

d7d1cd- Автор вопроса
Denis P
она точно в классе должна лежать?

Надо иметь возможность делать так: auto i = type<int>::i;

d7d1cd
Надо иметь возможность делать так: auto i = type<i...

так если i везде одинаковая то зачем указывать тип?

d7d1cd- Автор вопроса
Denis P
так если i везде одинаковая то зачем указывать тип...

У type будут наследники (и не шаблонные тоже). К i обращение будет через них.

Похожие вопросы

Обсуждают сегодня

А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Вместо import и library придется писать importlib?
The Bird of Hermes
19
а как с таким борятся ? про термин стак тут мне пока не попадалось ghci> foldr (\(CotMD n ctM _) (mstep,pos) -> if ctM > mstep then (ctM, n) else (mstep, pos)) (0,0) $ take ...
Fedor
13
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
вот вопрос, вот про это type Events = [String] type Probs = [Double] у курта есть задание Если бы ваши типы Events и Probs были самостоятель­ ными типами данных, а не просто...
Fedor
8
А ещё docker можно к ассемблеру прикрутить. В целом, системы сборки это настолько несвязанная вещь... Это оффтоп, можно сказать, во всех чатах. Это просто проект, который помо...
КТ315
22
получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
сурсы: import std/asyncdispatch, std/httpclient, std/json, std/sequtils, std/strutils, std/unicode, std/unidecode, std/uri, uuid4, regex const GPT4_API...
Qtless Qtless
4
Раз пошла тема про XML... Delphi XE 10.4.2(но это не важно), XML Data Binding Несколько XSD. В основном содержатся include на расширения. Несколько Namespace, это важно. Бин...
Alexey Gavrilov
4
вот еще вопрос ошибка app/Main.hs:135:13: error: [GHC-83865] • Couldn't match type: MoveInfo -> Coords with: (Int, Int) Expected: Coords ...
Fedor
21
Карта сайта