Skip to content

Latest commit

 

History

History
1249 lines (1024 loc) · 27.9 KB

gunun-sorusu.md

File metadata and controls

1249 lines (1024 loc) · 27.9 KB

Günün Sorusu

  • Aşağıdaki kodda
    a) tanımsız davranış söz konusudur.
    b) Kodda bir sorun yoktur. Çıkış akımına şunu yazar:
#include <iostream>

void g(int &&r) {
    r += 3;
    std::cout << r;
}

void g(int &r) {
    std::cout << r++;
}

template <typename T>
void f(T &&x) {
    x *= 5;
    g(x);
    g(std::forward<T>(x));
}

int main() {
    f(1);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct A {
    A() { std::cout << "1"; }
};

struct B {
    B() { std::cout << "2"; }
    B(A) { std::cout << "3"; }
    void b() { std::cout << "4"; }
};

A a() {
    std::cout << "5";
    return A{};
}

B b(A (*)()) {
    std::cout << "6";
    return B{};
}

int main() {
    B b(A());
    b(a).b();
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

auto& g() { return std::cout << 1; }
auto f() {
    std::cout << 2;
    return g;
}

int main() {
    std::cout << (f()() << 3 ? 4 : 5);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    int a[]{1, 4, 7, 2};
    int* x{a};

    decltype(++x) y(x);
    decltype(++y) z(y);

    std::cout << *x + *y + *z;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    int a[2];
    decltype(a) b[2];
    decltype(b) c[3]{0, 1, 2, 3, 4};

    std::cout << c[0][1][2] << "\n";
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <algorithm>
#include <iostream>

int main() {
    auto x{1}, y{2};
    auto a{&x}, b{&y}, c{a++};
    std::copy(c, a, b);
    std::cout << x << y;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <auto n>
struct A : A<n + 1> {
    A() { std::cout << n; }
    ~A() { std::cout << n; }
};

template <>
struct A<5> {};
template <>
struct A<0> {};

int main() {
    A<1> x;
}

Cevap

  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    auto x = 2;
    auto y = x > 0 ? 5 : 1.4;
    std::cout << y / x;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <type_traits>

int main() {
    auto c = 'c';
    std::cout << std::is_same_v<decltype(c), decltype(+c)>;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <type_traits>

int main() {
    auto a{[] {}};
    auto b{[] {}};
    auto c(+a);
    auto d(+b);

    std::cout << std::is_same_v<decltype(a), decltype(b)>;
    std::cout << std::is_same_v<decltype(a), decltype(c)>;
    std::cout << std::is_same_v<decltype(c), decltype(d)>;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct A {
    static int x;
    static int foo() { return 1; }
};

int foo() { return 2; }

int A::x = foo();

int main() {
    std::cout << A::x;
    A::x = foo();
    std::cout << A::x;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

void f(long double) { std::cout << 1; }
void f(char) { std::cout << 2; }

int main() {
    f(2.5);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    std::cout << "hello";
    std::cout.operator<<("world");
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    int typedef* ip;
    auto i{0};
    ip const p{&i};
    ++*p;
    std::cout << i;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <typename T, size_t n>
using ptr = T (*)[n];

int main() {
    int a[3][2]{0, 1, 3, 5, 7, 9};

    ptr<int, 2> b{a};
    ++b;
    ++**b;
    for (const auto& x : a)
        for (auto y : x)
            std::cout << y;
}

Cevap

  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct A {
    A() { std::cout << "A"; }
    ~A() { std::cout << "a"; }
};

struct B {
    B() { std::cout << "B"; }
    ~B() { std::cout << "b"; }
    B(A) { std::cout << "C"; }
};

A a;
int main() {
    B(a);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <vector>

struct A {
    A() { std::cout << "1"; }
    ~A() { std::cout << "2"; }
    A(int) { std::cout << "3"; }
    A(const A&) { std::cout << "4"; }
    A(A&&) { std::cout << "5"; }
};

int main() {
    std::vector<A> v;
    v.emplace_back(1);
    v.push_back(v[0]);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <typename T>

void f(T) { std::cout << "1"; }

template <>
void f(int*) { std::cout << "2"; }

void f(int&) { std::cout << "3"; }

void f(int&&) { std::cout << "4"; }

int main() {
    int x{};
    int* p{&x};
    f(&x);
    f(p);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <int x, int y, int z>
using N = char[x][y][z];

template <int e = 2, int c = 3, int o = 4>
constexpr int n = sizeof(N<e, c, o>);

int main() {
    std::cout << n<> + n<1> + n<1, 2> + n<1, 2, 3>;
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct A {
    operator void*() {
        return static_cast<A*>(this);
    }
};

int main() {
    A a, b;
    std::cout << (a == a) << (a == b) << (a == &a) << (a == &b);
}
  • Aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct A {
    A() { std::cout << 'A'; }
    ~A() { std::cout << 'D'; }
    A(const A&) { std::cout << 'C'; }
    A(A&&) { std::cout << 'M'; }
};

void f(A) {}
A g() { return A{}; }

int main() {
    f(g());
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

void foo(int x) {
    try {
        throw std::runtime_error{"R.T.E"};
    } catch (const std::exception& ex) {
        if (x)
            throw ex;
        else
            throw;
    }
}

void func(int x) {
    try {
        foo(x);
    } catch (const std::runtime_error&) {
        std::cout << 1;
    } catch (const std::exception&) {
        std::cout << 2;
    }
}

int main() {
    int a{1};
    func(a--);
    func(a);
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct A {
    explicit A(double) {
        std::cout << "D";
    }
    A(long long) {
        std::cout << "L";
    }
};

A func(A) {
    return 128e9;
}

int main() {
    auto x = func(128e9);
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Sentaks hatası yok.
class A {
   private:
    struct N {};

   public:
    static N foo();
};

int main() {
    auto x = A::foo();
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int x;

int main() {
    int x{x};
    std::cout << x;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

class base {
   public:
    virtual void override() {
        std::cout << 1;
    }
};

class final final : public base {
   public:
    virtual void override() final override {
        std::cout << 2;
    }
};

void f(base* p) {
    p->base::override();
}

int main() {
    final final;
    f(&final);
}

Cevap

  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

class Base {
   public:
    virtual void f(int a = 1) {
        std::cout << "B" << a;
    }
};

class Der : public Base {
   private:
    void f(int a = 2) override {
        std::cout << "D" << a;
    }
};

void g(Base* baseptr) {
    baseptr->f();
}

int main() {
    auto p{new Der};
    g(p);
    delete p;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <typename T>
size_t f1(T x[]) { return sizeof x; }

template <typename T>
size_t f2(T &x) { return sizeof(x); }

template <typename T>
size_t f3(T *x) { return sizeof(*x); }

template <typename T>
size_t f4(T x) { return sizeof(x); }

template <typename T, size_t n>
size_t f5(T (&x)[n]) { return sizeof x; }

int main() {
    int a[20]{};

    std::cout << (sizeof(a) == f1(a));
    std::cout << (sizeof(a) == f2(a));
    std::cout << (sizeof(a) == f3(a));
    std::cout << (sizeof(a) == f4(a));
    std::cout << (sizeof(a) == f5(a));
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <array>
#include <iostream>

struct Nec {
    Nec() { std::cout << 1; }
    ~Nec() { std::cout << 2; }
    Nec(const Nec &) { std::cout << 3; }
    void f() {
        std::cout << "4";
    }
};

int main() {
    std::array<Nec, 2> ar;

    for (auto n : ar)
        n.f();
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct Base {
    virtual int foo() = 0;
};

struct Der : Base {
    int foo() override { return 2; }
};

int Base::foo() { return 1; }

int main() {
    Der der;
    std::cout << der.foo();
    std::cout << ((Base&)der).foo();
    std::cout << ((Base*)&der)->foo();
    std::cout << der.Base::foo();
}

Cevap

  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <vector>

int main() {
    std::vector vx(0, 0);
    std::vector vy{0, 0};

    std::cout << (vy > vx);
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    int x = 0, y = 1, z = 2;

    std::cout << (++x || --y && --z);
    std::cout << x << y << z;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

struct Nec {
    Nec() { std::cout << "c"; }
    ~Nec() { std::cout << "d"; }
};

int i{2};

int main() {
    switch (i) {
        while (i) {
            case 2:
                Nec x;
                --i;
        }
    }
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int g{1};

void f() { std::cout << 2; }

template <typename T>
struct Base {
    int g = 3;
    void f() const { std::cout << 4; }
};

template <typename T>
struct Der : Base<T> {
    void foo() const {
        std::cout << g;
        f();
    }
};

int main() {
    Der<int> myder;
    myder.foo();
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <sstream>

int main() {
    std::ostringstream ss{"1"};
    ss << "2";
    std::cout << ss.str();
    ss << "3";
    ss << ss.str();
    std::cout << ss.str();
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

typedef long LONG;

void func(unsigned LONG) {
    std::cout << (typeid(LONG) == typeid(unsigned long));
    std::cout << (typeid(LONG) == typeid(long));
    std::cout << (typeid(LONG) == typeid(unsigned int));
}

int main() { 
    func(12uL);
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <map>

int main() {
    std::map<bool, bool> bmap;
    std::cout << bmap[true];
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <typename T>
struct Nec {
    inline static int x{};
};

int main() {
    ++Nec<int>::x;
    ++Nec<const int>::x;
    ++Nec<volatile int>::x;
    ++Nec<const volatile int>::x;

    std::cout << Nec<int>::x;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    unsigned long lval{};
    const long& x = lval;
    const int& y = x;

    ++lval;
    std::cout << x << y;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <type_traits>

int main() {
    using namespace std;

    cout << is_same_v<void(int), void(const int)>;
    cout << is_same_v<void(int *), void(const int*)>;
    cout << is_same_v<void(int *), void(int* const)>;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int y;

int main() {
    auto x{y++}, *p{&y}, &y{x};
    ++x;
    ++y;
    ++*p;
    std::cout << x << y << ::y;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

template <typename T>
auto f1(T &x) {return (x);}

template <typename T>
decltype(auto) f2(T &x) {return (x);}

void foo(const int &) { 
    std::cout << "1"; 
}

void foo(int &&) { 
    std::cout << "2";
}

int main() {
    int x{};
    foo(f1(x));
    foo(f2(x));
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <memory>
#include <type_traits>

int main() {
    using namespace std;

    cout << is_pointer_v<nullptr_t> << is_pointer_v<unique_ptr<int>>;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    int x{};
    ++++++x;
    std::cout << x;
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    std::cout << ((int*){int()} == nullptr);
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

namespace Nec {
    struct A {
        operator int() const { return 1; }
    };
    void foo(A) { std::cout << "1"; }
}

void foo(int) { std::cout << "2"; }

int main() {
    Nec::A x;
    foo(x);
    (foo)(x);
}
  • C++17 standartlarına göre aşağıdaki kodda f fonksiyonuna yapılan çağrılardan hangileri geçerlidir?
#include <utility>

template <typename T>
void f(T, T&&);

int main() {
    int x{}, y{};

    f(x, y);                        // 1
    f(x, y++);                      // 2
    f(x, ++y);                      // 3
    f(&x, &y);                      // 4
    f("ali", "can");                // 5
    f(std::move(x), std::move(y));  // 6
}
  • C++17 standartlarına göre aşağıdaki kodda f fonksiyonuna yapılan çağrılardan hangileri geçerlidir?
#include <utility>

template <typename T>
void f(std::pair<T, T>, T&&);

int main() {
    int x{}, y{};

    std::pair<int&, int&> p{x, y};
    f(p, x);                     // 1
    f(std::make_pair(x, y), x);  // 2
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>

int main() {
    int a[]{1, 2, 3, 4};
    std::cout << a[a[0 [a]][a]];
}
  • Aşağıdaki kod derlenip çalıştırıldığında standart çıkış akımına 1111111111 yazıyor.
    a) Hangi değerin yazdırılacağı derleyiciden derleyiciye değişir.
    b) Hangi derleyicide derlenirse derlensin çıktısı aynı olur:
#include <iostream>
#include <random>

int main() {
    std::mt19937 eng;
    eng.discard(3093278472);
    std::cout << eng();
}
  • C++17 standartlarına göre aşağıdaki kodda
    a) Sentaks hatası var.
    b) Tanımsız davranış (undefined behavior) var.
    c) Belirlenmemiş davranış (unspecified behavior) var.
    d) Derlenip çalıştırıldığında ekran çıktısı şu olur:
#include <iostream>
#include <string>

struct Nec {
    Nec(const std::string&) { 
        std::cout << '1'; 
    }

    template <typename T>
    Nec(T&&) {
        std::cout << '2';
    }
};

int main() {
    std::string name{"a"};
    
    const Nec n1{"a"};
    Nec n2{name};
    Nec n3{std::move(name)};
    Nec n4{n1};
    Nec n5{n2};
}