Но произошло нечто странное:
class World {
public:
sarray
dummy1 { new array(10) };//OK
sarray dummy2 = new array(10); //Compiler error?!?!?!*
smatrix dummyWorld1 { new matrix(100,100) };//OK
smatrix dummyWorld2 = new matrix(100,100);//OK
smatrix ants = new matrix(50,2);// OK
...
};
* ERROR:
> /data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/klasaWorld.pde.cpp:27:
>
> error: cannot bind non-const lvalue reference of type
> ‘Processing::sarray&’ to an rvalue of type
> ‘Processing::sarray’
>
> sarray dummy2 = new array(10) ;//Compiler error?!?
Вывод компилятора "Verbose":
> [1/2 3.5/sec] Building CXX object
> CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o
> FAILED:
> CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o
> /usr/bin/g++ -DDEF_MAXTHREADS=16 -DMULTITR -DVERSION_NUM=0.1
> -I/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc -I/home/borkowsk/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/../../scripts/../lib/include
> -I/data/wb/SCC/__working_copies/symShell2/WBRTM_Linux -I/data/wb/SCC/__working_copies/symShell2/WBRTM_Linux/INCLUDE --verbose -std=c++11 -pthread -MD -MT CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o
> -MF CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o.d
> -o CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o
> -c /data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp
> Using built-in specs. COLLECT_GCC=/usr/bin/g++
> OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target:
> x86_64-linux-gnu Configured with: ../src/configure -v
> --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
> COLLECT_GCC_OPTIONS='-D' 'DEF_MAXTHREADS=16' '-D' 'MULTITR' '-D'
> 'VERSION_NUM=0.1' '-I'
> '/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc'
> '-I'
> '/home/borkowsk/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/../../scripts/../lib/include'
> '-I' '/data/wb/SCC/__working_copies/symShell2/WBRTM_Linux' '-I'
> '/data/wb/SCC/__working_copies/symShell2/WBRTM_Linux/INCLUDE' '-v'
> '-std=c++11' '-pthread' '-MD' '-MT'
> 'CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o'
> '-MF'
> 'CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o.d'
> '-o'
> 'CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o'
> '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
> /usr/lib/gcc/x86_64-linux-gnu/7/cc1plus -quiet -v -I
> /data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc -I
> /home/borkowsk/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/../../scripts/../lib/include
> -I /data/wb/SCC/__working_copies/symShell2/WBRTM_Linux -I /data/wb/SCC/__working_copies/symShell2/WBRTM_Linux/INCLUDE
> -imultiarch x86_64-linux-gnu -MD CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.d
> -MF CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o.d
> -MT CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o
> -D_GNU_SOURCE -D_REENTRANT -D DEF_MAXTHREADS=16 -D MULTITR -D VERSION_NUM=0.1
> /data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp
> -quiet -dumpbase project_at_once.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/MROWKI_0.1_once.dir/data/wb/SCC/__working_copies/Processing2C/PROJECTS/MROWKI/cppsrc/project_at_once.cpp.o
> -std=c++11 -version -fstack-protector-strong -Wformat -Wformat-security -o /tmp/ccaH1ylE.s
**GNU C++11 (Ubuntu 7.5.0-3ubuntu1~18.04) version 7.5.0 (x86_64-linux-gnu)
compiled by GNU C version 7.5.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP**
^
Вот проблема, извлеченная из моего проекта. Похоже одна строчка виновата, но не понимаю почему
#include
namespace Processing
{
template
class ptr
{
//std::shared_ptr _ptr;
public:
ptr();
ptr(ptr&);
//ptr(const ptr&);//This removes the error, but can not be implemented properly!
};
template
class array
{
//T* content;
public:
~array();
array(size_t N);
};
template
class sarray
{ // When the following line is commented out the error disapper!
// so what is missing in ptr ?
ptr< array > _arr;//opaque smart ptr to array
//std::shared_ptr< array > _arr;//std smart pointer is OK
public:
~sarray(){}
sarray(){}
sarray(array* tab);
sarray& operator = (array* tab);
};
}
using namespace Processing;
void example()
{
sarray test1 = new array(2);// Compiler error?
sarray test2;
test2 = new array(2);//OK
sarray test3 { new array(2) };//OK
}
Подробнее здесь: https://stackoverflow.com/questions/633 ... ual-or-not
Мобильная версия