You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ gcc --version
gcc.exe (Rev5, Built by MSYS2 project) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Below is the command line and output.
$ g++ -std=c++2a -pedantic -Wall -Wextra -Werror -O3 -Isingle-header/ -o example example.cpp && ./example
In file included from example.cpp:4:
single-header/sql.hpp: In static member function 'static constexpr auto sql::query<Str, Schemas>::parse_negation()':
single-header/sql.hpp:1514:51: error: 'cexpr::string<char, 4>' is not a valid type for a template non-type parameter because it is not structural
1514 | using node = sql::operation<"NOT", Row, ranode>;
| ^
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 4>::size_' is not public
149 | std::size_t size_;
| ^~~~~
single-header/sql.hpp:1514:23: error: '<expression error>' in namespace 'sql' does not name a type
1514 | using node = sql::operation<"NOT", Row, ranode>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
single-header/sql.hpp:1516:30: error: 'node' was not declared in this scope; did you mean 'ranode'?
1516 | return context<next.pos, node>{};
| ^~~~
| ranode
single-header/sql.hpp:1516:34: error: template argument 2 is invalid
1516 | return context<next.pos, node>{};
| ^
single-header/sql.hpp: In static member function 'static constexpr auto sql::query<Str, Schemas>::recurse_and()':
single-header/sql.hpp:1537:72: error: 'cexpr::string<char, 4>' is not a valid type for a template non-type parameter because it is not structural
1537 | using node = sql::operation<"AND", Row, typename Left::node, ranode>;
| ^
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 4>::size_' is not public
149 | std::size_t size_;
| ^~~~~
single-header/sql.hpp:1537:23: error: '<expression error>' in namespace 'sql' does not name a type
1537 | using node = sql::operation<"AND", Row, typename Left::node, ranode>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
single-header/sql.hpp:1539:42: error: 'node' was not declared in this scope; did you mean 'ranode'?
1539 | return recurse_and<context<next.pos, node>, Row>();
| ^~~~
| ranode
single-header/sql.hpp:1539:46: error: template argument 2 is invalid
1539 | return recurse_and<context<next.pos, node>, Row>();
| ^
single-header/sql.hpp: In static member function 'static constexpr auto sql::query<Str, Schemas>::recurse_or()':
single-header/sql.hpp:1565:71: error: 'cexpr::string<char, 3>' is not a valid type for a template non-type parameter because it is not structural
1565 | using node = sql::operation<"OR", Row, typename Left::node, ranode>;
| ^
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 3>::size_' is not public
149 | std::size_t size_;
| ^~~~~
single-header/sql.hpp:1565:23: error: '<expression error>' in namespace 'sql' does not name a type
1565 | using node = sql::operation<"OR", Row, typename Left::node, ranode>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
single-header/sql.hpp:1567:41: error: 'node' was not declared in this scope; did you mean 'ranode'?
1567 | return recurse_or<context<next.pos, node>, Row>();
| ^~~~
| ranode
single-header/sql.hpp:1567:45: error: template argument 2 is invalid
1567 | return recurse_or<context<next.pos, node>, Row>();
| ^
example.cpp: At global scope:
example.cpp:8:30: error: 'cexpr::string<char, 6>' is not a valid type for a template non-type parameter because it is not structural
8 | "books", sql::index<"title">,
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 6>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:9:35: error: 'cexpr::string<char, 6>' is not a valid type for a template non-type parameter because it is not structural
9 | sql::column<"title", std::string>,
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 6>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:10:35: error: 'cexpr::string<char, 6>' is not a valid type for a template non-type parameter because it is not structural
10 | sql::column<"genre", std::string>,
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 6>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:11:31: error: 'cexpr::string<char, 5>' is not a valid type for a template non-type parameter because it is not structural
11 | sql::column<"year", unsigned>,
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 5>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:12:32: error: 'cexpr::string<char, 6>' is not a valid type for a template non-type parameter because it is not structural
12 | sql::column<"pages", unsigned>
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 6>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:13:2: error: 'cexpr::string<char, 6>' is not a valid type for a template non-type parameter because it is not structural
13 | >;
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 6>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:13:2: error: template argument 2 is invalid
13 | >;
| ^
example.cpp:13:2: error: template argument 3 is invalid
example.cpp:13:2: error: template argument 4 is invalid
example.cpp:13:2: error: template argument 5 is invalid
example.cpp:13:2: error: template argument 6 is invalid
example.cpp:7:7: error: '<expression error>' in namespace 'sql' does not name a type
7 | sql::schema<
| ^~~~~~~
8 | "books", sql::index<"title">,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 | sql::column<"title", std::string>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 | sql::column<"genre", std::string>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11 | sql::column<"year", unsigned>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 | sql::column<"pages", unsigned>
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13 | >;
| ~
example.cpp:18:35: error: 'cexpr::string<char, 6>' is not a valid type for a template non-type parameter because it is not structural
18 | sql::column<"title", std::string>,
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 6>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:19:34: error: 'cexpr::string<char, 5>' is not a valid type for a template non-type parameter because it is not structural
19 | sql::column<"name", std::string>
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 5>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:20:2: error: 'cexpr::string<char, 9>' is not a valid type for a template non-type parameter because it is not structural
20 | >;
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 9>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:20:2: error: template argument 3 is invalid
20 | >;
| ^
example.cpp:20:2: error: template argument 4 is invalid
example.cpp:16:7: error: '<expression error>' in namespace 'sql' does not name a type
16 | sql::schema<
| ^~~~~~~
17 | "authored", sql::index<>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~
18 | sql::column<"title", std::string>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19 | sql::column<"name", std::string>
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 | >;
| ~
example.cpp:27:3: error: 'books' was not declared in this scope
27 | books, authored
| ^~~~~
example.cpp:27:10: error: 'authored' was not declared in this scope
27 | books, authored
| ^~~~~~~~
example.cpp:28:2: error: 'cexpr::string<char, 193>' is not a valid type for a template non-type parameter because it is not structural
28 | >;
| ^
In file included from example.cpp:4:
single-header/sql.hpp:149:15: note: 'cexpr::string<char, 193>::size_' is not public
149 | std::size_t size_;
| ^~~~~
example.cpp:28:2: error: template argument 2 is invalid
28 | >;
| ^
example.cpp:28:2: error: template argument 3 is invalid
example.cpp:23:7: error: '<expression error>' in namespace 'sql' does not name a type
23 | sql::query<
| ^~~~~~
24 | "SELECT title AS book, name AS author, year, pages "
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 | "FROM books NATURAL JOIN (SELECT * FROM authored WHERE name = \"Harlan Ellison\") "
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 | "WHERE year = 1967 OR year >= 1972 AND genre = \"science fiction\"",
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 | books, authored
| ~~~~~~~~~~~~~~~
28 | >;
| ~
example.cpp: In function 'int main()':
example.cpp:32:2: error: 'authored' was not declared in this scope
32 | authored a{ sql::load<authored>("tests/data/authored.tsv", '\t') };
| ^~~~~~~~
example.cpp:33:2: error: 'books' was not declared in this scope
33 | books b{ sql::load<books>("tests/data/books.tsv", '\t') };
| ^~~~~
example.cpp:35:7: error: 'query' was not declared in this scope; did you mean 'sql::query'?
35 | for (query q{ b, a }; auto const& [book, author, year, pages] : q)
| ^~~~~
| sql::query
In file included from example.cpp:4:
single-header/sql.hpp:1429:8: note: 'sql::query' declared here
1429 | class query
| ^~~~~
example.cpp:35:36: error: expected unqualified-id before '[' token
35 | for (query q{ b, a }; auto const& [book, author, year, pages] : q)
| ^
example.cpp:35:67: error: expected ';' before ')' token
35 | for (query q{ b, a }; auto const& [book, author, year, pages] : q)
| ^
| ;
example.cpp:37:16: error: 'book' was not declared in this scope; did you mean 'bool'?
37 | std::cout << book << '\t' << author << '\t' << year << '\t' << pages << '\n';
| ^~~~
| bool
example.cpp:37:32: error: 'author' was not declared in this scope; did you mean 'auto'?
37 | std::cout << book << '\t' << author << '\t' << year << '\t' << pages << '\n';
| ^~~~~~
| auto
example.cpp:37:50: error: 'year' was not declared in this scope
37 | std::cout << book << '\t' << author << '\t' << year << '\t' << pages << '\n';
| ^~~~
example.cpp:37:66: error: 'pages' was not declared in this scope
37 | std::cout << book << '\t' << author << '\t' << year << '\t' << pages << '\n';
| ^~~~~
The text was updated successfully, but these errors were encountered:
error: 'sql::{anonymous}::value<double>' is not a valid type for a template non-type parameter because it is not structural
using node = sql::constant<sql::convert<val>(name), Row>
^
note: 'sql::{anonymous}::value<double>::val' has a non-structural type
The
example.cpp
fails to compile.Here is my compiler's info.
Below is the command line and output.
The text was updated successfully, but these errors were encountered: