language-lawyer
Dlaczego operator trójdzielny z przecinkami ocenia tylko jedno wyrażenie w przypadku rzeczywistym?
Obecnie uczę się C++ z książką C++ Primer i jednym z ćwiczeń w książce jest:]}
Wyjaśnij, co robi następujące wyrażenie: ... do umieszczania nawiasów wokół gałęzi true w ten sposób:
someValue ? (++x, ++y) : --x, --y;
Ale to wciąż wyniki w 11 10.
Wyświetlanie wskaźników null z % p jest niezdefiniowanym zachowaniem?
Czy wyświetlanie wskaźników null ze specyfikatorem Konwersji %p jest niezdefiniowanym zachowaniem?
#include <stdio.h>
... main(void) {
void *p = NULL;
printf("%p", p);
return 0;
}
Pytanie dotyczy standardu C, a nie implementacji C.
Zamieszanie dotyczące inicjalizacji tablicy w C
W języku C, jeśli zainicjalizujesz tablicę Tak:
int a[5] = {1,2};
Wtedy wszystkie elementy tablicy, które nie są zainicja ... rozumiem, dlaczego a[0] drukuje 1 zamiast 0? Czy to nieokreślone zachowanie?
Uwaga: to pytanie zostało zadane w wywiadzie.
Kiedy można uzyskać dostęp do wskaźnika do "martwego" obiektu?
Po pierwsze, dla wyjaśnienia, Jestem NIE mówiąc o dereferencji nieprawidłowych wskaźników!
Rozważ następujące dwa przykłady ...
Podczas gdy cytowałem wyżej standard C99, chciałbym wiedzieć, czy zachowanie różni się w którymkolwiek ze standardów C++.
Czy używanie lambda w plikach nagłówkowych może naruszać ODR?
Można zapisać w pliku nagłówkowym:
inline void f () { std::function<void ()> func = [] {}; }
Lub
class C { std::f ... uga próbka narusza ODR za każdym razem, czy tylko wtedy, gdy przynajmniej jeden konstruktor znajduje się w pliku nagłówkowym?
Przypisanie dodawania + = zachowanie w wyrażeniu
Ostatnio natknąłem się na to pytanie: assignment operator Chain understanding.
Odpowiadając na to pytanie zacząłem wątpić we ... 6.
Kiedy powinniśmy założyć, że a ' s wartość będzie odzwierciedlona w innych miejscach w wyrażeniu, a kiedy nie powinniśmy?
Czy std:: stoi jest rzeczywiście bezpieczny w użyciu?
Odbyłam z kimś wspaniałą rozmowę o upadkach std::stoi. Mówiąc wprost, używa std::strtol wewnętrznie i rzuca, jeśli zgłosi błą ... enie tego wyjątku. Czy mój dowód jest ważny, czy std::stoi nie gwarantuje odrzucenia tego wyjątku, gdy zostanie podany "abc"?
reinterpretacja pomiędzy char * i std:: uint8 t * - bezpieczna?
Teraz wszyscy czasami musimy pracować z danymi binarnymi. W C++ pracujemy z sekwencjami bajtów i od początku char był naszym ... implementowany jako Rozszerzony Typ unsigned integer i rozszerzone typy unsigned integer nie są zawarte w §3.10/10. Co teraz?
reinterpretacja rzutu tworzenie trywialnie domyślnego obiektu
Cppreference† stwierdza, że:
Obiekty z trywialnymi domyślnymi konstruktorami mogą być tworzone za pomocą reinterpret_cas ... loc: placement-new jest wymagana, aby formalnie wprowadzić nowy obiekt i uniknąć potencjalnego niezdefiniowanego zachowania.
Dlaczego wnioskowanie typu ogólnego Java 8 wybiera to przeciążenie?
Rozważ następujący program:
public class GenericTypeInference {
public static void main(String[] args) {
print ... e używając poziomu języka Java 7. Zachowanie było zgodne z Java 7. To było oczekiwane, ale nadal czułem potrzebę sprawdzenia.
Anonimowe typy wewnątrz lambda
W to pytanie , user @Holger dostarczył odpowiedź , która pokazuje nietypowe użycie anonimowych klas, o czym nie byłem świado ...
Czy rzeczywiście bezpieczne aby napisać kod w ten sposób?
jest na to jakaś skrótowa składnia, czy tylko na tyle nas stać?
Czy użycie if (0) do pominięcia sprawy w przełączniku powinno działać?
Mam sytuację, w której chciałbym, aby dla dwóch przypadków w instrukcji C++ switch oba wypadły do trzeciego przypadku. W szcz ... c
Próbowałem w C i C++ (oba z clang), i zrobił to samo.
Moje pytania brzmią: czy to poprawne C / C++? Ma robić to, co robi?
Dlaczego w Roslyn są klasy async state machines (a nie structs)?
Rozważmy tę bardzo prostą metodę asynchroniczną:
static async Task myMethodAsync()
{
await Task.Delay(500);
}
Kiedy ... arówno edycję, jak i kontynuację oraz lepszą wydajność w produkcji. Ciekawe rzeczy, Dziękuję wszystkim, którzy wzięli udział!
Dlaczego zachowanie std:: memcpy miałoby być niezdefiniowane dla obiektów, które nie są trywialnie Kopiowalne?
Z http://en.cppreference.com/w/cpp/string/byte/memcpy :
Jeśli obiekty nie są TriviallyCopyable (np. Skalary, tablice, ... ły program undefined. Zgadzam się jednak, że wydaje się, że w tym przypadku można ominąć UB i odpowiednio zmodyfikować CPP.
Zmienione reguły dla konstruktorów chronionych w C++17?
Mam ten przypadek testowy:
struct A{ protected: A(){} };
struct B: A{};
struct C: A{ C(){} };
struct D: A{ D() = default; } ... LITY or FITNESS FOR A PARTICULAR PURPOSE.
Czy ta zmiana zachowania jest częścią C++17 czy jest to błąd w obu kompilatorach?
Jaki jest typ literału null?
Dear all, ciekawe jaki jest typ null dosłowny w C#?
W języku Java literał null jest typu specjalnego null:
Istnieje rów ... rsja starego kumpla NULL), który jest typu std::nullptr_t.
Szukałem MSDN o C#, ale Specyfikacja nic na ten temat nie mówi.
Czy gwarantowana długość "long" wynosi co najmniej 32 bity?
Czytając Standard C++, zawsze rozumiałem, że rozmiary integral fundamental types w C++ były następujące:
sizeof(char) <= ... ual Plane
(2) zdefiniowane w <climits> jako:
LONG_MIN -2147483647 // -(2^31 - 1)
LONG_MAX +2147483647 // 2^31 - 1
Dziwne wyrażenie "- > * [] " w kodzie źródłowym C++ cpp.biblioteka Reacta
Oto fragment C++, który znalazłem w dokumentacji cpp.react library :
auto in = D::MakeVar(0);
auto op1 = in ->* [] (int ... h,height,depth) ->* [] (int w, int h, int d) {
return w * h * d;
};
Czy to poprawne C++11 (lub C++14)? Co to znaczy?
Klasy template specjalizacja częściowe porządkowanie i synteza funkcji
Zasady wyboru, która specjalizacja szablonu klasy jest preferowana, obejmują przepisanie specjalizacji na szablony funkcji i ... dzy 1 A 2. Ale dlaczego? Syntetyzowane szablony funkcji nie są niejednoznaczne. Jaka jest różnica między tymi dwoma sprawami?
Czy jest przydatna sprawa z użyciem instrukcji switch bez szelek?
[[3]}W H&S5 spotkałem się z "najbardziej dziwaczną" instrukcją przełączania (8.7.1, str. 277) nie używającą szelek.
Oto ... Nie tylko switch (i); (co jest legalne, ale NOP), ale za pomocą co najmniej dwóch etykiet case mających jakiś przydatny cel?