Как noexcept в C ++ меняет сборку?

Следующее должно работать до тех пор, пока вы привязаны ко всему, что реализует IEnumerable & lt; string & gt ;. Он привяжет столбец непосредственно к самой строке, а не к пути свойства этого строкового объекта.

<sdk:DataGridTextColumn Binding="{Binding}" />
1
задан Jonas Stein 26 June 2019 в 23:35
поделиться

1 ответ

Могут быть построены довольно простые примеры , которые напрямую связаны с деструкторами, а не с самоанализом статуса noexcept:

void a(int);
void b() noexcept;
void c(int i) {
  struct A {
    int i;
    ~A() {a(i);}
  } a={i};
  b();
  a.i=1;
}

Здесь noexcept позволяет инициализировать a в вызывающего абонента следует игнорировать, поскольку деструктор не может его наблюдать.

struct B {~B();};
void f();
void g() noexcept {
  B b1;
  f();
  B b2;
}

Здесь noexcept позволяет пропускать информацию кадра, необходимую в случае, если вызываемый абонент выбрасывает. Это зависит от (очень распространенного) решения не раскручивать стек при вызове std::terminate.

2
ответ дан Davis Herring 26 June 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: