In pxr/exec/ef/dependencyCache.h :
class _Entry {
public:
...
void Invalidate() {
valid.store(std::memory_order_relaxed);
}
...
// Set to false when the entry is fully invalid.
std::atomic<bool> valid;
};
gcc 14.2 complains of no matching signature when Invalidate() calls valid.store(std::memory_order_relaxed) since according to:
https://en.cppreference.com/w/cpp/atomic/atomic/store.html
the signature since C++ 11 is:
void store( T desired, std::memory_order order = std::memory_order_seq_cst)
Changing Invalidate() to:
void Invalidate() {
valid.store(false, std::memory_order_relaxed);
}
allows the code to compile, and the comment // Set to false when the entry is fully invalid. seems to indicate that is the correct thing to do, but I know nothing of this code.
Also it seems that dependencyCache.{h,cpp} is only compiled under specific circumstances, I'm switching my build hardness from an ad-hoc Bash script to a Conan recipe, but I'm not clear which specific option I am passing to cmake which is forcing this code to get compiled.
In
pxr/exec/ef/dependencyCache.h:gcc 14.2 complains of no matching signature when
Invalidate()callsvalid.store(std::memory_order_relaxed)since according to:https://en.cppreference.com/w/cpp/atomic/atomic/store.html
the signature since C++ 11 is:
Changing
Invalidate()to:allows the code to compile, and the comment
// Set to false when the entry is fully invalid.seems to indicate that is the correct thing to do, but I know nothing of this code.Also it seems that
dependencyCache.{h,cpp}is only compiled under specific circumstances, I'm switching my build hardness from an ad-hoc Bash script to a Conan recipe, but I'm not clear which specific option I am passing to cmake which is forcing this code to get compiled.