[ Web Proxy ]
URL:
Viewing: http://ja.cppreference.com/cpp/utility/declval [Back]  [Original]

std::declval - cppreference.com
cppreference.com

std::declval

: cppreference.com
<tbody> </tbody>
template<class T> typename std::add_rvalue_reference<T>::type declval() noexcept;
(C++11)

T decltype

declval

declval ODR ill-formed

()

T void ( cv void) T T&&

#include <utility>
#include <iostream>

struct Default { int foo() const { return 1; } };

struct NonDefault
{
    NonDefault(const NonDefault&) { }
    int foo() const { return 1; }
};

int main()
{
    decltype(Default().foo()) n1 = 1;                   // n1  int 
//  decltype(NonDefault().foo()) n2 = n1;               // 
    decltype(std::declval<NonDefault>().foo()) n2 = n1; // n2  int 
    std::cout << "n1 = " << n1 << '\n'
              << "n2 = " << n2 << '\n';
}

:

n1 = 1
n2 = 1

decltype (C++11) [edit]
(C++11)(C++20)(C++17)
callable
() [edit]

Web Proxy Viewer  |  New URL  |  Original Page