Как мне найти фразу в куске текста в C #?

Здесь:

auto dv = Timer();

У вас есть объект типа Timer, называемый dv, который копируется из временного (выражение справа от знака = ).

При использовании auto для объявления переменной тип этой переменной совпадает с типом выражения, которое ее инициализирует, не рассматривая здесь cv-квалификаторы и ссылки.

В вашем случае выражение, которое инициализирует dv, имеет тип Timer, и поэтому dv имеет тип Timer.

Здесь:

int time_keeper(Timer());

]

Вы объявляете функцию с именем time_keeper, которая возвращает int и принимает в качестве своего входного указателя функцию, которая возвращает Timer и не принимает аргументов.

И почему не аргумент Timer (*) ()?

blockquote>

Функции распадаются на указатели при передаче в качестве аргумента, поэтому тип time_keeper на самом деле int(Timer(*)()) ,

Чтобы убедить себя, вы можете попробовать составить эту небольшую программу:

#include 

struct Timer { };
int main()
{
    int time_keeper(Timer());
    static_assert(
        std::is_same<
            decltype(time_keeper), 
            int(Timer(*)())
        >::value, 
        "This should not fire!");
}

Вот живой пример .

0
задан Ricardo Altamirano 26 June 2012 в 18:16
поделиться