Tupla C ++ vs Struct

Existe alguma diferença entre usar umstd::tuple e um somente para dadosstruct?

typedef std::tuple<int, double, bool> foo_t;

struct bar_t {
    int id;
    double value;
    bool dirty;
}

Pelo que encontrei on-line, descobri que há duas grandes diferenças: ostruct é mais legível, enquanto otuple possui muitas funções genéricas que podem ser usadas. Deve haver alguma diferença significativa de desempenho? Além disso, o layout dos dados é compatível entre si (convertidos de forma intercambiável)?

questionAnswers(8)

yourAnswerToTheQuestion