2015-07-04 1 views
1

Я просто немного поиграл с decltype и заметил, что intellisense в VS 2012 дает мне ошибку. Это первый раз, когда я столкнулся с этим, и код все еще скомпилирован.VS 2012 intellisense - функция не может быть инициализирована

#include <iostream> 

int func(int param) 
{ 
    std::cout << "IM BEING CALLED: " << param << std::endl; 
    return 0; 
} 

int main() 
{ 
    auto& y = func; 
    auto z = func; 

    decltype((func))& x = func; 
    decltype((func)) k = func; // function 'k' may not be initialized but compiles 


    func(9); 
    x(10); 
    y(11); 
    z(12); 
    k(13); 
    std::cout << std::endl; 

    std::cout << "Address of func: " << func << std::endl; 
    std::cout << "Address of x: " << x << std::endl; 
    std::cout << "Address of y: " << y << std::endl; 
    std::cout << "Address of z: " << z << std::endl; 
    std::cout << "Address of k: " << k << std::endl; 

    std::cin.get(); 
    return 0; 
} 

Это не серьезная проблема, не интересная для большинства людей, но мне просто интересно, знает ли кто-нибудь причину ошибки?

+0

У IntelliSense есть ошибки. Пример: У меня есть функция 'MyFunction', которая является другом класса' MyClass'. IntelliSense отмечает использование частных членов MyClass в 'MyFunction' как ошибки (не предупреждения), хотя код компилируется и работает очень хорошо. –

+0

Я думаю, вы должны удалить последнюю часть своего вопроса, поскольку это вопрос списка. Основная его часть в порядке. –

ответ

1

мне было просто интересно, если кто-нибудь знает причину ошибки

Это просто синтаксический ошибка. Ни больше ни меньше.

+0

cheers mate, сначала был смущен, и хотя код был что-то не так, пока я его не скомпилировал. –

Смежные вопросы