Семантика сравнения с типами std :: atomic

Я пытаюсь найти где семантика сравнения для типаT сstd::atomic определено.

Я знаю, что помимо встроенных специализаций для целочисленных типов,T может быть любымTriviallyCopyable тип. Но как такие операции, какcompare_and_exchange_X знать, каксравнить экземплярT?

Я полагаю, что они должны просто сделать побайтовое сравнение пользовательского объекта (например,memcmp) но я не вижу, где в стандарте это явно упоминается.

Итак, предположим, у меня есть:

struct foo
{
  std::uint64_t x;
  std::uint64_t y;
};

Как компилятор знает, как сравнивать дваstd::atomic<foo> случаи, когда я звонюstd::atomic<foo>::compare_and_exchange_weak()?

Ответы на вопрос(2)

Ваш ответ на вопрос