C++ delete function compile error occurs from difference between gcc 4.8.2 and 4.9.4
Jonathan Wakely
jwakely.gcc@gmail.com
Wed Sep 1 09:49:11 GMT 2021
On Wed, 1 Sept 2021 at 01:20, 김륜현 <winxp4333@naver.com> wrote:
> Thank you for your Answer.
>
> I used ca(aaa) instead of ca{aaa} and compile error was solved!
>
>
>
> but, next error occurred like below
>
>
>
> ../compiler/llvm-mali/include/llvm/Mali/MaliDataFlowFramework.h:288:21:
> error: expected ‘,’ before ‘...’ token
>
> [this, &args...](const MachineBasicBlock *MBB, const VarTy &,
>
> ^
>
> ../compiler/llvm-mali/include/llvm/Mali/MaliDataFlowFramework.h:288:21:
> error: expected identifier before ‘...’ token
>
> ../compiler/llvm-mali/include/llvm/Mali/MaliDataFlowFramework.h:288:24:
> error: parameter packs not expanded with ‘...’:
>
> [this, &args...](const MachineBasicBlock *MBB, const VarTy &,
>
>
> In this case, It appears to be caused by the lambda variable
> argument(`...`)
>
>
> Is this problem same cause(C++11 core bug)?
>
>
Lambda capture of parameter packs was added to the C++11 draft in 2010, by
https://wg21.link/cwg904 which was implemented in GCC 4.9.0 by
https://gcc.gnu.org/r202605 (so you can't do it in GCC 4.8.5).
>
>
> If so, it maybe be difficult to use gcc 4.8
>
Yes, you should use a newer compiler if you want to compile modern C++ code.
If you are using GCC 4.8.5 because you are on RHEL 7 or CentOS 7, you
should consider using GCC from a devtoolset package.
More information about the Gcc-help
mailing list