I've ported Pacific Bioscience's unanimity, but the latest does not compile with clang 3.4.1 (base compiler on 10.4). It's fine with clang 4 or 5.
I'd prefer to patch the code to work with clang 3.4 rather than add an llvm dependency for 10.4-RELEASE. Any hints would be appreciated. In the meantime, I'll be trying to bring my C++ skills up-to-date (again).
Code and error messages below.
Thanks...
I'd prefer to patch the code to work with clang 3.4 rather than add an llvm dependency for 10.4-RELEASE. Any hints would be appreciated. In the meantime, I'll be trying to bring my C++ skills up-to-date (again).
Code and error messages below.
Thanks...
Code:
namespace PacBio {
namespace GenomicConsensus {
class Input
{
public:
explicit Input(const Settings& settings) : settings_{settings} {}
Input() = delete;
Input(const Input&) = delete;
Input(Input&&) = default;
Input& operator=(const Input&) = delete;
Input& operator=(Input&&) = default;
~Input() = default;
public:
ReferenceWindow EnlargedWindow(const ReferenceWindow& window) const;
std::vector<PacBio::BAM::BamRecord> ReadsInWindow(const ReferenceWindow& win
dow) const;
std::string ReferenceInWindow(const ReferenceWindow& window) const;
std::vector<ReferenceWindow> ReferenceWindows() const;
private:
Settings settings_;
};
Code:
/usr/bin/c++ -I/usr/local/include/PacBio -Iinclude -Igenerated -I/usr/local/include -I/usr/local/include/htslib -Ithird-party/cpp-optparse -I/usr/local/include/pbbam -Ithird-party/cssw -Isrc -O2 -pipe -fstack-protector -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -O2 -pipe -fstack-protector -fno-strict-aliasing -std=c++1y -MD -MT src/CMakeFiles/arrow.dir/main/arrow.cpp.o -MF src/CMakeFiles/arrow.dir/main/arrow.cpp.o.d -o src/CMakeFiles/arrow.dir/main/arrow.cpp.o -c src/main/arrow.cpp
In file included from src/main/arrow.cpp:6:
include/pacbio/genomicconsensus/Input.h:28:58: error: no viable conversion from 'const PacBio::GenomicConsensus::Settings' to 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')
explicit Input(const Settings& settings) : settings_{settings} {}
^~~~~~~~
/usr/include/c++/v1/string:1326:5: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'const std::__1::basic_string<char> &' for 1st argument
basic_string(const basic_string& __str);
^
/usr/include/c++/v1/string:1330:5: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'std::__1::basic_string<char> &&' for 1st argument
basic_string(basic_string&& __str)
^
/usr/include/c++/v1/string:1335:31: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'const value_type *' (aka 'const char *') for 1st argument
_LIBCPP_INLINE_VISIBILITY basic_string(const value_type* __s);
^
/usr/include/c++/v1/string:1356:5: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'initializer_list<value_type>' for 1st argument
basic_string(initializer_list<value_type> __il);
^
In file included from src/main/arrow.cpp:6:
include/pacbio/genomicconsensus/Input.h:28:66: warning: missing field 'referenceFilename' initializer [-Wmissing-field-initializers]
explicit Input(const Settings& settings) : settings_{settings} {}
^
In file included from src/main/arrow.cpp:7:
include/pacbio/genomicconsensus/Output.h:83:61: error: no viable conversion from 'const PacBio::GenomicConsensus::Settings' to 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')
inline Output::Output(const Settings& settings) : settings_{settings}
^~~~~~~~
/usr/include/c++/v1/string:1326:5: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'const std::__1::basic_string<char> &' for 1st argument
basic_string(const basic_string& __str);
^
/usr/include/c++/v1/string:1330:5: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'std::__1::basic_string<char> &&' for 1st argument
basic_string(basic_string&& __str)
^
/usr/include/c++/v1/string:1335:31: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'const value_type *' (aka 'const char *') for 1st argument
_LIBCPP_INLINE_VISIBILITY basic_string(const value_type* __s);
^
/usr/include/c++/v1/string:1356:5: note: candidate constructor not viable: no known conversion from 'const PacBio::GenomicConsensus::Settings' to 'initializer_list<value_type>' for 1st argument
basic_string(initializer_list<value_type> __il);
^
In file included from src/main/arrow.cpp:7:
include/pacbio/genomicconsensus/Output.h:83:69: warning: missing field 'referenceFilename' initializer [-Wmissing-field-initializers]
inline Output::Output(const Settings& settings) : settings_{settings}
^
2 warnings and 2 errors generated.
Last edited by a moderator: