Результаты поиска по запросу "language-lawyer"

3 ответа

.)

volatile Ключевое слово гарантирует, что чтение и запись имеют семантику получения и выпуска соответственно. Однако, это говорит что-нибудь о введенных чтениях или письмах? Например: volatile Thing something; volatile int aNumber; void Method() ...

1 ответ

Это исправлено в лязг ствола теперь :)

л по лямбда-захватам([Expr.prim.lambda.capture] / 5 [http://eel.is/c++draft/expr.prim.lambda#capture-5]) говорится, что Если идентификатор в простом захвате появляется как идентификатор объявления для параметра-объявления-объявления ...

1 ответ

@Justin Я искал "это не исключение" :)

я есть код, который требует от меня использовать*this, но я хочу, чтобы это было не иначе как дружелюбно struct foo; // Would actually be something with conditional noexcept void do_something(foo&); struct foo { void ...

ТОП публикаций

2 ответа

 а также

отрим следующую программу: template <class T> struct A { using X = typename T::X; }; template <class T, typename A<T>::X* = nullptr> void f(T, int); void f(...); template <class T> void g(T, int, typename A<T>::X* = nullptr); // # void g(...); ...

1 ответ

... на две категории диалектов, одна из которых не подходит для целей, связанных с низкоуровневым программированием, а другая поддерживает только ограниченную оптимизацию. Согласно Обоснованию C, Дух C включает в себя принцип «Не мешайте программисту делать то, что необходимо сделать». Оптимизация, основанная на идее, что программист не будет делать X, полезна только в тех случаях, когда программисту не нужно делать X. К сожалению, большинство аргументов об определенных поведениях полностью теряют это из виду.

ожет удивить некоторых кодеров, и, как ни удивительно, это невозможно реализоватьstd::vector без нестандартной поддержки компиляторов. Проблема, по сути, заключается в способности выполнять арифметику указателей на сырой области хранения. ...

2 ответа

среди реализаций, которые подходят для низкоуровневого программирования

артопределяет [http://eel.is/c++draft/basic.types#11]когда два типамакет-совместимый, Но я не вижу нигде в стандарте, каковы последствия, когда два типамакет-совместимый, Кажется, чтомакет-совместимый это определение, которое нигде не ...

1 ответ

timsong-cpp.github.io/cppwp/class.union#5

трите на этот код: struct A { short s; int i; }; struct B { short s; int i; }; union U { A a; B b; }; int fn() { U u; u.a.i = 1; return u.b.i; }Гарантируется ли это, чтоfn() возвращается1? Примечание: это дополнительный вопрос ...

2 ответа

@songyuanyao ты прав. cppreference не показывает ни ctor, ни руководства по выводам. Не проверял стандарт.

одом аргумента шаблона класса мы можем написать: std::less Fn;Однако G ++ 8.2 отклоняет этот код: #include <algorithm> #include <vector> #include <functional> int main() { std::vector v= { 1, 3, 2, 7, 5, 4 ...

2 ответа

Но кого это волнует? Это ужасная практика в любом случае.

ндарте C ++, в[Basic.lval] /11.6 [http://eel.is/c++draft/basic.lval#11.6] говорит: Если программа пытается получить доступ к сохраненному значению объекта через glvalue другого, чем один из следующих типов, поведение не определено: ...

1 ответ

Это также несколько помогает разработчикам компиляторов, потому что их внутреннее представление для шаблонов не должно поддерживать такую ​​ерунду.

вляется обоснованием temp.res # 8,3 [https://timsong-cpp.github.io/cppwp/temp.res#8.3] (8) Срок действия шаблона может быть проверен до любого экземпляра. [Примечание: Зная, какие имена являются именами типов, можно таким образом ...