gnuplot-iostream header file has errors

236 Views Asked by At

I downloaded gnuplot and am using it with https://github.com/dstahlke/gnuplot-iostream. I have copied all the code from gnuplot-iostream into my own header file but I am getting the following error:

Error (active)  E2783   expected a comma (the one-argument version of static_assert is not enabled in this mode)    

Below is the code that is causing this error:

static_assert(!is_like_stl_container<int>); // this line here


template <typename T, typename = void>
static constexpr bool is_like_stl_container2 = false;

template <typename T>
static constexpr bool is_like_stl_container2<T, std::void_t<
    decltype(begin(std::declval<T>())),
    decltype(end(std::declval<T>()))
    >> = !is_like_stl_container<T> && !dont_treat_as_stl_container<T>;


template <typename T>
static constexpr bool is_boost_tuple_nulltype =
    std::is_same_v<T, boost::tuples::null_type>;

static_assert(is_boost_tuple_nulltype<boost::tuples::null_type>);

template <typename T, typename = void>
static constexpr bool is_boost_tuple = false;

template <typename T>
static constexpr bool is_boost_tuple<T, std::void_t<
    typename T::head_type,
    typename T::tail_type
    >> = is_boost_tuple<typename T::tail_type> || is_boost_tuple_nulltype<typename T::tail_type>;

static_assert(is_boost_tuple<boost::tuple<int>>); // this line here
static_assert(is_boost_tuple<boost::tuple<int, int>>); // this line here
static_assert(!is_boost_tuple<std::tuple<int>>); // this line here
static_assert(!is_boost_tuple<std::tuple<int, int>>); // this line here

My apologies if this is a "newbish" question. I am very new to gnuplot and c++ in general. Thank you!

1

There are 1 best solutions below

1
On

The one argument static_assert appeared in c++17. See https://en.cppreference.com/w/cpp/language/static_assert

It is likely you haven't turned on c++17 features in your compiler.