A longtable
environment makes the table, so it shouldn't have a tabular
inside it. Here's how you can do; check with the package manual for other adjustments.
\documentclass[12pt,a4paper,final]{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[margin=1cm]{geometry}
\usepackage{booktabs,longtable}
\usepackage[table]{xcolor}
\usepackage{listings}
\colorlet{listingscolor}{black!15}
\lstnewenvironment{mylistings}
{\lstset{language=C++,
backgroundcolor=\color{listingscolor}, % set backgroundcolor
basicstyle=\footnotesize,% basic font setting
}%
}
{}
\lstnewenvironment{cpptable}
{\lstset{language=C++,
basicstyle=\footnotesize,% basic font setting
}%
}
{}
\begin{document}
\begin{longtable}{>{\columncolor{listingscolor}}l c c c}
% Here starts the first header
\caption{C++ DIC class public functions.}\label{tab:DIC class private}\\
\toprule
\multicolumn{1}{c}{\textbf{Function in C++} }&
\textbf{Input} &
\textbf{Output} &
\begin{tabular}{@{}c@{}}\textbf{Document} \\ \textbf{corresponding chapter}\end{tabular}\\
\midrule
\multicolumn{4}{c}{Main setup and API functions. Public functions.}\\
\midrule
\endfirsthead
% Here starts the header specification for the following pages
\toprule
\multicolumn{1}{c}{\textbf{Function in C++} }&
\textbf{Input} &
\textbf{Output} &
\begin{tabular}{@{}c@{}}\textbf{Document} \\ \textbf{corresponding chapter}\end{tabular}\\
\midrule
\multicolumn{4}{c}{Main setup and API functions. Public functions.}\\
\midrule
\endhead
% now the table contents
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\midrule
\begin{cpptable}
getF()
\end{cpptable}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Subset center
\vspace{-10pt}
\item window size
\end{itemize}
\end{minipage}
\vspace{4pt}
&
\begin{minipage}{1.5in}
\vspace{4pt}
\begin{itemize}
\item Undeformed \\image subset
\end{itemize}
\end{minipage}
\vspace{4pt}
& \ref{sec:basic principles},\ref{sec:sub-pixel}\\
\bottomrule
\end{longtable}
\end{document}
longtable
environment shouldn't be used inside atable
environment.table
andtabular
withlongtable
in the way you tried. It will be easier to help you in finding what's wrong.