zubax / legilimens Goto Github PK
View Code? Open in Web Editor NEWSingle-header tracing library for hard real-time embedded systems
License: MIT License
Single-header tracing library for hard real-time embedded systems
License: MIT License
I failed at compiling both from the command line and in VSCode on my Mac. I'm sure I'm missing a step, but here's my output:
> Executing task: make -j10 <
Scanning dependencies of target legilimens_test
[ 33%] Building CXX object CMakeFiles/legilimens_test.dir/test.cpp.o
[ 66%] Building CXX object CMakeFiles/legilimens_test.dir/test_main.cpp.o
In file included from /Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:32:
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:395:78: error: implicit instantiation of undefined template 'std::__1::array<long long, 1000>'
using ContainerElementType = std::decay_t<decltype(*std::declval<Container>().data())>;
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:398:53: note: in instantiation of template type alias 'ContainerElementType' requested here
constexpr std::size_t ContainerElementSize = sizeof(ContainerElementType<Container>);
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:450:15: note: in instantiation of variable template specialization 'legilimens::impl_::ContainerElementSize<std::__1::array<long long, 1000> >'
requested here
static_assert(ContainerElementSize<std::array<std::int64_t, 1000>> == 8);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tuple:223:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from /Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:32:
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:450:15: error: static_assert expression is not an integral constant expression
static_assert(ContainerElementSize<std::array<std::int64_t, 1000>> == 8);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:395:78: error: implicit instantiation of undefined template 'std::__1::array<unsigned short, 100>'
using ContainerElementType = std::decay_t<decltype(*std::declval<Container>().data())>;
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:398:53: note: in instantiation of template type alias 'ContainerElementType' requested here
constexpr std::size_t ContainerElementSize = sizeof(ContainerElementType<Container>);
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:451:15: note: in instantiation of variable template specialization 'legilimens::impl_::ContainerElementSize<std::__1::array<unsigned short, 100> >'
requested here
static_assert(ContainerElementSize<std::array<std::uint16_t, 100>> == 2);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tuple:223:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from /Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:32:
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:451:15: error: static_assert expression is not an integral constant expression
static_assert(ContainerElementSize<std::array<std::uint16_t, 100>> == 2);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:395:78: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 10>'
using ContainerElementType = std::decay_t<decltype(*std::declval<Container>().data())>;
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:398:53: note: in instantiation of template type alias 'ContainerElementType' requested here
constexpr std::size_t ContainerElementSize = sizeof(ContainerElementType<Container>);
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:452:15: note: in instantiation of variable template specialization 'legilimens::impl_::ContainerElementSize<std::__1::array<unsigned char, 10> >'
requested here
static_assert(ContainerElementSize<std::array<std::uint8_t, 10>> == 1);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tuple:223:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from /Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:32:
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:452:15: error: static_assert expression is not an integral constant expression
static_assert(ContainerElementSize<std::array<std::uint8_t, 10>> == 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:454:15: error: no matching function for call to 'getContainerSize'
static_assert(getContainerSize<std::array<std::int64_t, 1000>>() == 1000);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:402:89: note: candidate template ignored: substitution failure [with Container = std::__1::array<long long, 1000>]: implicit instantiation of
undefined template 'std::__1::tuple_size<std::__1::array<long long, 1000> >'
static constexpr std::enable_if_t<(std::tuple_size<Container>::value > 0), std::size_t> getContainerSize()
~~~~~~~~~~ ^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:409:84: note: candidate template ignored: substitution failure [with Container = std::__1::array<long long, 1000>]: implicit instantiation of
undefined template 'std::__1::array<long long, 1000>'
static constexpr std::enable_if_t<(Container::SizeAtCompileTime > 0), std::size_t> getContainerSize()
~~~~~~~~~ ^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:455:15: error: no matching function for call to 'getContainerSize'
static_assert(getContainerSize<std::array<std::uint16_t, 100>>() == 100);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:402:89: note: candidate template ignored: substitution failure [with Container = std::__1::array<unsigned short, 100>]: implicit instantiation of
undefined template 'std::__1::tuple_size<std::__1::array<unsigned short, 100> >'
static constexpr std::enable_if_t<(std::tuple_size<Container>::value > 0), std::size_t> getContainerSize()
~~~~~~~~~~ ^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:409:84: note: candidate template ignored: substitution failure [with Container = std::__1::array<unsigned short, 100>]: implicit instantiation of
undefined template 'std::__1::array<unsigned short, 100>'
static constexpr std::enable_if_t<(Container::SizeAtCompileTime > 0), std::size_t> getContainerSize()
~~~~~~~~~ ^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:456:15: error: no matching function for call to 'getContainerSize'
static_assert(getContainerSize<std::array<std::uint8_t, 10>>() == 10);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:402:89: note: candidate template ignored: substitution failure [with Container = std::__1::array<unsigned char, 10>]: implicit instantiation of
undefined template 'std::__1::tuple_size<std::__1::array<unsigned char, 10> >'
static constexpr std::enable_if_t<(std::tuple_size<Container>::value > 0), std::size_t> getContainerSize()
~~~~~~~~~~ ^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:409:84: note: candidate template ignored: substitution failure [with Container = std::__1::array<unsigned char, 10>]: implicit instantiation of
undefined template 'std::__1::array<unsigned char, 10>'
static constexpr std::enable_if_t<(Container::SizeAtCompileTime > 0), std::size_t> getContainerSize()
~~~~~~~~~ ^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:395:78: error: implicit instantiation of undefined template 'std::__1::array<short, 3>'
using ContainerElementType = std::decay_t<decltype(*std::declval<Container>().data())>;
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:425:69: note: in instantiation of template type alias 'ContainerElementType' requested here
return CompileTimeTypeDescriptor<TypeDescriptor::deduceKind<ContainerElementType<D>>(),
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:436:55: note: in instantiation of function template specialization
'legilimens::impl_::constructCompileTimeTypeDescriptor<std::__1::array<short, 3> >' requested here
using CompileTimeTypeDescriptorConstructor = decltype(constructCompileTimeTypeDescriptor<T>());
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:482:15: note: in instantiation of template type alias 'CompileTimeTypeDescriptorConstructor' requested here
static_assert(CompileTimeTypeDescriptorConstructor<std::array<std::int16_t, 3>>::getRuntimeTypeDescriptor()
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tuple:223:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
In file included from /Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:32:
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:436:55: error: no matching function for call to 'constructCompileTimeTypeDescriptor'
using CompileTimeTypeDescriptorConstructor = decltype(constructCompileTimeTypeDescriptor<T>());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:484:15: note: in instantiation of template type alias 'CompileTimeTypeDescriptorConstructor' requested here
static_assert(CompileTimeTypeDescriptorConstructor<std::array<std::int16_t, 3>>::getRuntimeTypeDescriptor()
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:416:23: note: candidate template ignored: substitution failure [with T = std::__1::array<short, 3>]
static constexpr auto constructCompileTimeTypeDescriptor()
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:436:55: error: no matching function for call to 'constructCompileTimeTypeDescriptor'
using CompileTimeTypeDescriptorConstructor = decltype(constructCompileTimeTypeDescriptor<T>());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:486:15: note: in instantiation of template type alias 'CompileTimeTypeDescriptorConstructor' requested here
static_assert(CompileTimeTypeDescriptorConstructor<std::array<std::int16_t, 3>>::getRuntimeTypeDescriptor()
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:416:23: note: candidate template ignored: substitution failure [with T = std::__1::array<short, 3>]
static constexpr auto constructCompileTimeTypeDescriptor()
^
/Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:199:38: error: implicit instantiation of undefined template 'std::__1::array<unsigned short, 4>'
std::array<std::uint16_t, 4> value_b{{
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tuple:223:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
^
/Users/bittondb/GoogleDrive/src/legilimens/test/test.cpp:206:9: error: expected a type
LEGILIMENS_PROBE("b", value_b);
^
/Users/bittondb/GoogleDrive/src/legilimens/test/../legilimens.hpp:81:108: note: expanded from macro 'LEGILIMENS_PROBE'
const ::legilimens::Probe<::legilimens::impl_::CompileTimeTypeDescriptorConstructor<decltype(variable)>, \
^
14 errors generated.
make[2]: *** [CMakeFiles/legilimens_test.dir/test.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/legilimens_test.dir/all] Error 2
make: *** [all] Error 2
The terminal process terminated with exit code: 2
I've googled the crap out of this and all I can find is pointing to C++17 but that's correctly added in the CMakeLists.txt. Ideas where I should look?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.