0

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!

Richard
  • 23
  • 6

1 Answers1

1

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.

Captain Giraffe
  • 14,407
  • 6
  • 39
  • 67
  • 1
    Note that the makefile provided in the package explicitely contains the `-std=c++17` flag (+1). – Damien Mar 15 '22 at 16:28