Skip to content

Ambiguity #2

@skaller

Description

@skaller

I'm getting an ambiguity with clang. This is actually on a fork I made to prepare for
shared library visibility stuff:

 + /usr/bin/clang++ -c -std=c++14 -D_POSIX -w -fno-common -fvisibility=hidden 
-fno-strict-aliasing -fomit-frame-pointer -Ibuild/release/share/src/integer 
-DFLX_STATIC_LINK -Wfatal-errors -Wno-invalid-offsetof -Wno-parentheses -o build/release/obj/host/lib/rtl/flx_integer_static/build/release/share/src/integer/integer_static.o -MMD -MF /var/folders/km/g22y_d_j311d44xbkz5x4lww0000gn/T/tmp0tp6pja9/temp 
build/release/share/src/integer/integer.cpp
build/release/share/src/integer/integer.cpp:222:31: fatal error: conversion 
from 'const integer' to 'const integer::REP_SIZE_T' (aka 'const unsigned long')
 is ambiguous
    const integer::REP_SIZE_T max_bits = std::max(bits(), rhs.bits());
                              ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/release/share/src/integer/integer.include:159:9: note: candidate function
        operator bool()     const;
        ^
build/release/share/src/integer/integer.include:160:9: note: candidate function
        operator uint8_t()  const;
        ^
build/release/share/src/integer/integer.include:161:9: note: candidate function
        operator uint16_t() const;
        ^
build/release/share/src/integer/integer.include:162:9: note: candidate function
        operator uint32_t() const;
        ^
build/release/share/src/integer/integer.include:163:9: note: candidate function
        operator uint64_t() const;
        ^
build/release/share/src/integer/integer.include:164:9: note: candidate function
        operator int8_t()   const;
        ^
build/release/share/src/integer/integer.include:165:9: note: candidate function
        operator int16_t()  const;
        ^
build/release/share/src/integer/integer.include:166:9: note: candidate function
        operator int32_t()  const;
        ^
build/release/share/src/integer/integer.include:167:9: note: candidate function
        operator int64_t()  const;
        ^```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions