明らかに、const void
を返す関数を宣言することが可能です:
const void foo()
{
}
次のコードはコンパイルされないため、g ++はconst
を重要と見なしているようです。
#include <type_traits>
static_assert(std::is_same<void(), const void()>::value, "const matters");
では、const void
には実用的な意味がありますか?
あんまり。ただし、voidでcv-qualificationsを無視するか、エラーを発生させると、コンパイラーの実装とエンドユーザーコードの両方の面で不要な複雑さが生じる可能性があります。次のようなテンプレートを検討してください
template<typename T>
const T ...
そのシナリオでvoidを使用することを特別なケースにする必要はありません(それがすでにある以上)、それは頭痛の種になるだけです。
また、const void
役に立たない、const void*
には用途があります。