Hi list,

sorry, it's me again. 

I am having issues to build mzR on Mac (to which I have no access)
after the upgrade to Rcpp 0.11.0 on both 

http://bioconductor.org/checkResults/2.13/bioc-LATEST/mzR/perceval-buildsrc.html
http://bioconductor.org/checkResults/2.14/bioc-LATEST/mzR/petty-buildsrc.html

with the same error message on both machines. Other builds are fine.
Those C++ error messages always scare the s**t out of me, 
But then, the 100s of lines when a Java program throws 
an exception are not better ...

The following is what I understood. The problem occurs in the three copy 
constructors 
generated for the RcppRamp object in RcppRampModule.cpp[1]

        Rcpp::S4_field<RcppRamp>::S4_field(const Rcpp::S4_field<RcppRamp>&), 
and similar for 
        S4_CppOverloadedMethods(const Rcpp::S4_CppOverloadedMethods<RcppRamp>&)
and     S4_CppConstructor(const Rcpp::S4_CppConstructor<RcppRamp>&).

In all cases, there is a call to 
Reference_Impl<Rcpp::PreserveStorage>::Reference_Impl()
for which the compiler can't find a matching function. What it offers are 
implementations like Reference_Impl(const std::string&). The difference is 
that the requested Reference_Impl() comes with no arguments (?!).

The call is made from Module.h:331 in the macro RCPP_CTOR_ASSIGN(S4_field)
(Would it help to define RCPP_DEBUG for some additional output ?)
Indeed, all three "no matching function"s seem to come from this macro:

        grep RCPP_CTOR_ASSIGN ./include/Rcpp/*
        ./include/Rcpp/Module.h:        RCPP_CTOR_ASSIGN(S4_CppConstructor)
        ./include/Rcpp/Module.h:        
RCPP_CTOR_ASSIGN(S4_CppOverloadedMethods)
        ./include/Rcpp/Module.h:        RCPP_CTOR_ASSIGN(S4_field)

But unfortunately this is where I get lost. Since it works on other 
architectures, 
<wildGuess>
it could be that on Mac "something" is #defined to be an empty string,
so that Reference_Impl() is called with an empty argument.
</wildGuess>

<disclaimer>
Of course, my last ventures into C++-land is more than a decade ago, so I could 
be waay off.
</disclaimer>

Any ideas here ?

Yours,
Steffen

[1] 
https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/mzR/src/RcppRampModule.cpp

-----------------------------------------------

llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include 
-DNDEBUG -D_LARGEFILE_SOURCE -I./boost_aux/ -I. -DHAVE_PWIZ_MZML_LIB -D_NODEBUG 
-I/usr/local/include 
-I"/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" 
  -fPIC  -mtune=core2 -g -O2  -c RcppRampModule.cpp -o RcppRampModule.o

/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Module.h:
 In copy constructor ‘Rcpp::S4_field<Class>::S4_field(const 
Rcpp::S4_field<Class>&) [with Class = RcppRamp]’:
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/module/class.h:416:
   instantiated from ‘Rcpp::List Rcpp::class_<Class>::fields(const 
Rcpp::XPtr<Rcpp::class_Base, Rcpp::PreserveStorage, void 
Rcpp::standard_delete_finalizer [with T = Rcpp::class_Base]>&) [with Class = 
RcppRamp]’
RcppRampModule.cpp:22:   instantiated from here
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Module.h:331:
 error: no matching function for call to 
‘Rcpp::Reference_Impl<Rcpp::PreserveStorage>::Reference_Impl()’
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:56:
 note: candidates are: 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(const std::string&) [with 
StoragePolicy = Rcpp::PreserveStorage]
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:41:
 note:                 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(SEXPREC*) [with 
StoragePolicy = Rcpp::PreserveStorage]
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:34:
 note:                 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(const 
Rcpp::Reference_Impl<StoragePolicy>&) [with StoragePolicy = 
Rcpp::PreserveStorage]

/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Module.h:
 In copy constructor 
‘Rcpp::S4_CppOverloadedMethods<Class>::S4_CppOverloadedMethods(const 
Rcpp::S4_CppOverloadedMethods<Class>&) [with Class = RcppRamp]’:
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/module/class.h:435:
   instantiated from ‘Rcpp::List Rcpp::class_<Class>::getMethods(const 
Rcpp::XPtr<Rcpp::class_Base, Rcpp::PreserveStorage, void 
Rcpp::standard_delete_finalizer [with T = Rcpp::class_Base]>&, std::string&) 
[with Class = RcppRamp]’
RcppRampModule.cpp:22:   instantiated from here
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Module.h:256:
 error: no matching function for call to 
‘Rcpp::Reference_Impl<Rcpp::PreserveStorage>::Reference_Impl()’
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:56:
 note: candidates are: 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(const std::string&) [with 
StoragePolicy = Rcpp::PreserveStorage]
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:41:
 note:                 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(SEXPREC*) [with 
StoragePolicy = Rcpp::PreserveStorage]
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:34:
 note:                 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(const 
Rcpp::Reference_Impl<StoragePolicy>&) [with StoragePolicy = 
Rcpp::PreserveStorage]

/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Module.h:
 In copy constructor ‘Rcpp::S4_CppConstructor<Class>::S4_CppConstructor(const 
Rcpp::S4_CppConstructor<Class>&) [with Class = RcppRamp]’:
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/module/class.h:446:
   instantiated from ‘Rcpp::List Rcpp::class_<Class>::getConstructors(const 
Rcpp::XPtr<Rcpp::class_Base, Rcpp::PreserveStorage, void 
Rcpp::standard_delete_finalizer [with T = Rcpp::class_Base]>&, std::string&) 
[with Class = RcppRamp]’
RcppRampModule.cpp:22:   instantiated from here
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Module.h:218:
 error: no matching function for call to 
‘Rcpp::Reference_Impl<Rcpp::PreserveStorage>::Reference_Impl()’
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:56:
 note: candidates are: 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(const std::string&) [with 
StoragePolicy = Rcpp::PreserveStorage]
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:41:
 note:                 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(SEXPREC*) [with 
StoragePolicy = Rcpp::PreserveStorage]
/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include/Rcpp/Reference.h:34:
 note:                 
Rcpp::Reference_Impl<StoragePolicy>::Reference_Impl(const 
Rcpp::Reference_Impl<StoragePolicy>&) [with StoragePolicy = 
Rcpp::PreserveStorage]


-- 
IPB Halle                    AG Massenspektrometrie & Bioinformatik
Dr. Steffen Neumann          http://www.IPB-Halle.DE
Weinberg 3                   http://msbi.bic-gh.de
06120 Halle                  Tel. +49 (0) 345 5582 - 1470
                                  +49 (0) 345 5582 - 0
sneumann(at)IPB-Halle.DE     Fax. +49 (0) 345 5582 - 1409



_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to