|
48 / 37 / 14
Регистрация: 23.12.2015
Сообщений: 199
|
||||||
Смысл std::size_t а не size_t31.01.2022, 19:41. Показов 3311. Ответов 22
Метки нет (Все метки)
Здесь
Что наиболее быстро для попиксельного перекодирования? Есть ли стандартные функции? обсуждали пример профессионального кода (исходники библиотеки SFML) https://github.com/SFML/SFML/b... e.cpp#L303 В нем есть например строка for (std::size_t y = 0; y < m_size.y; ++y) В ней все очевидно, кроме выделенного. В чем смысл так писать? Если скажем std::string компилится когда подключен "его" инклуд, а вот string только если ранее подключено пространство имен std, и есть неочевидные вопросы - что лучше, но это хоть относительно понятно, "что и о чем думать". А почему вообще в языке существует std::size_t если size_t это внебиблиотечный целочисленный тип, и можно же писать просто size_t, это годится и без подключения std? https://www.sfml-dev.org/docum... eoMode.php Ранее в документации SFML той же видел такой код
0
|
||||||
| 31.01.2022, 19:41 | |
|
Ответы с готовыми решениями:
22
size_t и npos |
|
Любитель чаепитий
|
||||||||||||
| 31.01.2022, 20:08 | ||||||||||||
и это скорее size_t добавлен в библиотеку с++, а не наоборот. std::size_t само собой разумеющийся в с++.
0
|
||||||||||||
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,176
|
|||
| 31.01.2022, 20:13 | |||
|
И <string> нужно подключать в любом случае.std::size_t - это именно библиотечный тип, объявленный именно в стандартных заголовках. Ничего "внебиблиотечного" в нем нет.Все имена, объявленные в "сишных" загловках, вроде <cstdlib>, находятся в пространстве имен std. То есть объявляется там именно std::size_t. Но по ряду причин "сишным" загловкам разрешается опционально дополнительно объявлять эти же имена в глобальном пространстве имен.То есть std::size_t гарантированно есть всегда (посде подключения одного из требуемых заголовков). А вот наличия ::size_t совсем не гарантируется. Потому и принято писать именно std::size_t.P.S. Со "старинными" заголовками, вроде <stdlib.h> ситуация обратная: гарантируется ::size_t, опционально может быть std::size_t. Но включение "старинных" заголовков в С++ является deprecated.Ваш код по ссылке включает <cstring>. Значит он должен работаь именно с std::size_t.
1
|
|||
|
48 / 37 / 14
Регистрация: 23.12.2015
Сообщений: 199
|
|||
| 31.01.2022, 20:17 [ТС] | |||
|
using namespace std; или аналогичное написано, это назвал "подключено пространство имен"? Добавлено через 1 минуту
0
|
|||
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,176
|
|
| 31.01.2022, 20:19 | |
|
1
|
|
|
48 / 37 / 14
Регистрация: 23.12.2015
Сообщений: 199
|
|
| 31.01.2022, 20:22 [ТС] | |
|
Ну да, в принципе конечно можно для std::size_t ввести через define или typedef псевдоним какой по эн причин выберу, но гм - идеал плюсов что, чтобы и std::int и std::char надо было писать?
0
|
|
|
48 / 37 / 14
Регистрация: 23.12.2015
Сообщений: 199
|
|
| 31.01.2022, 20:28 [ТС] | |
|
GbaLog-, TheCalligrapher, Ну и да, мне в голову не приходило, что size_t может быть объявлен где-то в инклудах, думал, что раз целочисленный - то по определению на уровне самого языка(((
Буду знать, но это грустно(((
0
|
|
|
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
|
||
| 31.01.2022, 20:31 | ||
std::size_t чётко определённый задокументировнный тип, тогда же как size_t в каждом конкретном случае может оказаться чем угодно.
0
|
||
|
Любитель чаепитий
|
||
| 31.01.2022, 20:38 | ||
|
http://eel.is/c++draft/cstddef.syn#1 то бишь std::size_t - это тот же size_t, только в пространстве имён std.
0
|
||
|
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
|
||
| 31.01.2022, 20:45 | ||
std::, то за пояснениями идёшь в документацию. А когда видишь вроде бы то же, но без std::, существует ненулевая вероятность, что это просто такое же имя для чего-то другого. Ведь никто не вынуждает включать стандартные заголовки и никто не мешает определить под известным именем какой-то свой тип.
0
|
||
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,176
|
||
| 31.01.2022, 20:53 | ||
|
В С++ имена типов из стандартной библиотеки являются зарезервированными независимо от того, включены ли соответствующие стандартные заголовки. Этим С++ отличается от С. Также http://eel.is/c++draft/extern.types: "For each type T from the C standard library, the types ::T and std::T are reserved to the implementation and, when defined,::T shall be identical to std::T."
1
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 01.02.2022, 00:46 | |
|
Ajir, Люди хотят управлять. Вот и плодят сущности без счета...
0
|
|
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,265
|
|
| 01.02.2022, 09:24 | |
|
Есть две концепции:
1. Сделать программирование как можно проще, что-бы любой новичок пришёл и разобрался. 2. Максимально всё запутать, что-бы не совались со "свиным рылом в калашный ряд".
0
|
|
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
|
| 01.02.2022, 09:45 | |
|
1
|
|
|
94 / 92 / 18
Регистрация: 10.03.2017
Сообщений: 306
|
|
| 01.02.2022, 15:15 | |
|
0
|
|
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,265
|
|
| 01.02.2022, 21:39 | |
|
Да тот же size_t - смысл один (целое число), а названий много для обозначения одного и того же.
Template мне встречалось - вызывается функция, а какая, из кода непонятно. Нужно трассировать программу, что-бы понять как и что работает. Ну и всё такое. Сделать сложно там, где можно сделать просто.
0
|
|
|
Заблокирован
|
||||
| 02.02.2022, 02:58 | ||||
![]() Добавлено через 3 минуты Недавно писал простенькую программу на С++\CLI, правила там те же что и в С#. Так там банально нельзя сделать копию объекта. Нужен целый вагон приблуд писать. ![]() Если не знать возможностей и свободы С++, то может оно и ничего, хотя я сильно сомневаюсь. Добавлено через 15 секунд Недавно писал простенькую программу на С++\CLI, правила там те же что и в С#. Так там банально нельзя сделать копию объекта. Нужен целый вагон приблуд писать. ![]() Если не знать возможностей и свободы С++, то может оно и ничего, хотя я сильно сомневаюсь.
0
|
||||
| 02.02.2022, 02:58 | |
|
Помогаю со студенческими работами здесь
20
size_t в операторе for uint32, size_t и подобные им А где size_t декларирован? Что такое Size_t Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|