Dies scheint ein Visual Studio-Problem zu sein. Dieser Code runs fine in gcc aber nicht in Visual Studio kompilieren:Warum kann ich den Bool-Wert nicht von einem Werttyp abrufen, der von decltype zurückgegeben wird?
#include <iostream>
#include <type_traits>
#include <typeinfo>
using namespace std;
true_type foo();
template <typename T>
struct bar{
using def = conditional_t<decltype(foo())::value, char, void>;
};
int main() {
cout << typeid(bar<int>::def).name() << endl;
cout << decltype(foo())::value << endl;
}
Der Fehler gegeben ist:
syntax error: missing '>' before identifier 'value'
Sie können testen, online unter: http://webcompiler.cloudapp.net/
Gibt es einen Bug-Fix für dieses oder ein Problemumgehung?
Welchen Compiler benutzen Sie? (scheint an [gcc 6.1] zu arbeiten (http://coliru.stacked-crooked.com/a/69fbf1c430cf3e1a)) – milleniumbug
@milleniumbug Leider bin ich auf Visual Studio, das scheint einen Fehler zu haben :( –
@NathanOliver I ' habe bearbeitet, das ist kein Tippfehler, bitte erneut öffnen –