Size: a a a

2020 December 10

AF

Aidar Fattakhov in pro.cxx
-O3
источник

AF

Aidar Fattakhov in pro.cxx
и в компиль и в линкер
источник

AF

Aidar Fattakhov in pro.cxx
и lto тож вроде
источник

AG

Alex Garustovich in pro.cxx
а, эти, по дефолту стоит O2 сейчас, попробую O3
источник
2020 December 11

A

Alex in pro.cxx
Что происходит? Как это может быть, что на 64-битной платформе указатель имеет размер 16 байт и не влазит в size_t?

https://godbolt.org/z/363j6E

P. S. Нашёл, вопрос не редкий, надо было сначала погуглить) Не удаляю, может, кому-то интересно будет. Я такого не ожидал и раньше никогда не сталкивался.

http://lazarenko.me/wide-pointers/

https://stackoverflow.com/questions/13875786/pointers-to-members-representations/13875868#13875868
источник

VK

Valentin Kornienko in pro.cxx
Alex Garustovich
а, эти, по дефолту стоит O2 сейчас, попробую O3
Попробуйте Оs
источник

VK

Valentin Kornienko in pro.cxx
О3 может ещё больше увеличить размер бинаря.
источник

CD

Constantine Drozdov in pro.cxx
Alex
Что происходит? Как это может быть, что на 64-битной платформе указатель имеет размер 16 байт и не влазит в size_t?

https://godbolt.org/z/363j6E

P. S. Нашёл, вопрос не редкий, надо было сначала погуглить) Не удаляю, может, кому-то интересно будет. Я такого не ожидал и раньше никогда не сталкивался.

http://lazarenko.me/wide-pointers/

https://stackoverflow.com/questions/13875786/pointers-to-members-representations/13875868#13875868
Это не указатель, а указатель на функцию-член класса, он и размером в sizeof(void(*)()) + 2*sizeof(size_t) может быть, потому что содержит данные static_cast
источник

AS

Alex Sandrov in pro.cxx
Вопрос: можно ли в качестве ключа в коллекциях использовать смарт-поинтеры? Если да, увеличивает ли это счётчик? Т.е. есть гарантия сохранения объекта, который используется в качестве ключа?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Там есть требования на Key. Если условия соблюдены, можно
источник

АК

Александр Караев... in pro.cxx
Alex
Что происходит? Как это может быть, что на 64-битной платформе указатель имеет размер 16 байт и не влазит в size_t?

https://godbolt.org/z/363j6E

P. S. Нашёл, вопрос не редкий, надо было сначала погуглить) Не удаляю, может, кому-то интересно будет. Я такого не ожидал и раньше никогда не сталкивался.

http://lazarenko.me/wide-pointers/

https://stackoverflow.com/questions/13875786/pointers-to-members-representations/13875868#13875868
источник

AS

Alex Sandrov in pro.cxx
Artöm Bakri Al-Sarmini
Там есть требования на Key. Если условия соблюдены, можно
hash?
источник

АК

Александр Караев... in pro.cxx
Alex Sandrov
hash?
Да. Если хешер для умных указателей реализован (а std::hash реализован), можно хранить. И счетчик будет увеличен, конечно. Только ключом будет именно указатель, а не значение, на которое он указывает. По аналогии с std::make_shared<int>(5) != std::make_shared<int>(5)
источник

AS

Alex Sandrov in pro.cxx
Да, спасибо!
источник

Miss Очепятка... in pro.cxx
А сколько комитов в сутки вы делаете?
источник

@N

@urandon Nikita Khom... in pro.cxx
Miss Очепятка
А сколько комитов в сутки вы делаете?
p.s. флудилка в @fludpac
источник

e

eugene_steps in pro.cxx
Имею вызов printf из шаблона вроде такого:

template <typename ...Args>
void print_message (const char *format, Args&&... args)
{
 printf(format, std::forward<Args>(args)...);
}

Используем:
print_message("test %d %d", 5, 5);


И
error: format not a string literal, argument types not checked [-Werror=format-nonliteral]

Логично в общем-то, можно как-то из вариадика вызвать printf так или надо писать просто ... и устраивать всякие пляски с va* штуками?
источник

D

Danya in pro.cxx
eugene_steps
Имею вызов printf из шаблона вроде такого:

template <typename ...Args>
void print_message (const char *format, Args&&... args)
{
 printf(format, std::forward<Args>(args)...);
}

Используем:
print_message("test %d %d", 5, 5);


И
error: format not a string literal, argument types not checked [-Werror=format-nonliteral]

Логично в общем-то, можно как-то из вариадика вызвать printf так или надо писать просто ... и устраивать всякие пляски с va* штуками?
Так это варнинг, а не ошибка
источник

IM

Ivan Morozov in pro.cxx
Добрый вечер. Подскажите, пожалуйста, как избавиться от ошибки non-static member function must be called.
Задача: есть библиотека nlopt, там есть функция, в которую требуется передать функцию, которая будет использоваться при оптимизации.
У меня есть условный класс f, который содержит в себе эту функцию, которая использует приватные данные данного класса. При попытке передать ее в функцию данной библиотеки возникает эта ошибка. Подскажите, пожалуйста, как решить. Гугл не помог, к сожалению
источник

D

Danya in pro.cxx
eugene_steps
Имею вызов printf из шаблона вроде такого:

template <typename ...Args>
void print_message (const char *format, Args&&... args)
{
 printf(format, std::forward<Args>(args)...);
}

Используем:
print_message("test %d %d", 5, 5);


И
error: format not a string literal, argument types not checked [-Werror=format-nonliteral]

Логично в общем-то, можно как-то из вариадика вызвать printf так или надо писать просто ... и устраивать всякие пляски с va* штуками?
Но может лучше fmtlib?
источник