Tôi muốn xác định một số thành viên tĩnh của mẫu chuyên môn, như thế này:Làm thế nào để giới hạn phạm vi của `sử dụng` tuyên bố bên ngoài của chức năng trong C + +?
namespace A {
template <> int C<A1::A2::...::MyClass1>::member1_ = 5;
template <> int C<A1::A2::...::MyClass1>::member2_ = 5;
template <> int C<A1::A2::...::MyClass1>::member3_ = 5;
template <> int C<B1::B2::...::MyClass2>::member1_ = 6;
template <> int C<B1::B2::...::MyClass2>::member2_ = 6;
template <> int C<B1::B2::...::MyClass2>::member3_ = 6;
...
}
Nhưng để đơn giản hóa mã (và làm cho nó trông có cấu trúc hơn), tôi muốn làm một cái gì đó như thế này:
namespace A {
{
using T = A1::A2::...::MyClass1;
template <> int C<T>::member1_ = 5;
template <> int C<T>::member2_ = 5;
template <> int C<T>::member3_ = 5;
}
{
using T = B1::B2::...::MyClass2;
template <> int C<T>::member1_ = 6;
template <> int C<T>::member2_ = 6;
template <> int C<T>::member3_ = 6;
}
...
}
Trình biên dịch cho một lỗi: expected unqualified-id
. Có cách nào để giới hạn phạm vi using
trong một không gian "bên ngoài"?
bạn đã biên dịch ở chế độ C++ 11 chưa? – TemplateRex
@TemplateRex Có, tôi có. –
Tôi đã hủy xóa câu trả lời trước đó của mình hôm nay với một cách tiếp cận mới bằng cách sử dụng bí danh không gian tên. – TemplateRex