這似乎是一個Visual Studio問題。此代碼runs fine in gcc但未能在Visual Studio編譯:爲什麼我無法從decltype返回的value_type獲取bool值?
#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;
}
給出的錯誤是:
syntax error: missing '>' before identifier 'value'
您可以在線測試:http://webcompiler.cloudapp.net/
是否有這個或錯誤修復解決方法嗎?
你使用什麼編譯器? (似乎工作[海灣合作委員會6.1](http://coliru.stacked-crooked.com/a/69fbf1c430cf3e1a)) – milleniumbug
@milleniumbug不幸的是我在Visual Studio上似乎有一個錯誤:( –
@NathanOliver我'這是不是一個印刷錯誤,請重新打開。 –