我用gcc版本4.9.2(Debian 4.9.2-10)编译了它,但它给了我一个看似无关的错误。
可能是编译器错误吗?
#include <type_traits>
#include <vector>
#include <iostream>
#include <iterator>
struct test_class {
bool B1 = std::is_convertible<std::output_iterator_tag, std::output_iterator_tag>::value; // error: invalid use of ‘::’
//static const bool B1 = std::is_convertible<std::output_iterator_tag, std::output_iterator_tag>::value; // works fine
//bool B1;
//test_class() : B1(std::is_convertible<std::output_iterator_tag, std::output_iterator_tag>::value) {} // works fine
};
int main() {
test_class a;
std::cout << a.B1;
}
编译通过:name @ machine:〜$ g ++ -std = c ++ 14 example.cpp
MSVC 2015编译得很好。