当前位置: 首页>>代码示例>>C++>>正文


C++ B::f方法代码示例

本文整理汇总了C++中B::f方法的典型用法代码示例。如果您正苦于以下问题:C++ B::f方法的具体用法?C++ B::f怎么用?C++ B::f使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在B的用法示例。


在下文中一共展示了B::f方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: h

void h()
{
    using B::f;
    using C::f;
    f('h');
    f(1);         // { dg-error "ambiguous" }
    // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
    void f(int);  // { dg-error "previous using declaration" }
}
开发者ID:kostyll,项目名称:gccpy,代码行数:9,代码来源:using9.C

示例2: g

void g()
{
    const B b;

    int *pi;
    pi = b.f(0);
}
开发者ID:bsc-pm,项目名称:mcxx,代码行数:7,代码来源:success_446.cpp

示例3: main

int main() {
  CHECK(fcc::invoke(f) == 13);
  CHECK(noexcept(fcc::invoke(f) == 13));
  CHECK(fcc::invoke(g, 2) == 5);
  CHECK(fcc::invoke(h, 42) == 42);
  CHECK(noexcept(fcc::invoke(h, 42) == 42));
  {
    int i = 13;
    CHECK(&fcc::invoke(h, i) == &i);
    CHECK(noexcept(&fcc::invoke(h, i) == &i));
  }

  CHECK(fcc::invoke(&A::f, A{}) == 42);
  CHECK(noexcept(fcc::invoke(&A::f, A{}) == 42));
  CHECK(fcc::invoke(&A::g, A{}, 2) == 4);
  {
    A a;
    const auto& ca = a;
    CHECK(fcc::invoke(&A::f, a) == 42);
    CHECK(noexcept(fcc::invoke(&A::f, a) == 42));
    CHECK(fcc::invoke(&A::f, ca) == 42);
    CHECK(noexcept(fcc::invoke(&A::f, ca) == 42));
    CHECK(fcc::invoke(&A::g, a, 2) == 4);
  }

  {
    A a;
    const auto& ca = a;
    CHECK(fcc::invoke(&A::f, &a) == 42);
    CHECK(noexcept(fcc::invoke(&A::f, &a) == 42));
    CHECK(fcc::invoke(&A::f, &ca) == 42);
    CHECK(noexcept(fcc::invoke(&A::f, &ca) == 42));
    CHECK(fcc::invoke(&A::g, &a, 2) == 4);
  }
  {
    auto up = std::make_unique<A>();
    CHECK(fcc::invoke(&A::f, up) == 42);
    CHECK(fcc::invoke(&A::g, up, 2) == 4);
  }
  {
    auto sp = std::make_shared<A>();
    CHECK(fcc::invoke(&A::f, sp) == 42);
    CHECK(noexcept(fcc::invoke(&A::f, sp) == 42));
    CHECK(fcc::invoke(&A::g, sp, 2) == 4);
  }

  CHECK(fcc::invoke(&A::i, A{}) == 13);
  CHECK(noexcept(fcc::invoke(&A::i, A{}) == 13));
  { int&& tmp = fcc::invoke(&A::i, A{}); (void)tmp; }

  {
    A a;
    const auto& ca = a;
    CHECK(fcc::invoke(&A::i, a) == 13);
    CHECK(noexcept(fcc::invoke(&A::i, a) == 13));
    CHECK(fcc::invoke(&A::i, ca) == 13);
    CHECK(noexcept(fcc::invoke(&A::i, ca) == 13));
    CHECK(fcc::invoke(&A::i, &a) == 13);
    CHECK(noexcept(fcc::invoke(&A::i, &a) == 13));
    CHECK(fcc::invoke(&A::i, &ca) == 13);
    CHECK(noexcept(fcc::invoke(&A::i, &ca) == 13));

    fcc::invoke(&A::i, a) = 0;
    CHECK(a.i == 0);
    fcc::invoke(&A::i, &a) = 1;
    CHECK(a.i == 1);
    static_assert(std::is_same<decltype(fcc::invoke(&A::i, ca)), const int&>{});
    static_assert(std::is_same<decltype(fcc::invoke(&A::i, &ca)), const int&>{});
  }

  {
    auto up = std::make_unique<A>();
    CHECK(fcc::invoke(&A::i, up) == 13);
    fcc::invoke(&A::i, up) = 0;
    CHECK(up->i == 0);
  }

  {
    auto sp = std::make_shared<A>();
    CHECK(fcc::invoke(&A::i, sp) == 13);
    fcc::invoke(&A::i, sp) = 0;
    CHECK(sp->i == 0);
  }
  
  {
    struct B { int i = 42; constexpr int f() const { return i; } };
    constexpr B b;
    static_assert(b.i == 42);
    static_assert(b.f() == 42);
    static_assert(fcc::invoke(&B::i, b) == 42);
    static_assert(fcc::invoke(&B::i, &b) == 42);
    static_assert(fcc::invoke(&B::i, B{}) == 42);
    static_assert(fcc::invoke(&B::f, b) == 42);
    static_assert(fcc::invoke(&B::f, &b) == 42);
    static_assert(fcc::invoke(&B::f, B{}) == 42);
  }

  return ::test_result();
}
开发者ID:mtak-,项目名称:tuple,代码行数:99,代码来源:invoke.cpp

示例4: f

void D::f(int) { f('c'); } // calls B::f(char)
开发者ID:4ntoine,项目名称:clang,代码行数:1,代码来源:cxx-using-declaration.cpp


注:本文中的B::f方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。