Size: a a a

2020 March 09

A

Alex in pro.cxx
Спасибо. Я и использую современные IDE - Visual Studio 2019 и Qt Creator c clang  code model. Никак не помогает мне понять правильный синтаксис.
источник

A

Alex in pro.cxx
Pavel Kazakov
без template<> и должно быть:
template <typename T, auto id>
bool StorageIO<int>::write() noexcept {}

и вообще, да, используй современные IDE :)
не понимаю, почему так, разве template <> не является обязательным признаком специализации?
источник

PK

Pavel Kazakov in pro.cxx
у тебя итак явная специализация есть для StorageIO для инта
источник

PK

Pavel Kazakov in pro.cxx
для явной специализации метода внутри явной специализации класса еще один template<> избыточен
источник

IA

Igor Akhmetov in pro.cxx
Alex
не понимаю, почему так, разве template <> не является обязательным признаком специализации?
Storage<int> это конкретный класс а не шаблон, соответственно и шапка для функции в нем не нужна.
источник

A

Alex in pro.cxx
я не специализирую метод
источник

A

Alex in pro.cxx
Igor Akhmetov
Storage<int> это конкретный класс а не шаблон, соответственно и шапка для функции в нем не нужна.
о, вот так понятнее стало, спасибо!
источник

PK

Pavel Kazakov in pro.cxx
Alex
я не специализирую метод
это я погнал немного)) поинт в том, что StorageIO для инта  итак есть, поэтому "от него" не надо угловые скобки приклеивать
источник

PK

Pavel Kazakov in pro.cxx
если тебе нужны шаблоны, читай http://www.tmplbook.com/ -- второе издание не так давно вышло, там всё в деталях разжевано
источник

A

Alex in pro.cxx
благодарю.
Я часто пишу шаблоны, обычно таких простых вопросов не возникает, а вот с определением вне класса застопорился и примеров нагуглить не удалось.
источник

v

vehlwn in pro.cxx
Это безопасно использовать boost::hash от boost::thread::id? В доке такой специализации нет https://www.boost.org/doc/libs/1_72_0/doc/html/hash/reference.html#header.boost.container_hash.hash_hpp
Хотя в исходниках класса boost::thread::id есть перегрузка hash_value. Это может в будущем поменяться?
источник
2020 March 10

v

vehlwn in pro.cxx
>Objects of class boost::thread::id can be copied, and used as keys in associative containers: the full range of comparison operators is provided.
Что тут влечет boost::hash? comparison operators или associative container?
источник

ПК

Побитый Кирпич in pro.cxx
vehlwn
Это безопасно использовать boost::hash от boost::thread::id? В доке такой специализации нет https://www.boost.org/doc/libs/1_72_0/doc/html/hash/reference.html#header.boost.container_hash.hash_hpp
Хотя в исходниках класса boost::thread::id есть перегрузка hash_value. Это может в будущем поменяться?
В стд есть, значит можно, не поменяется
источник

IS

Iskander Saitbatalov in pro.cxx
Ради прикола выведи и посмотри, что случилось с source :) Он испортился, потому что ты плохо по памяти бежал. А почему нормально выводится - просто потому что тебе "повезло". Кстати, если ты выделяешь память под строку длиной 15 символов тебе нужно хранить 16 элементов - ты ведь сам чекаешь на конец строки, а память него не выделил.
источник

TS

Till Schneider in pro.cxx
с такими вопросами лучше в @supapro
источник

SS

Sergey Skvortsov in pro.cxx
Правда же, что gcc не прав?
https://godbolt.org/z/iEb2qo
источник

AT

Anatoly Tomilov in pro.cxx
вот так работает https://godbolt.org/z/iAoVJx
источник

AT

Anatoly Tomilov in pro.cxx
может быть каждый оператор (statement) должен иметь возможность быть вычисленным по пути constexpr?
источник

IA

Igor Akhmetov in pro.cxx
Sergey Skvortsov
Правда же, что gcc не прав?
https://godbolt.org/z/iEb2qo
Да, это проблема в gcc - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80061. Но throw в constexpr функции никогда не должен быть вычислен.
источник

SS

Sergey Skvortsov in pro.cxx
Anatoly Tomilov
может быть каждый оператор (statement) должен иметь возможность быть вычисленным по пути constexpr?
Да вроде нет такого требования
Даже в стандарте в примерах есть http://www.eel.is/c++draft/dcl.constexpr#6
источник