C++ error messages are notorious for being unhelpful at all:
Besides the obnoxious two, I have this today:
train: /usr/local/boost_1_67_0/boost/multi_array/base.hpp:135: Reference boost::detail::multi_array::value_accessor_n<T, NumDims>::access(boost::type<Reference>, boost::detail::multi_array::value_accessor_n<T, NumDims>::index, TPtr, const size_type*, const index*, const index*) const [with Reference = boost::detail::multi_array::sub_array<int, 1>; TPtr = int*; T = int; long unsigned int NumDims = 2; boost::detail::multi_array::value_accessor_n<T, NumDims>::index = long int; boost::detail::multi_array::multi_array_base::size_type = long unsigned int]: Assertion idx - index_bases >= 0 failed.
Basically it is an error from the boost multi_array library. It tells me that I have an
index out of range error.
But it doesn’t help me to locate where the error occurs (who even does that).
I have to compile the file with
-g debug flag, fire up gdb, load the binary, set a couple of breakpoints and manually check the code line by line to finally “locate the error”.
Only after that whole process can I finally fix the problem.
I have been learning programming in C++ for more than half a year, I have lived through all the hussles such as pointers, class inheritance, virtual functions, templates, g++ flags, makefile, cmake, out-of-source-compile, boost library, and what not.
But I do not enjoy coding in c++ at all.
Nah, not even once.