Ich habe einige Probleme mit gcc 7.2. Ich habe diese Art CharakterzugGCC 7 nicht die richtige Typ Merkmal Spezialisierung
template<typename T>
struct audio_frame_channels {}
template<int N>
struct audio_frame_channels<std::array<float, N>> {
static constexpr auto value = N;
};
und ich benutze es dann wie folgt aus:
template<typename T>
auto redirect(T& buf) ->
ProcessData<audio_frame_channels<std::remove_reference_t<
decltype(buf[0])>>::value>;
Klirren 6 hat kein Problem mit diesem, aber gcc 7.2 beklagt, dass ‘value’ is not a member of ‘top1::audio::audio_frame_channels<std::array<float, 1> >’
Habe ich etwas falsch verstanden, oder ist das, was Sie auf experimentelle Compiler bekommen?
Edit: Obligatorisch godbolting: