This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS320F2812:在代码中加入句点时,不要弹出模板类对象的成员列表

Guru**** 2587365 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/606206/compiler-tms320f2812-do-not-pop-up-a-list-of-members-of-the-template-class-object-when-you-put-a-period-in-the-code

部件号:TMS320F2812

工具/软件:TI C/C++编译器

我有两个具有专业化的模板组

模板<class T> class ModBusIB;
模板<class T> class ModBusIR;
模板<class T> class
ModBusOB;

模板<class T1, class T2 = void, class T3 = void, class T4 = void>
class ModBusFram;

template <class T>
class ModBusFram<ModBusIB<T> class ModBusIB<T>,void


	,bits <void,invoid,invoid,InputT bits:
};

模板<t1类,t2类,t3类, T4>
类ModBusFram<ModBusIB<T1>,ModBusIR<T2>,ModBusOB<T3>,ModBusOR<T4>>
{
公共:
	T1输入位;
	T2输入位;
	T3输出位;
	T4输出位
;};

*********************** //*MODBUS
SRAM模板*//**************************************************************************************************************************************************
/

模板<t1类,t2类= void,t3类= void,t4类= void>
类ModBusSram;


模板<t1类,t2类,t3类,t4类>
类ModBusSram<ModBusIB<t1>,ModBusOB<T3>,ModBusOR<T4>>
{
公共:
	T1输入位;
	t2输入
	位
	
;t4输出位;t3输出

模板<class t1, class t2>
class ModBusSram<ModBusIB<t1>,ModBusOB<t2>>{

public:
	T1 InputBits;
	T2 OutputBits;
}; 

当我声明这些类的对象时

enum EventsTimePrescale
{
	EventStart,
	EventEnd}
;

typedef结构
{
	bool isActive;
}	FO_Bits_events;

typedef结构
{
	FLOAT CriticalValues[3];
}	FO_Regs_events;



	
	
	




		
				




	
	
}未签名pedef { bool isEnable; bool isAlarmEnable; bool结构AckEnable;{ f_Timesf_Eventsf_Presstry;{bits

typedef结构
{
	bool isAlarm;
} so_bits_events;

	ModBusFram
	<
		ModBusIB<FI_Bits_Events>,
		ModBusIR<FI_Regs_Events>,
		ModBusOB<FO_Bits_Events>,
		ModBusOR<FO_Regs_Events>
	TestFram;

	ModBusSram
	<
		ModBusIB<SI_Bits_Events>,
		ModBusOB<SO_Bits_Events>
	TestSram;

我可以在 放置句点时毫无问题地弹出班级成员列表,如下图所示

但是当我使用前两个参数声明第三个模板类时,我看不到此模板参数的弹出列表

模板<t1类,t2类= void>
类ModBusDirect;

模板<t1类,t2类,t3类,t4类, T5类,T6类,T7类,T8>
类ModBusDirect<ModBusSram<T1,T2,T3,T4>,ModBusFram<T5, T6,T7,T8>>
{
公共:
	ModBusSram<T1,T2,T3,T4>				* SRAM;
	ModBusFram<T5, T6,T7,T8>				* Fram;
	ModBusFram<T5,T6, T7,T8>				*默认值;
}; 
	ModBusDirect
			<
				ModBusSram
				<
					ModBusIB<SI_Bits_Events>,
					ModBusOB<So_Bits_Events>
				,
				ModBusFram
				<
					ModBusIB<FI_Bits_Events>,
					ModBusIR<FI_Regs_Events>,
					ModBusOB<FO_Bits_Events>,
					ModBusOR<FO_Regs_Events>
				
			直接; 

当我将句点放在变量Direct之后时 ,我看不到此模板参数的弹出列表! 为什么?

但是,此模板类的所有成员都已成功编译,例如  direct.fram.OutputBits.isActive = true;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请您附上一个完整的源文件或项目,我们可以用它来复制此文件或项目吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的迅速回复! 我清理了我的工作项目,留下的只是演示模板类成员的弹出列表是否存在。 我无法将项目附加到zip格式,因为它在归档文件中的重量超过20兆字节(28 MB)。 为此,我将存档的项目附加到7z格式,并在我的OneDrive中以zip格式放置同一项目的链接

    e2e.ti.com/.../ProcessingModule.7z

    1drv.ms/.../s!AudzsR8aioENk7wXDnyNyDRv8uV5lQ

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提供测试项目。 我似乎不能用CCS 7.2 再现这种情况。 您使用的是哪个版本的CCS?

    下面是显示弹出窗口的屏幕截图。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很奇怪,我的办公室和家庭计算机上没有弹出窗口。 两台计算机都安装了代码编辑器版本:7.2 .0.0.0012万。 我将尝试重新安装Code Composer,然后写下结果
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我重新安装了两次CCS但没有效果,之后我从Project Explorer中删除了项目,然后将其导入并执行了bingo! 我的所有模板类对象的弹出窗口正常工作! 感谢你们的帮助和效率!