我正在寻找解决方案,以禁止使用作为模板参数结构是POD (或说可复制),但有指针。我要把它们传到网络上。例如。
// good
struct S1 {
int x;
S1() : x( 42 ) {} // I know that it's not a POD, but I know, that I can send S1 over network
};
// bad
struct S2 {
int *x;
};
template<typename POD>
class ToNetwork {
//static_assert( std::is_trivially_copyable< POD >::value, "Type must be POD" );
static_assert( std::is_standard_layout< POD >::value, "Type must be POD" );
POD m_payload;
};
ToNetwork< S1 > s1;
ToNetwork< S2 > s2; // should fail, but not((
is_trivially_copyable或is_standard_layout都认为这两种结构都很好。
转载请注明出处:http://www.0730huitian.com/article/20230526/1523103.html