是否有可能使函数';在标准的未来版本中是否自动声明异常? 当前C++标准允许编译器查看函数体以完成函数的签名: template <typename T> inline auto dereference(T const& pointer) { return *pointer; }

是否有可能使函数';在标准的未来版本中是否自动声明异常? 当前C++标准允许编译器查看函数体以完成函数的签名: template <typename T> inline auto dereference(T const& pointer) { return *pointer; },c++,standards,language-lawyer,iso,C++,Standards,Language Lawyer,Iso,如果这是可能的,那么在编写noexcept声明时将省去很多麻烦,尤其是在编写模板时,在模板中,函数在第一次出现时通常都会跟随它们的定义: // The noexcept declaration can be even longer than the function body template <typename T> void func(T& value) noexcept( noexcept(value.member_1()) && noe

如果这是可能的,那么在编写noexcept声明时将省去很多麻烦,尤其是在编写模板时,在模板中,函数在第一次出现时通常都会跟随它们的定义:

// The noexcept declaration can be even longer than the function body
template <typename T>
void func(T& value) noexcept(
    noexcept(value.member_1()) &&
    noexcept(value.member_2()) &&
    noexcept(value.member_3())
) {
    value.member_1();
    value.member_2();
    value.member_3();
}

// Things will become much easier if the C++ standard support this feature
template <typename T>
void func(T& value) noexcept(auto) {
    value.member_1();
    value.member_2();
    value.member_3();
}
//noexcept声明甚至可以比函数体更长
模板
无效函数(T和值)无例外(
noexcept(value.member_1())&&
noexcept(value.member_2())&&
noexcept(value.member_3())
) {
value.member_1();
value.member_2();
value.member_3();
}
如果C++标准支持这个特性,事情就会变得简单多了。
模板
无效函数(T和值)无异常(自动){
value.member_1();
value.member_2();
value.member_3();
}

那么,这项功能是否有可能进入未来版本的ISO/IEC 14882?

因为很有趣,但可能主要是基于意见,或者在引用标准的情况下过于宽泛。@skypjack那么我该怎么处理这个问题呢?正如我所说,它看起来很有趣。可能是重复的
// The noexcept declaration can be even longer than the function body
template <typename T>
void func(T& value) noexcept(
    noexcept(value.member_1()) &&
    noexcept(value.member_2()) &&
    noexcept(value.member_3())
) {
    value.member_1();
    value.member_2();
    value.member_3();
}

// Things will become much easier if the C++ standard support this feature
template <typename T>
void func(T& value) noexcept(auto) {
    value.member_1();
    value.member_2();
    value.member_3();
}