Можете ли вы наблюдать, расширяется ли _Atomic до шаблона псевдонима или шаблона класса?C++

Программы на C++. Форум разработчиков
Anonymous
Можете ли вы наблюдать, расширяется ли _Atomic до шаблона псевдонима или шаблона класса?

Сообщение Anonymous »

[stdatomics.h.syn] определяет следующее:

Код: Выделить всё

template
using std-atomic = std::atomic;        // exposition only

#define _Atomic(T) std-atomic
libc++ и libstdc++ не реализуют это с использованием «шаблона промежуточного псевдонима», как указано, но определяют _Atomic как расширение непосредственно до ::std::atomic.
Можно ли это делать или это ошибка стандартной библиотеки? Может ли пользователь заметить разницу?
Начиная с C++26, это, очевидно, ошибка, поскольку пользователь мог размышлять, как ^^_Atomic(int), и отличать шаблоны псевдонимов от шаблонов классов.
До C++26 был ли какой-либо способ, которым пользователь мог это определить?

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-template

Вернуться в «C++»